Questão de Arquitetura de Software — Arquitetura de Software — FGV 2024
Arquitetura de Software›Arquitetura 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:
Auma porta primária e uma porta secundária;
Buma porta primária e um adaptador primário;
Cuma porta secundária e um adaptador primário;
Dum adaptador secundário e uma porta secundária;
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.