Pular para o conteúdo principal

Questão de Arquitetura de Software — Arquitetura de Software — FGV 2024

Arquitetura de SoftwareArquitetura de Software
Código
fg077001
Banca
FGV
Órgão
CGE-PB
Ano
2024
Nível
Superior
Cargo
Auditor de Contas Públicas - Auditoria de Tecnologia da Informação
A analista Joana está desenvolvendo a aplicação ParaibaCerta. Joana implementou o modelo e o repositório da camada de persistência, mas ainda não escolheu qual banco de dados irá utilizar. Joana também implementou um teste automatizado para determinado fluxo da interface gráfica da ParaibaCerta.À luz da arquitetura hexagonal, ao implementar o repositório da camada de persistência e o teste automatizado, Joana adicionou à ParaibaCerta, respectivamente:
  1. Auma porta primária e uma porta secundária;
  2. Buma porta primária e um adaptador primário;
  3. Cuma porta secundária e um adaptador primário;
  4. Dum adaptador secundário e uma porta secundária;
  5. Eum adaptador primário e um adaptador secundário.
Revelar gabarito e comentário

GabaritoC — uma porta secundária e um adaptador primário;

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Arquitetura Hexagonal (Ports and Adapters)

Gabarito: letra C. Na arquitetura hexagonal, o repositório de persistência é uma porta secundária (driven port), pois define uma interface que o núcleo da aplicação utiliza para acessar dados externos. Já o teste automatizado da interface gráfica é um adaptador primário (driving adapter), pois ele conduz a aplicação a partir de fora, simulando a interação do usuário.

A banca testa a correta distinção entre portas (interfaces) e adaptadores (implementações), bem como os lados primário (driving) e secundário (driven). O repositório, por ser uma interface que o domínio chama, é porta secundária; o teste, por acionar o sistema, é um adaptador primário.

NÃO CAIA NESSA!

É comum confundir portas com adaptadores. Lembre-se: a porta é a interface (contrato), o adaptador é a implementação concreta. Além disso, primário = lado que chama o sistema (entrada), secundário = lado que o sistema chama (saída). O repositório é chamado pelo sistema → secundário; o teste chama o sistema → primário.

Elemento

Tipo (Porta/Adaptador)

Lado (Primário/Secundário)

Justificativa

Repositório de persistência

Porta

Secundário

Interface que o núcleo da aplicação chama para acessar dados externos

Teste automatizado da interface gráfica

Adaptador

Primário

Implementação concreta que conduz a aplicação a partir de fora, simulando interação do usuário

Alternativa A — ❌ Incorreta

Afirma que o repositório é porta primária e o teste é porta secundária. O repositório não é porta primária (seria se fosse interface de entrada) e o teste não é porta (é um adaptador).

Alternativa B — ❌ Incorreta

Diz que o repositório é porta primária (erro) e o teste é adaptador primário (correto isoladamente, mas a primeira parte invalida).

Alternativa C — ✅ Correta ⟵ GABARITO

Repositório = porta secundária (interface de saída). Teste = adaptador primário (entrada que conduz a aplicação). Exato conforme o padrão.

Alternativa D — ❌ Incorreta

Classifica o repositório como adaptador secundário (na verdade é porta) e o teste como porta secundária (é adaptador primário).

Alternativa E — ❌ Incorreta

Afirma que o repositório é adaptador primário e o teste é adaptador secundário. Ambos invertidos: repositório não é adaptador, e teste não é secundário.

Gabarito: letra C

Link permanente: /questoes/fg077001