Questão de Engenharia de Software — Conceitos Básicos em Engenharia de Software — FGV 2024
Engenharia de Software›Conceitos Básicos em Engenharia de Software
Código
fg077379
Banca
FGV
Órgão
CVM
Ano
2024
Nível
Superior
Cargo
Analista - Perfil 8 - TI / Sistemas e Desenvolvimento - Tarde
O analista José desenvolveu a aplicação CVMapaB observando a arquitetura hexagonal. Para a interação com o usuário, a CVMapaB disponibiliza uma interface gráfica de usuário e uma interface de linha de comando, a cvmapb, com ambas as interfaces capazes de realizar as mesmas operações. A aplicação também disponibiliza uma Application Programming Interface (API) web RESTful, capaz de realizar parte das operações disponíveis na cvmapb. A CVMapaB utiliza o sistema gerenciador de banco de dados da CVM para persistir os dados do usuário. A aplicação possui, ainda, implementações específicas para a publicação de métricas de desempenho. As métricas são remetidas pela CVMapaB ao pipeline de processamento de dados em tempo real da CVM.Com base no enunciado e à luz da arquitetura hexagonal, são identificáveis na CVMapaB:
Atrês portas primárias, duas portas secundárias, um adaptador primário e um adaptador secundário;
Bduas portas primárias, duas portas secundárias, um adaptador primário e dois adaptadores secundários;
Cduas portas primárias, uma porta secundária, dois adaptadores primários e três adaptadores secundários;
Dduas portas primárias, uma porta secundária, três adaptadores primários e dois adaptadores secundários;
Euma porta primária, duas portas secundárias, três adaptadores primários e dois adaptadores secundários.
Revelar gabarito e comentário▾
GabaritoE — uma porta primária, duas portas secundárias, três adaptadores primários e dois adaptadores secundários.
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 – Identificação de Portas e Adaptadores
Gabarito: letra E. Na arquitetura hexagonal, as portas primárias (driving) representam as interfaces que o núcleo da aplicação expõe para interação externa, enquanto os adaptadores primários são as implementações concretas dessas interfaces (ex.: GUI, CLI). As portas secundárias (driven) definem as operações que o núcleo espera de componentes externos, e os adaptadores secundários são as implementações dessas portas (ex.: banco de dados, envio de métricas).
No caso da CVMapaB, as três interfaces de interação com o usuário (GUI, CLI e API RESTful) realizam operações sobre o mesmo núcleo – a GUI e a CLI executam as mesmas operações, e a API executa uma parte delas. Portanto, todas são adaptadores primários que se conectam a uma única porta primária (a interface do núcleo da aplicação). Já no lado secundário, há duas funcionalidades distintas: persistência de dados (banco de dados) e publicação de métricas para o pipeline de processamento. Cada uma constitui uma porta secundária separada, com seu respectivo adaptador secundário. Totalizando: 1 porta primária, 2 portas secundárias, 3 adaptadores primários e 2 adaptadores secundários.
Arquitetura Hexagonal (CVMapaB)
1Portas (contratos)
Primárias (driving)
1 porta: interface do núcleo
Secundárias (driven)
Persistência (banco de dados)
Métricas (pipeline)
2Adaptadores (implementações)
Primários
GUI
CLI
API RESTful
Secundários
Banco de dados
Publicação de métricas
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
Afirma três portas primárias e um adaptador primário. Há apenas uma porta primária (núcleo) e três adaptadores primários.
Alternativa B — ❌ Incorreta
Apresenta duas portas primárias e um adaptador primário. O correto é uma porta primária e três adaptadores.
Alternativa C — ❌ Incorreta
Contém duas portas primárias e dois adaptadores primários, além de uma porta secundária (deveriam ser duas).
Alternativa D — ❌ Incorreta
Traz duas portas primárias e uma porta secundária, enquanto o correto é uma porta primária e duas secundárias.
Alternativa E — ✅ Correta ⟵ GABARITO
Exata combinação: uma porta primária (núcleo), duas portas secundárias (persistência e métricas), três adaptadores primários (GUI, CLI, API) e dois adaptadores secundários (banco de dados, métricas).
NÃO CAIA NESSA!
A banca explora a diferença entre porta (contrato) e adaptador (implementação). Cuidado: múltiplas interfaces que realizam as mesmas operações compartilham a mesma porta primária – não são portas separadas. O mesmo vale para adaptadores secundários: cada funcionalidade externa distinta gera uma porta separada.