Julgue o item a seguir, a respeito de padrões de projetos.No...

Próximas questões
Com base no mesmo assunto
Q768656 Arquitetura de Software

Julgue o item a seguir, a respeito de padrões de projetos.

No padrão GRASP, a alta coesão (high cohesion) serve para mensurar quão fortemente uma classe está conectada a outras classes

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta para a questão apresentada é errado (E).

Explicação:

O padrão GRASP (General Responsibility Assignment Software Patterns) é um conjunto de padrões que ajudam a atribuir responsabilidades aos objetos em projetos de software. Um dos princípios do GRASP é a alta coesão.

A alta coesão (high cohesion) refere-se a quão focadas e especializadas são as responsabilidades de uma classe. Uma classe com alta coesão tem suas responsabilidades muito bem definidas e relacionadas, o que facilita a manutenção e a compreensão do código, além de promover a reutilização.

Importante: A coesão não mede a conexão entre uma classe e outras classes. Esse conceito se refere à coesão interna da própria classe, ou seja, a relação entre os métodos e atributos dentro da classe.

O enunciado afirma que a alta coesão serve para mensurar quão fortemente uma classe está conectada a outras classes. Isso está incorreto.

Justificativa:

Correta: Errado (E)
A coesão mede a especialização e a relação focada das responsabilidades dentro de uma mesma classe, e não a conexão entre diferentes classes.

Incorreta: Certo (C)
Esta alternativa seria incorreta porque ela afirma algo que não corresponde ao conceito de alta coesão em padrões de projeto.

Em resumo, para entender e aplicar corretamente o conceito de alta coesão, lembre-se sempre de que ele se refere à organização interna e à especialização das responsabilidades dentro de uma classe, sem considerar suas conexões com outras classes.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

A questão trata do alto acoplamento.

O padrão high cohesion busca manter objetos apropriadamente focados, gerenciáveis e compreensíveis. Geralmente é utilizado para suportar o baixo acoplamento, enfatizando que as responsabilidades de um dado elemento são fortemente relacionadas e altamente focadas.

 Não confundam esses dois padrões! Coesão trata de divisão de responsabilidades e Acoplamento trata da dependência entre partes/componentes. A questão trata do segudo caso: Acoplamento.​

 Low Coupling:

Esse padrão é responsável por ditar como atribuir responsabilidades para apoiar baixa dependência entre classes, como suportar mudanças em uma classe que tenham baixo impacto em outras classes, e maior potencial de reúso. O acoplamento está sempre associado à coesão. Eu sempre decorei assim: “Acoplamento é a dependência entre as partes.

Problema

Como gerenciar a complexidade?

A coesão mede quão relacionadas ou focadas estão as responsabilidades da classe

Uma classe com baixa coesão faz muitas coisas não relacionadas e leva aos seguintes problemas:

Difícil de entender

Difícil de reusar

Difícil de manter

"Delicada": constantemente sendo afetada por outras mudanças

Uma classe com baixa coesão assumiu responsabilidades que pertencem a outras classes

 

Solução

Atribuir responsabilidades que mantenham alta coesão

 

Fonte : http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/pat/altacoesao.htm

Acoplamento é a dependência entre as partes. Essa é um característica que se deseja minimizar em um projeto.

Coesão é a divisão de responsabilidade entre as partes. Deseja-se ter um nível alto de coesão.

Acoplamento e coesão são, em geral, inversamente proporcionais, falando a grosso modo.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo