Questão de Arquitetura de Software — Arquitetura de Software — IV - UFG 2025
Arquitetura de Software›Arquitetura de Software
Código
qg546012
Banca
IV - UFG
Órgão
Câmara de Morrinhos - GO
Ano
2025
Nível
Superior
Cargo
Analista de TI
A arquitetura em camadas é um padrão de arquitetura de software amplamente utilizado para estruturar sistemas complexos de forma organizada e modular. Esse modelo divide a aplicação em camadas lógicas, cada uma com responsabilidades específicas, promovendo separação de responsabilidades, maior manutenção e escalabilidade do sistema. Da perspectiva de fluxo de dados, para que uma arquitetura esteja em conformidade com o padrão, preservando a manutenibilidade e portabilidade, a invocação de funcionalidades só deve acontecer das camadas
Asuperiores para as camadas inferiores.
Binferiores para as camadas superiores.
Csuperiores para as camadas inferiores, ou vice-versa.
Ddo meio para as pontas.
Edas pontas para o meio.
Revelar gabarito e comentário▾
GabaritoA — superiores para as camadas inferiores.
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 em camadas
Gabarito: letra A. Em uma arquitetura em camadas (layered architecture) que respeita os princípios de separação de responsabilidades, a invocação de funcionalidades deve ocorrer exclusivamente das camadas superiores para as inferiores. Esse fluxo unidirecional é essencial para preservar a manutenibilidade e a portabilidade do sistema, pois impede que camadas de baixo nível dependam de detalhes de implementação das camadas acima.
A banca testa o conhecimento sobre o fluxo de dependência em uma arquitetura em camadas. Manter a invocação apenas no sentido top-down (superior → inferior) garante que as camadas mais baixas possam ser reutilizadas ou substituídas sem impacto nas superiores. Qualquer desvio desse sentido compromete a modularidade e a independência entre as camadas.
Arquitetura em camadas: Fluxo de invocação (Superior → Inferior (top-down), Inferior → Superior, Bidirecional); Princípios preservados (Separação de responsabilidades, Manutenibilidade, Portabilidade, Baixo acoplamento, Alta coesão); Consequências da violação (Dependência cíclica, Dificuldade de manutenção, Perda de modularidade)
Alternativa A — ✅ Correta ⟵ GABARITO
Afirma exatamente o que o padrão estabelece: camadas superiores invocam funcionalidades das camadas inferiores. Esse é o sentido correto para garantir baixo acoplamento e alta coesão. As camadas inferiores não conhecem as superiores; elas apenas expõem interfaces que as superiores consomem.
Alternativa B — ❌ Incorreta
Inverte o fluxo: sugere que camadas inferiores invocam superiores. Isso quebraria o princípio de dependência unidirecional, criando dependências cíclicas e dificultando a manutenção. Em uma implementação limpa de arquitetura em camadas, as camadas inferiores nunca invocam as superiores.
Alternativa C — ❌ Incorreta
Permite ambos os sentidos ("superiores para inferiores, ou vice-versa"). Embora em alguns cenários (ex.: camada de apresentação chamar serviço e serviço chamar apresentação) isso possa ocorrer, o padrão formal de arquitetura em camadas restringe o fluxo ao sentido único (superior → inferior) para preservar a modularidade. Permitir os dois sentidos geralmente indica violação do padrão.
Alternativa D — ❌ Incorreta
"Do meio para as pontas" não é um conceito definido em arquitetura em camadas. A direção deve ser hierárquica, não radial.
Alternativa E — ❌ Incorreta
"Das pontas para o meio" também não faz sentido no contexto de camadas. O fluxo é vertical, não horizontal nem centrípeto.
PEGA ESSA DICA!
Uma forma de memorizar o sentido correto é pensar que as camadas "mais próximas do usuário" (superiores) dependem das "mais próximas dos dados" (inferiores). Alterar esse sentido quebra a hierarquia lógica e viola o princípio da inversão de dependência quando aplicado a camadas.