Questão de Arquitetura de Software — Conceitos Básicos em Arquitetura de Software — FGV 2023
Arquitetura de Software›Conceitos Básicos em Arquitetura de Software
Código
fg061604
Banca
FGV
Órgão
Câmara dos Deputados
Ano
2023
Nível
Superior
Cargo
Analista Legislativo - Informática Legislativa - Tarde
Padrões GRASP comunicam princípios fundamentais de atribuição de responsabilidades em um projeto orientado a objetos e oferecem soluções idiomáticas que guiam os projetistas na criação de software.De acordo com esses padrões, um princípio fundamental, segundo o qual as responsabilidades são atribuídas em projetos orientado a objetos, é
Aatribuir responsabilidade de maneira que o acoplamento entre classes permaneça forte.
Batribuir responsabilidade à classe que tem a informação necessária para satisfazer a responsabilidade.
Catribuir responsabilidades de forma que a coesão das classes permanece baixa.
Datribuir a responsabilidade do tratamento dos eventos de sistema de um mesmo caso de uso a múltiplas classes.
Eatribuir um conjunto de responsabilidades sem coesão a uma classe artificial para permitir a reutilização.
Revelar gabarito e comentário▾
GabaritoB — atribuir responsabilidade à classe que tem a informação necessária para satisfazer a responsabilidade.
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”.
Padrões GRASP: Information Expert
Gabarito: letra B. O princípio fundamental dos padrões GRASP para atribuição de responsabilidades é o Information Expert (Especialista na Informação), que determina que a responsabilidade deve ser atribuída à classe que possui a informação necessária para cumpri-la. Esse conceito é um dos pilares dos GRASP (General Responsibility Assignment Software Patterns), conforme descrito na literatura de engenharia de software.
Alternativa A — ❌ Incorreta
Afirma que o acoplamento entre classes deve permanecer forte. Os GRASP, ao contrário, preconizam o princípio Low Coupling (Baixo Acoplamento), que recomenda minimizar dependências entre classes para facilitar manutenção e reuso. A alternativa inverte o conceito.
Alternativa B — ✅ Correta ⟵ GABARITO
Descreve exatamente o padrão Information Expert: atribuir responsabilidade à classe que detém a informação necessária. Esse princípio promove alta coesão e baixo acoplamento, pois a classe que sabe executar a tarefa já possui os dados, evitando delegar sem necessidade.
Alternativa C — ❌ Incorreta
Propõe que a coesão das classes permaneça baixa, contrariando o princípio High Cohesion (Alta Coesão) dos GRASP. A coesão alta significa que as responsabilidades de uma classe estão fortemente relacionadas, o que torna o sistema mais compreensível e manutenível.
Alternativa D — ❌ Incorreta
Sugere atribuir a responsabilidade do tratamento de eventos de um mesmo caso de uso a múltiplas classes. O padrão Controller dos GRASP, por outro lado, recomenda que um único objeto (geralmente um controlador) seja responsável por receber e coordenar os eventos do sistema, evitando dispersão de responsabilidades.
Alternativa E — ❌ Incorreta
Menciona atribuir um conjunto de responsabilidades sem coesão a uma classe artificial para reutilização. Embora exista o padrão Pure Fabrication (Fabricação Pura), ele cria classes artificiais para representar conceitos que não existem no domínio, mas sempre visando alta coesão e baixo acoplamento, nunca agrupando responsabilidades sem coesão.
NÃO CAIA NESSA!
A banca testa o conhecimento do padrão mais central dos GRASP — Information Expert. As alternativas erradas misturam os princípios opostos (forte acoplamento, baixa coesão) ou citam outros padrões (Controller, Pure Fabrication) de forma distorcida. Decore: Information Expert = a classe que sabe faz. Fixe também o tripé: baixo acoplamento, alta coesão e especialista na informação.