Questões de Concurso sobre Arquitetura de Software

 
 
Disciplina
Assunto 1
Banca
Instituição
Cargo
Ano
Carreira
Área de formação
Escolaridade
Dificuldade
 
Comentários:
Professores
Alunos
Meus Comentários
Vídeo
 
Minhas questões:
Resolvidas
Não resolvidas
Certas
Erradas
 
Tipo de questão:
Certo e errado
Múltipla escolha
Incluir questões:
Anuladas
Desatualizadas
 
Questões:
Todas as questões
 
Filtro simplificado
 
Questões
Todas as questões
 
683 questões encontradas
Questões por página
20
Mais recentes
 

Os conceitos de coesão e acoplamento são fundamentais para projetar e avaliar a qualidade de uma arquitetura de software. Como princípio geral, a definição de uma arquitetura de software deve buscar


A

maximizar acoplamento e coesão.


B

minimizar acoplamento e coesão.


C

maximizar acoplamento e minimizar coesão.


D

minimizar acoplamento e maximizar coesão.

Um arquiteto de software está projetando um framework em linguagem Java para o processamento de diferentes tipos de transações financeiras. Para isso, ele define:


• Uma classe abstrata AbstractTransaction, que contém estado compartilhado e parte da implementação comum.

• Duas interfaces, Auditable e Reversible, cada uma declarando contratos de comportamento e fornecendo alguns métodos default.

• Uma classe concreta PixTransfer, que deve reutilizar a implementação comum de AbstractTransaction e também oferecer suporte a auditoria e reversão.


Durante a revisão do projeto, o arquiteto avalia diferentes decisões de projeto, com o uso de diferentes combinações de herança para maximizar reuso e flexibilidade. Qual decisão de projeto é válida?


A

Declarar PixTransfer como subclasse tanto de AbstractTransaction quanto de outra classe concreta responsável por logging, resolvendo eventuais conflitos de métodos por meio de sobrescrita explícita.


B

Declarar PixTransfer como subclasse de AbstractTransaction e fazendo-a implementar, simultaneamente, Auditable e Reversible, sobrescrevendo explicitamente eventuais métodos default conflitantes definidos nas interfaces.


C

Declarar Auditable e Reversible como classes abstratas em vez de interfaces, permitindo que PixTransfer herde múltiplas implementações e confiando na ordem de resolução de métodos da linguagem para tratar conflitos.


D

Declarar PixTransfer de forma que ela simplesmente implemente Auditable e Reversible, uma vez que a herança de interfaces permite reutilização implícita de estado e comportamento equivalente à herança de uma classe abstrata.

Um Engenheiro da Computação atua como um consultor sênior em um projeto de lei que exige o desenvolvimento de um sistema de inteligência artificial para prever o impacto fiscal de novas emendas constitucionais. O projeto é de alto risco, alta visibilidade política e tem requisitos evolutivos.


Esse Engenheiro está revisando um módulo que viola o princípio de Responsabilidade Única (SRP) do SOLID. O módulo ManipuladorDeVotos é responsável por persistir o voto e por gerar o relatório estatístico do voto.


Assinale a afirmativa correta em relação ao efeito arquitetural primário da violação do SRP nesse cenário.


A

A violação do SRP aumenta a Coesão Lógica do módulo.


B

A violação do SRP facilita a reutilização do módulo em contextos diferentes.


C

A violação do SRP leva a um Alto Acoplamento.


D

O SRP é irrelevante para acoplamento e coesão.


E

A violação leva a uma complexidade ciclomática baixa.

A respeito da arquitetura hexagonal (Ports and Adapters) no contexto de design de software, assinale a alternativa correta.


A

A arquitetura hexagonal organiza o sistema em camadas rígidas, nas quais a interface de usuário depende diretamente do banco de dados.


B

A arquitetura hexagonal estabelece a implementação das regras de negócio em componentes executados no lado do cliente (frontend), visando simplificar a lógica de persistência no servidor.


C

A arquitetura hexagonal dispensa a execução de testes automatizados, visto que a separação entre infraestrutura e aplicação assegura a correção lógica do sistema de forma nativa.


D

A arquitetura hexagonal estabelece que o núcleo da aplicação depende diretamente dos frameworks externos utilizados.


E

A arquitetura hexagonal organiza o sistema de modo que o núcleo da aplicação (domínio) não dependa de detalhes de infraestrutura, utilizando portas e adaptadores para comunicação com elementos externos.

Uma empresa especializada no desenvolvimento de aplicações empresariais escaláveis enfrenta dificuldades na manutenção do seu código devido ao alto acoplamento entre classes. Os desenvolvedores perceberam que muitas classes criam instâncias de seus próprios objetos dependentes, dificultando os testes unitários, a reutilização de código e a troca de implementações sem afetar outras partes do sistema. Para resolver esse problema, o arquiteto de software sugere o uso do padrão Injeção de Dependências (Dependency Injection – DI).


A sugestão do arquiteto sobre o uso de Injeção de Dependências (DI) considera que esse padrão


A

cria manualmente todas as instâncias de objetos dentro das classes para garantir total controle sobre suas dependências.


B

elimina demandas por composição de objetos e por extensibilidade das aplicações, facilitando o gerenciamento do ciclo de vida.


C

injeta dependências estáveis, que ainda estão em desenvolvimento e que têm comportamento não determinístico, no construtor das classes.


D

permite que dependências sejam passadas externamente para um objeto, reduzindo o acoplamento e facilitando a testabilidade.


E

utiliza verificações de erro em tempo de execução para capturar falhas de comunicação entre objetos dependentes.

Ano: 2025
Prova: CESPE/CEBRASPE - SUSEP - Analista Técnico - Área: Tecnologia da Informação e Ciencia de Dados - 2025

No DDD, o ACL (anti-corruption layer) é utilizado para a tradução de modelos entre bounded contexts, mas sua implementação exige que todas as comunicações sejam assíncronas, sendo o seu uso inviabilizado em sistemas síncronos.


C

Certo


E

Errado

Em um sistema de memória hierárquico, os diferentes níveis de memória são projetados para atender a necessidades específicas de acesso e armazenamento de dados. Qual método de mapeamento da cache é organizado em múltiplos sets, com uma única linha de cache por set, representada visualmente por uma matriz n × 1?


A

mapeamento por camada.


B

mapeamento direto.


C

mapeamento indireto.


D

mapeamento de registro.


E

mapeamento por deslocamento de registro.

Ano: 2025
Prova: CESPE/CEBRASPE - PCDF - Gestor de Apoio - Área: Analista de Informática Desenvolvimento de Sistemas . - 2025

Em design de software na arquitetura hexagonal, os adaptadores estão conectados diretamente ao núcleo do domínio, pois não há necessidade de portas ou interfaces intermediárias para comunicação.


C

Certo


E

Errado

A arquitetura limpa, proposta por Robert C. Martin (2019), é um dos conceitos mais recentes em arquitetura de software.


Assinale a afirmativa incorreta sobre esse conceito.


A

Testabilidade deve fazer parte do design.


B

A arquitetura não depende dos testes, mas os testes dependem internamente dos componentes do sistema.


C

A função dos testes é apoiar o desenvolvimento e a operação do sistema.


D

O problema dos "Testes Frágeis" ocorre quando os testes são fortemente acoplados ao sistema.


E

As regras de negócio devem ser testadas sem a utilização do Front End da aplicação.

No contexto de Arquitetura de Software, os estilos arquiteturais definem padrões de organização e interação entre componentes, influenciando diretamente atributos de qualidade como modularidade, escalabilidade e desempenho. Na descrição correta de um aspecto fundamental do estilo arquitetural Baseado em Eventos (Event-Driven), define-se que


A

a arquitetura é rigidamente estruturada em camadas, onde cada nível só pode se comunicar com a camada imediatamente inferior ou superior.


B

o sistema é projetado para reagir a eventos assíncronos, com componentes comunicando-se por meio de mensagens ou publicações/assinaturas, promovendo baixo acoplamento.


C

os seus componentes compartilham um estado global único, e as alterações são propagadas de forma síncrona e centralizada.


D

a comunicação entre módulos é estritamente bilateral e baseada em chamadas diretas (requisição-resposta), exigindo alta coordenação temporal.

Componentes de software são as partes ou módulos que compõem um sistema de software, contribuindo para o funcionamento geral do programa com suas funções específicas. Sobre os componentes de software, relacionar as colunas e assinalar a sequência correspondente.


(1) Servidores de aplicação.

(2) Middleware.

(3) Interfaces de programação de aplicações (APIs).


( ) Atua como uma camada intermediária entre diferentes aplicações, permitindo a troca de dados e a conexão entre sistemas.

( ) Permite que diferentes partes de software se comuniquem entre si ou com outros serviços externos.

( ) Executa os aplicativos e controla o acesso aos recursos de hardware.


A

1-3-2.


B

2-1-3.


C

2-3-1.


D

3-1-2.

Para garantir a manutenibilidade, a arquitetura do sistema deve ser projetada para adotar componentes grandes e centralizados, facilitando futuras modificações e atualizações.


C

Certo


E

Errado

Considere a definição a seguir: "É a estrutura base de um sistema de software, que descreve como seus componentes estão organizados, como eles comunicam entre si e quais diretrizes e princípios são usados para direcionar seu design e evolução. Em essência este artefato de software define a espinha dorsal de um sistema de informação, viabilizando que ele atenda aos requisitos técnicos, de negócios e de qualidade." Diante da definição apresentada, pode-se afirmar que ela se refere à(ao):


A

Arquitetura de software.


B

Padrão de projeto de Software.


C

Documento de requisitos de Software.


D

Plano de Política do Software.

De acordo com o art. 4o da Resolução CNJ no 335/2020, a Plataforma Digital do Poder Judiciário Brasileiro (PDPJ-Br) deve adotar, obrigatoriamente, soluções que abranjam o seguinte conceito (dentre outros):


A

Baixa coesão.


B

Alto acoplamento.


C

Arquitetura monolítica.


D

Microsserviços.


E

Utilização preferencial de tecnologias com código fechado proprietário, cujo fornecedor possa ser responsabilizado em caso de problemas.

O Modelo C4 é uma das abordagens utilizadas para documentação de arquitetura de software. Nessa abordagem são definidos quatro níveis de abstração: Contexto (context), Contêineres (containers), Componentes (components) e Código (code) para representar sistemas complexos de forma escalável. O diagrama a seguir apresenta um modelo C4, o qual foca em tecnologias, protocolos de comunicação e responsabilidades de cada parte do sistema, sendo essencial para arquitetos e desenvolvedores entenderem como as peças se conectam.


Imagem associada para resolução da questão


Considerando as informações fornecidas e o diagrama, o nível do Modelo C4 que está representado no diagrama é o de


A

Contexto.


B

Contêineres.


C

Componentes.


D

Nível de Código.

Os padrões arquiteturais de software definem diretrizes para a organização e a estruturação de sistemas, facilitando a escalabilidade, a manutenção e a reutilização de código. O SOLID é um conjunto de princípios de design que auxiliam na criação de software mais flexível e sustentável. Em relação ao Open/Closed Principle (OCP), um dos princípios do SOLID, assinale a alternativa correta.


A

Aberto para substituição, fechado para segregação.


B

Aberto para extensão, fechado para modificação.


C

Aberto para segregação, fechado para inversão.


D

Aberto para inversão, fechado para extensão.


E

Aberto para modificação, fechado para substituição.

A definição da estrutura de um sistema de software e a forma como seus componentes interagirão é realizada durante a fase de projeto. Nesse contexto, o projeto arquitetural de software


A

consiste na criação de casos de uso para identificar as interações do usuário com o sistema.


B

estabelece os detalhes de codificação, como nomes de variáveis e estruturas de controle.


C

tem como foco principal o planejamento de testes de aceitação junto ao usuário final.


D

especifica exclusivamente os requisitos de desempenho e usabilidade do sistema.


E

define a estrutura de alto nível do sistema, incluindo os principais componentes e como eles se comunicam.

Na arquitetura de sistemas, o frontend é a interface visível e interativa com o usuário, enquanto o backend realiza o processamento de dados e a lógica de negócios; essa separação reflete os princípios da teoria geral de sistemas, segundo a qual a organização de sistemas em partes interdependentes facilita sua compreensão e manutenção.


C

Certo


E

Errado

Uma equipe de desenvolvimento de software de uma prefeitura está criando um sistema para gestão de solicitações de serviços urbanos. Durante a análise inicial, foi definido que o código deve seguir o Single Responsibility Principle (SRP) do SOLID. A estratégia que a equipe pode adotar, que está de acordo com o SRP, é


A

criar uma única classe SolicitacaoService que gerencie as solicitações, grave no banco de dados e envie notificações aos responsáveis.


B

Implementar todas as funcionalidades do sistema de solicitações em um único método estático, a fim de facilitar a manutenção e melhorar a performance da aplicação.


C

adicionar métodos na classe SolicitacaoService para gerenciar o banco de dados e enviar notificações, evitando a criação de classes adicionais que podem impactar na performance da aplicação.


D

dividir o código em três classes: SolicitacaoService para gerenciar as solicitações, NotificacaoService para envio de notificações e PersistenciaService para gerenciar interações com o banco de dados.


E

criar uma classe GestaoUnificada que centralize todos os serviços relacionados às solicitações em um único local, para maior controle.

 
Ir para a página:
OK
 
Gerar simulado