Pular para o conteúdo

Provas

← Voltar para a lista de provas

BANRISUL 2025 — Técnico em Tecnologia da Informação II — Área 2: Desenvolvimento de Software — Prova Objetiva — Conhecimentos Específicos

Banco do Estado do Rio Grande do Sul S.A. (BANRISUL) · Técnico em Tecnologia da Informação II — Área 2: Desenvolvimento de Software

Cebraspe2025

50 questões nesta prova · página 2 de 3 · 47 com gabarito

Programação Programação Orientada a Objetos — Classes e Objetos

Cebraspe 2025

Banco do Estado do Rio Grande do Sul S.A. (BANRISUL) · Técnico em Tecnologia da Informação II — Área 2: Desenvolvimento de Software

Gabarito disponível

Acerca da programação orientada a objetos, assinale a opção correta.
Selecione uma alternativa

Resolução comentada

A classe define atributos e comportamentos dos objetos.

A classe é o molde (estrutura) que define atributos e métodos; os objetos são instâncias dela.

Análise das alternativas

B) As linguagens não definem automaticamente todas as classes necessárias; o programador cria as suas. C) Objetos são justamente instanciados a partir de classes. D) Quem representa uma instância específica é o objeto. E) Atributos e métodos são definidos na classe.

Referência: POO: conceitos de classe e objeto.

Resolução comentada do VaiConcursos.

Programação Programação Orientada a Objetos — Interfaces

Cebraspe 2025

Banco do Estado do Rio Grande do Sul S.A. (BANRISUL) · Técnico em Tecnologia da Informação II — Área 2: Desenvolvimento de Software

Gabarito disponível

A respeito das interfaces na programação orientada a objetos, julgue os itens a seguir.
I A implementação de uma interface impede que o desenvolvedor declare métodos a ela.
II Várias interfaces podem ser implementadas em uma classe.
III A implementação de uma interface dispensa a necessidade de métodos públicos.
Assinale a opção correta.
Selecione uma alternativa

Resolução comentada

Apenas o item II está correto: uma classe pode implementar várias interfaces.

II está certo: Java e C# permitem a uma classe implementar múltiplas interfaces. I está errado: a classe pode declarar métodos adicionais além dos exigidos pela interface. III está errado: os métodos de interface são implementados como públicos.

Análise das alternativas

A) Ignora que o II é certo. B) O item I é falso. D) Inclui I e III, ambos falsos. E) O III é falso, pois os métodos que implementam a interface precisam ser públicos.

Referência: POO: interfaces em Java.

Resolução comentada do VaiConcursos.

Programação Programação Orientada a Objetos — Polimorfismo

Cebraspe 2025

Banco do Estado do Rio Grande do Sul S.A. (BANRISUL) · Técnico em Tecnologia da Informação II — Área 2: Desenvolvimento de Software

Gabarito disponível

Assinale a opção correta em relação ao polimorfismo.
Selecione uma alternativa

Resolução comentada

No polimorfismo, uma variável da superclasse pode referenciar objeto da subclasse.

Pelo polimorfismo de subtipagem, uma referência do tipo da superclasse (ou interface) pode apontar para instâncias de subclasses, e a chamada de método é resolvida dinamicamente conforme o tipo real do objeto.

Análise das alternativas

A) Generics e polimorfismo são complementares; um não elimina o outro. C) Dada a gabarito oficial, a sobrescrita exige a mesma assinatura, mas a questão tem a B como a afirmação inequivocamente correta e geral. D) A sobrescrita é o que viabiliza o comportamento polimórfico. E) O polimorfismo bem aplicado respeita o princípio de substituição de Liskov.

Referência: POO: polimorfismo de subtipagem; princípio de Liskov.

Resolução comentada do VaiConcursos.

Programação Programação Orientada a Objetos — Herança

Cebraspe 2025

Banco do Estado do Rio Grande do Sul S.A. (BANRISUL) · Técnico em Tecnologia da Informação II — Área 2: Desenvolvimento de Software

Gabarito disponível

No que se refere à herança na programação orientada a objetos, assinale a opção correta.
Selecione uma alternativa

Resolução comentada

A herança permite reutilizar métodos e atributos da superclasse.

Na herança, a subclasse aproveita os membros herdados da superclasse (respeitada a visibilidade), promovendo reuso de código e especialização.

Análise das alternativas

A) Herança gera acoplamento forte. B) Não elimina a composição, que continua útil e muitas vezes preferível. D) Atributos privados não são acessíveis diretamente pela subclasse. E) Várias linguagens (como Java e C#) não permitem herança múltipla de classes.

Referência: POO: herança e encapsulamento.

Resolução comentada do VaiConcursos.

Programação Programação Orientada a Objetos — Composição

Cebraspe 2025

Banco do Estado do Rio Grande do Sul S.A. (BANRISUL) · Técnico em Tecnologia da Informação II — Área 2: Desenvolvimento de Software

Gabarito disponível

Assinale a opção correta, a respeito de composição na programação orientada a objetos.
Selecione uma alternativa

Resolução comentada

Composição representa relação 'possui um' ou 'é parte de'.

Composição indica que um objeto contém outro(s) como parte de si, expressando as relações 'tem um' / 'é parte de', diferentemente da herança, que expressa 'é um'.

Análise das alternativas

A) O texto inverte a dependência: na composição forte, é o componente que não existe sem o composto, não o contrário. B) Herança é definida em tempo de compilação; composição permite variar em execução, logo os efeitos diferem. C) A relação 'é um' é da herança. E) Composição não é herança, nem direta nem indireta.

Referência: POO: relações de composição, agregação e herança.

Resolução comentada do VaiConcursos.

Programação Programação Orientada a Objetos — Polimorfismo

Cebraspe 2025

Banco do Estado do Rio Grande do Sul S.A. (BANRISUL) · Técnico em Tecnologia da Informação II — Área 2: Desenvolvimento de Software

Gabarito disponível

Acerca do polimorfismo, julgue os itens a seguir.
I O uso de polimorfismo reduz a duplicação de código visto que permite abstrações genéricas.
II Interfaces são frequentemente utilizadas na aplicação de polimorfismo por contrato.
III Métodos polimórficos devem ser declarados exclusivamente como privados.
Assinale a opção correta.
Selecione uma alternativa

Resolução comentada

Itens I e II corretos; III incorreto.

I está certo: o polimorfismo permite escrever código genérico sobre abstrações, evitando duplicação. II está certo: interfaces definem contratos que diversas classes implementam de formas distintas. III está errado: métodos privados não são visíveis nas subclasses e, portanto, não podem ser sobrescritos, sendo incompatíveis com o polimorfismo.

Análise das alternativas

A) Omite o item I, que está certo. B) Considera só o III, que é falso. D) Inclui o III (falso) e exclui o II. E) Inclui o III, falso.

Referência: POO: polimorfismo, sobrescrita e interfaces.

Resolução comentada do VaiConcursos.

Programação Programação Orientada a Objetos — Interfaces e Classes Abstratas

Cebraspe 2025

Banco do Estado do Rio Grande do Sul S.A. (BANRISUL) · Técnico em Tecnologia da Informação II — Área 2: Desenvolvimento de Software

Gabarito disponível

Assinale a opção correta no que se refere a interfaces e classes abstratas.
Selecione uma alternativa

Resolução comentada

Interfaces servem para simular múltiplas heranças de comportamento.

Uma classe Java pode implementar várias interfaces, o que permite combinar contratos de comportamento de fontes distintas e simula a herança múltipla, que Java não permite entre classes.

Análise das alternativas

A) Uma classe pode implementar interface e também estender outra classe. B) A interface define o contrato (o que fazer), não o comportamento interno. C) Só a partir do Java 8 (métodos default/static) há implementações; não em qualquer versão. D) Classes abstratas podem ter métodos concretos.

Referência: Java: interfaces e classes abstratas.

Resolução comentada do VaiConcursos.

Programação Programação Orientada a Objetos — Herança versus Composição

Cebraspe 2025

Banco do Estado do Rio Grande do Sul S.A. (BANRISUL) · Técnico em Tecnologia da Informação II — Área 2: Desenvolvimento de Software

Gabarito disponível

Considerando que a escolha entre herança e composição impacta diretamente a flexibilidade e o acoplamento de um sistema orientado a objetos, assinale a opção correta.
Selecione uma alternativa

Resolução comentada

Composição oferece mais flexibilidade por permitir comportamentos dinâmicos.

Na composição, objetos delegam funções a outros objetos que podem ser trocados em tempo de execução, o que dá flexibilidade e menor acoplamento. Por isso se recomenda 'favorecer composição sobre herança'.

Análise das alternativas

A) A escolha afeta diretamente a manutenibilidade. C) A herança gera acoplamento forte com a superclasse, não desacoplamento. D) A composição favorece a reutilização. E) A herança múltipla traz complexidade (ex.: problema do diamante) e não é recomendada sempre.

Referência: Princípio 'favoreça a composição sobre a herança' (Gang of Four).

Resolução comentada do VaiConcursos.

Arquitetura de Software Comunicação Assíncrona entre Serviços

Cebraspe 2025

Banco do Estado do Rio Grande do Sul S.A. (BANRISUL) · Técnico em Tecnologia da Informação II — Área 2: Desenvolvimento de Software

Gabarito disponível

Constitui característica fundamental da comunicação assíncrona entre serviços
Selecione uma alternativa

Resolução comentada

Na comunicação assíncrona, o emissor não espera resposta imediata.

A característica fundamental é que o emissor envia a mensagem e segue seu trabalho, sem bloqueio, enquanto o receptor processa de forma independente e responde depois, se necessário. Isso reduz o acoplamento temporal entre os serviços.

Análise das alternativas

B) Não há tempos fixos de espera impostos a todas as mensagens. C) Bloqueio do fluxo é característica da comunicação síncrona. D) Assíncrona busca baixo acoplamento, não rígido nem síncrono. E) Processar a resposta na mesma execução é típico do modelo síncrono.

Referência: Comunicação síncrona versus assíncrona em arquiteturas distribuídas/microsserviços.

Resolução comentada do VaiConcursos.

Arquitetura de Software Mensageria — Filas de Mensagens

Cebraspe 2025

Banco do Estado do Rio Grande do Sul S.A. (BANRISUL) · Técnico em Tecnologia da Informação II — Área 2: Desenvolvimento de Software

Gabarito disponível

Assinale a opção em que é apresentada característica de um sistema que utiliza filas de mensagens para comunicação entre serviços.
Selecione uma alternativa

Resolução comentada

Filas de mensagens desacoplam processos, dando flexibilidade e escalabilidade.

Com filas, produtor e consumidor não precisam operar ao mesmo tempo nem se conhecer, pois a fila intermedeia a comunicação. Isso favorece o desacoplamento, a flexibilidade e a escalabilidade, já que consumidores podem ser adicionados conforme a demanda.

Análise das alternativas

A) Filas não limitam o volume de forma inerente; ao contrário, absorvem picos. B) Filas favorecem comunicação assíncrona, sem protocolo exclusivo síncrono. D) Não exigem disponibilidade simultânea dos serviços. E) Justamente permitem o armazenamento temporário das mensagens.

Referência: Conceitos de mensageria e message queue (ex.: RabbitMQ, JMS, AMQP).

Resolução comentada do VaiConcursos.

Arquitetura de Software Arquitetura Orientada a Eventos

Cebraspe 2025

Banco do Estado do Rio Grande do Sul S.A. (BANRISUL) · Técnico em Tecnologia da Informação II — Área 2: Desenvolvimento de Software

Gabarito disponível

Em um sistema distribuído que usa eventos para a comunicação entre serviços, uma ação que melhora a escalabilidade da arquitetura é
Selecione uma alternativa

Resolução comentada

Barramento de eventos assíncrono com múltiplos assinantes melhora a escalabilidade.

Um event bus/broker permite que produtores publiquem eventos sem conhecer os consumidores, e vários serviços interessados os assinam (publish/subscribe) de forma assíncrona. Isso desacopla os componentes e permite escalar consumidores de forma independente.

Análise das alternativas

A) Vincular o processador a um único emissor, sem múltiplas assinaturas, reduz a flexibilidade. B) Reduzir eventos limita a funcionalidade e não é solução de escalabilidade. C) Envio síncrono acopla e bloqueia, prejudicando a escala. E) Fluxo fixo e sequencial limita paralelismo e escalabilidade.

Referência: Arquitetura orientada a eventos; padrão publish/subscribe.

Resolução comentada do VaiConcursos.

Arquitetura de Software Mensageria — Filas de Mensagens

Cebraspe 2025

Banco do Estado do Rio Grande do Sul S.A. (BANRISUL) · Técnico em Tecnologia da Informação II — Área 2: Desenvolvimento de Software

Gabarito disponível

Em arquiteturas que utilizam mensageria para a comunicação entre sistemas, uma técnica eficiente para a garantia da entrega de mensagens sem perda é
Selecione uma alternativa

Resolução comentada

Garantia de entrega em mensageria: fila persistente até processamento com sucesso.

Para evitar perda de mensagens, o broker armazena a mensagem de forma durável na fila e só a remove após o consumidor confirmar o processamento (ack). Assim, falhas do consumidor ou do sistema não causam perda, pois a mensagem pode ser reentregue.

Análise das alternativas

A) Sem recuperação em falha, há perda de mensagens. B) Envio indiscriminado por múltiplos canais não garante entrega nem ordem. D) Repetição sem controle gera duplicidade e não é técnica eficiente. E) Comunicação direta sem armazenamento intermediário perde mensagens se o destino estiver indisponível.

Referência: Padrões de mensageria (Enterprise Integration Patterns: Guaranteed Delivery); conceitos de filas persistentes e ack.

Resolução comentada do VaiConcursos.

Engenharia de Software Princípios SOLID

Cebraspe 2025

Banco do Estado do Rio Grande do Sul S.A. (BANRISUL) · Técnico em Tecnologia da Informação II — Área 2: Desenvolvimento de Software

Gabarito disponível

Segundo o princípio da responsabilidade única (single responsibility principle), em boas práticas de desenvolvimento orientado a objetos, uma classe deve
Selecione uma alternativa

Resolução comentada

Uma classe deve ter apenas uma razão para mudar.

O princípio da responsabilidade única diz que uma classe deve ter uma única responsabilidade, ou seja, apenas uma razão para ser modificada. Isso torna o código mais coeso e fácil de manter.

Análise das alternativas

A, B, C e D defendem acumular várias responsabilidades ou funções genéricas, o que contraria o princípio.

Referência: Robert C. Martin, princípios SOLID (SRP).

Resolução comentada do VaiConcursos.

Engenharia de Software Princípios SOLID

Cebraspe 2025

Banco do Estado do Rio Grande do Sul S.A. (BANRISUL) · Técnico em Tecnologia da Informação II — Área 2: Desenvolvimento de Software

Gabarito disponível

O princípio de inversão de dependência (dependency inversion principle) visa tornar o código mais flexível e desacoplado e favorecer sua manutenção e testabilidade. Uma abordagem alinhada a esse princípio consiste em
Selecione uma alternativa

Resolução comentada

Módulos de alto nível se comunicam com os de baixo nível por meio de abstrações.

O princípio da inversão de dependência estabelece que módulos de alto nível não devem depender de módulos de baixo nível, e que ambos devem depender de abstrações. A comunicação indireta por interfaces reduz o acoplamento e favorece manutenção e testes.

Análise das alternativas

A, C, D e E propõem dependência direta de classes concretas ou a eliminação de abstrações e interfaces, o que contraria o princípio.

Referência: Robert C. Martin, princípios SOLID (DIP).

Resolução comentada do VaiConcursos.

Engenharia de Software Padrões de Projeto — Singleton

Cebraspe 2025

Banco do Estado do Rio Grande do Sul S.A. (BANRISUL) · Técnico em Tecnologia da Informação II — Área 2: Desenvolvimento de Software

Gabarito disponível

Durante o desenvolvimento de sistemas que exigem controle sobre a criação de instâncias, o padrão de projeto cuja adoção pode evitar múltiplos objetos redundantes e facilitar o acesso centralizado caracteriza-se por
Selecione uma alternativa

Resolução comentada

Singleton controla as instâncias e oferece um ponto de acesso global.

O Singleton garante uma única instância da classe e fornece um ponto global de acesso a ela. Isso evita objetos redundantes e centraliza o acesso.

Análise das alternativas

B) Não há destruição automática após cada uso. C) Criar múltiplas instâncias contraria o padrão. D) Acessos devem chegar à mesma instância. E) O padrão não usa herança para gerar múltiplas instâncias.

Referência: Gamma et al., Design Patterns (GoF).

Resolução comentada do VaiConcursos.

Engenharia de Software Padrões de Projeto — Factory Method

Cebraspe 2025

Banco do Estado do Rio Grande do Sul S.A. (BANRISUL) · Técnico em Tecnologia da Informação II — Área 2: Desenvolvimento de Software

Gabarito disponível

O padrão de projeto factory method, utilizado para delegar a criação de objetos a subclasses e permitir maior flexibilidade e desacoplamento,
Selecione uma alternativa

Resolução comentada

O factory method define uma abstração de criação que as subclasses concretizam.

O Factory Method define uma interface ou método abstrato para criar objetos e deixa que as subclasses decidam qual classe concreta instanciar. Com isso reduz o acoplamento e aumenta a flexibilidade.

Análise das alternativas

A) Descreve o Singleton. B) Não impede a criação de objetos. C) Contraria o padrão, que delega a criação a subclasses. E) Descreve um método estático único, que não é o Factory Method.

Referência: Gamma et al., Design Patterns (GoF).

Resolução comentada do VaiConcursos.

Engenharia de Software Engenharia de Requisitos — Especificação de Requisitos

Cebraspe 2025

Banco do Estado do Rio Grande do Sul S.A. (BANRISUL) · Técnico em Tecnologia da Informação II — Área 2: Desenvolvimento de Software

Gabarito disponível

Considerando que, na engenharia de software, há várias formas de se escrever uma especificação de requisitos de sistema, assinale a opção em que é apresentada a abordagem baseada no uso de uma linguagem de programação com características mais abstratas, para especificar os requisitos, definindo um modelo operacional do sistema.
Selecione uma alternativa

Resolução comentada

Linguagem de descrição de projeto usa recursos de linguagem de programação para definir um modelo operacional.

Segundo Sommerville, a linguagem de descrição de projeto (PDL) usa construções de linguagem de programação, porém mais abstratas, para especificar os requisitos por meio de um modelo operacional do sistema.

Análise das alternativas

A) Notações gráficas usam diagramas e texto. B) Especificações matemáticas usam conceitos formais, como autômatos e conjuntos. D) Sentenças em linguagem natural são texto livre. E) Linguagem natural estruturada limita a liberdade de escrita com formulários e templates.

Referência: Sommerville, Engenharia de Software, formas de especificação de requisitos.

Resolução comentada do VaiConcursos.

Arquitetura de Software Padrão MVC

Cebraspe 2025

Banco do Estado do Rio Grande do Sul S.A. (BANRISUL) · Técnico em Tecnologia da Informação II — Área 2: Desenvolvimento de Software

Gabarito disponível

Na utilização do padrão MVC (model-view-controller) em uma arquitetura de aplicação web, cabe ao model
Selecione uma alternativa

Resolução comentada

O model encapsula o estado da aplicação e o banco de dados.

No MVC, o model encapsula o estado da aplicação e o acesso aos dados, ou seja, o banco de dados. A view apresenta e o controller trata as solicitações.

Análise das alternativas

B) Enviar eventos de usuário ao controller é papel da view. C) Validar entradas e gerenciar formulários é função do controller ou da camada de apresentação. D) Processar solicitações HTTP é do controller. E) Gerar páginas dinamicamente é da view.

Referência: Sommerville, Engenharia de Software (padrão MVC).

Resolução comentada do VaiConcursos.

Programação Programação Orientada a Objetos — Polimorfismo

Cebraspe 2025

Banco do Estado do Rio Grande do Sul S.A. (BANRISUL) · Técnico em Tecnologia da Informação II — Área 2: Desenvolvimento de Software

Gabarito disponível

class ContaBanrisul {
consultarSaldo() {}
}

class ContaCorrente extends ContaBanrisul {
consultarSaldo() { return "Conta Corrente:
R$ 22.000,01"; }
}

class PrevidenciaPrivada extends ContaBanrisul {
consultarSaldo() { return "Previdência:
R$ 120.000,53"; }
}

const contaCorrente = new ContaCorrente();
const previdencia = new PrevidenciaPrivada();

console.log(contaCorrente.consultarSaldo());
console.log(previdencia.consultarSaldo());

Com base no código precedente, em JavaScript, e nos conceitos da orientação a objetos, é correto afirmar que, nas duas últimas linhas, consultarSaldo() constitui
Selecione uma alternativa

Resolução comentada

O mesmo método sobrescrito em subclasses, com comportamentos distintos, é polimorfismo.

ContaCorrente e PrevidenciaPrivada sobrescrevem consultarSaldo() da superclasse, e a mesma chamada produz resultados diferentes conforme o objeto. Isso caracteriza polimorfismo (sobrescrita).

Análise das alternativas

A) Não há agregação, e JavaScript não tem sobrecarga nativa de métodos. B) Não há composição, e a classe não é estática. C e E) A herança existe, mas a pergunta trata do comportamento do método nas chamadas, e o código não define encapsulamento privado ou protegido.

Referência: Conceitos de programação orientada a objetos.

Resolução comentada do VaiConcursos.

Engenharia de Software Testes de Software — Teste de Integração Orientado a Objetos

Cebraspe 2025

Banco do Estado do Rio Grande do Sul S.A. (BANRISUL) · Técnico em Tecnologia da Informação II — Área 2: Desenvolvimento de Software

Gabarito disponível

Assinale a opção em que é apresentada a estratégia para teste de integração de sistemas orientados a objetos com base em sequência de execução que integra o conjunto de classes necessárias para responder a uma entrada onde cada sequência de execução é integrada e testada individualmente.
Selecione uma alternativa

Resolução comentada

Teste baseado em thread integra o conjunto de classes que responde a uma entrada.

No teste de integração de sistemas orientados a objetos, o thread-based testing integra o conjunto de classes necessárias para responder a uma entrada ou evento, e cada thread é integrado e testado individualmente. Já o teste baseado em uso agrupa as classes por camadas de dependência.

Análise das alternativas

A) Class partition é um método de teste de classes, não de integração por sequência de execução. B) Não é uma estratégia reconhecida desse tipo. C) Não é termo consagrado. D) Usage-based testing integra por camadas de dependência de classes, não por thread.

Referência: Pressman, Engenharia de Software (teste de integração orientado a objetos).

Resolução comentada do VaiConcursos.