Acerca do tema refatoração de software, considere as afirmat...

Próximas questões
Com base no mesmo assunto
Q907735 Engenharia de Software

Acerca do tema refatoração de software, considere as afirmativas.


I A refatoração busca evoluir o projeto e código-fonte de um sistema de software para se alcançar alta coesão, isto é, suas classes devem possuir conjuntos extensos de responsabilidades.

II A refatoração busca evoluir o projeto e código-fonte de um sistema de software para alcançar baixo acoplamento, isto é, a colaboração entre as classes deve ser mantida em um nível mínimo aceitável.

III A refatoração é o processo de mudar um sistema de software de tal forma que não altere o comportamento externo do código-fonte, embora melhore sua estrutura interna.


Está(ão) correta(s)

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é a letra E: II e III, somente.

A refatoração é uma técnica de engenharia de software que visa melhorar o design, a estrutura e a implementação do código-fonte de um software, mantendo seu comportamento externo inalterado. Para resolver esta questão, é fundamental compreender os princípios de alta coesão e baixo acoplamento, além de entender o conceito fundamental da refatoração.

A primeira afirmativa está incorreta porque alta coesão significa que uma classe deve ter um conjunto de responsabilidades bem definido e focado, e não extensas responsabilidades como sugerido. Alta coesão facilita a manutenção e a compreensão do código.

A segunda afirmativa é correta e destaca que um dos objetivos da refatoração é alcançar um baixo acoplamento, o que significa que as classes devem interagir o mínimo possível umas com as outras. Baixo acoplamento aumenta a modularidade do software e simplifica os testes e a manutenção.

A terceira afirmativa também é correta, pois captura a essência da refatoração: modificar a estrutura interna do software sem alterar seu comportamento externo. Isso permite aprimorar a qualidade do código sem afetar a funcionalidade que o programa fornece aos usuários.

Portanto, as afirmações II e III estão alinhadas com a prática correta de refatoração de software, justificando a escolha da alternativa E como a resposta correta para esta questão.

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

I A refatoração busca evoluir o projeto e código-fonte de um sistema de software para se alcançar alta coesão, isto é, suas classes devem possuir conjuntos extensos de responsabilidades. (Na verdade ter alta coesão é ter apenas uma única responsabilidade e realizá-la de maneira satisfatória).

RESP: E

Em programação orientada a objetos (POO), o acoplamento é o grau de dependência entre dois ou mais módulos de software. Ele é medido pela quantidade de influência que um módulo tem sobre outro.

Um acoplamento alto indica que dois módulos estão intimamente ligados. Isso pode dificultar a manutenção do software, pois qualquer mudança em um módulo pode afetar o outro.

Um acoplamento baixo indica que dois módulos estão fracamente ligados. Isso facilita a manutenção do software, pois mudanças em um módulo não afetam necessariamente o outro.

Existem vários tipos de acoplamento, incluindo:

  • Acoplamento de dados: Ocorre quando um módulo depende dos dados de outro módulo.
  • Acoplamento de controle: Ocorre quando um módulo depende da ordem de execução de outro módulo.
  • Acoplamento de interface: Ocorre quando um módulo depende da interface de outro módulo.
  • Acoplamento de dependência: Ocorre quando um módulo depende de um outro módulo para sua implementação.

O acoplamento é um conceito importante em POO, pois pode afetar a qualidade do software. Um acoplamento alto pode tornar o software mais difícil de manter, testar e estender.

Aqui estão algumas dicas para reduzir o acoplamento em POO:

  • Use interfaces: As interfaces fornecem uma abstração de como um módulo deve se comportar. Isso pode ajudar a reduzir o acoplamento de controle e de interface.
  • Use abstração: A abstração pode ajudar a reduzir o acoplamento de dados e de dependência.
  • Use composição: A composição é uma forma de combinar objetos. Isso pode ajudar a reduzir o acoplamento de dados e de dependência.
  • Use refatoração: A refatoração pode ajudar a melhorar o acoplamento de um sistema existente.

A redução do acoplamento pode levar a um software de melhor qualidade, mais fácil de manter e estender.

Fonte: Bard

Clique para visualizar este comentário

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