Pular para o conteúdo principal

Questão de Engenharia de Software — Conceitos Básicos em Engenharia de Software — FGV 2024

Engenharia de SoftwareConceitos 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:
  1. Atrês portas primárias, duas portas secundárias, um adaptador primário e um adaptador secundário;
  2. Bduas portas primárias, duas portas secundárias, um adaptador primário e dois adaptadores secundários;
  3. Cduas portas primárias, uma porta secundária, dois adaptadores primários e três adaptadores secundários;
  4. Dduas portas primárias, uma porta secundária, três adaptadores primários e dois adaptadores secundários;
  5. 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.

Gabarito: letra E.

Link permanente: /questoes/fg077379