Questão de Engenharia de Software — Conceitos e outros Modelos de Desenvolvimento — CESPE / CEBRASPE 2025
Engenharia de Software›Conceitos e outros Modelos de Desenvolvimento
Código
ce417743
Banca
CESPE / CEBRASPE
Órgão
PC DF
Ano
2025
Cargo
GAAPC ( )
No que diz respeito a design de software, julgue o item a seguir.
Separação por afinidades é uma técnica utilizada para separar aplicações em unidades menores, facilitando-se a resolução de problemas de design.
CCerto
EErrado
Revelar gabarito e comentário▾
GabaritoC — Certo
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”.
Separação por afinidades no design de software
Gabarito: Certo (C). A separação por afinidades é, de fato, uma técnica de design que divide uma aplicação em unidades menores e mais coesas, facilitando a resolução de problemas de design ao reduzir a complexidade e promover a organização por responsabilidades relacionadas. Essa técnica está alinhada aos princípios de modularidade e separação de interesses da engenharia de software.
A engenharia de software, como disciplina, busca gerenciar a complexidade inerente ao desenvolvimento de sistemas. Um dos princípios fundamentais para lidar com essa complexidade é a separação de interesses (ou separation of concerns), que consiste em dividir um problema complexo em partes menores e mais gerenciáveis, concentrando-se em cada uma delas separadamente. A separação por afinidades é uma aplicação prática desse princípio no contexto do design de software.
A técnica consiste em agrupar elementos (como classes, módulos, componentes ou funcionalidades) que possuem alta afinidade entre si, ou seja, que compartilham responsabilidades, dados ou comportamentos relacionados. Ao separar a aplicação em unidades menores com base nessa afinidade, obtém-se módulos com alta coesão e baixo acoplamento, que são características desejáveis em um bom design.
A alta coesão significa que os elementos dentro de um módulo estão fortemente relacionados e focados em uma única responsabilidade. O baixo acoplamento significa que os módulos têm pouca dependência entre si, o que facilita a manutenção, a evolução e o teste do software. Ao separar por afinidades, o designer consegue isolar problemas específicos em unidades menores, tornando mais fácil identificar, analisar e resolver cada problema de design individualmente.
Essa abordagem é amplamente utilizada em diversas metodologias e estilos de arquitetura, como a arquitetura de microsserviços, onde a aplicação é dividida em serviços independentes com base em suas funcionalidades de negócio, e no design orientado a objetos, onde classes são agrupadas em pacotes ou módulos com base em suas responsabilidades relacionadas.
A separação por afinidades não apenas facilita a resolução de problemas de design, mas também melhora a legibilidade do código, promove o reuso de componentes e permite que diferentes equipes trabalhem em paralelo em diferentes módulos, aumentando a produtividade e a qualidade do software.
Portanto, a afirmativa está correta ao descrever a separação por afinidades como uma técnica para separar aplicações em unidades menores, facilitando a resolução de problemas de design.
✅ CERTO.
Separação por afinidades: Objetivo (Dividir em unidades menores, Facilitar resolução de problemas); Base (Agrupar por responsabilidades relacionadas, Alta coesão, Baixo acoplamento); Aplicações (Microsserviços, Design orientado a objetos); Benefícios (Legibilidade, Reuso, Trabalho em paralelo)