Considere o projeto da rotina escrita em pseudo-código, apre...

Próximas questões
Com base no mesmo assunto
Q287817 Engenharia de Software
Considere o projeto da rotina escrita em pseudo-código, apresentada a seguir.

1. função processar() {
2. // recuperar lista do banco de dados
3. // ordenar lista
4. // atualizar lista
5. // enviar lista via e-mail
6. // gravar lista no banco de dados
7. fim da função

Sabendo-se que o desenvolvedor implementou o algoritmo responsável pelas linhas 2, 3, 4, 5 e 6 completamente no corpo da função apresentada acima, quais são as características deste trecho de código?

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Para resolver a questão proposta, é importante entender dois conceitos fundamentais em engenharia de software: coesão e acoplamento.

Coesão refere-se ao grau em que os elementos dentro de um módulo pertencem juntos. Quanto mais relacionados e focados forem os elementos de um módulo, maior será sua coesão. Módulos com alta coesão são geralmente mais fáceis de manter e entender.

Acoplamento refere-se ao grau de dependência entre módulos. Um sistema com baixo acoplamento é composto de módulos que interagem entre si de forma mínima, o que geralmente facilita a manutenção e a escalabilidade do sistema.

A questão descreve uma função que realiza múltiplas tarefas independentes dentro do seu corpo, como recuperar, ordenar, atualizar, enviar por e-mail e gravar uma lista no banco de dados. Essa função possui:

  • Baixa coesão: Realiza várias tarefas distintas, não focando em um único propósito coeso.
  • Baixa modularização: Todas as operações estão implementadas em uma única função, sem divisão em submódulos ou funções auxiliares.

Portanto, a alternativa correta é a D - Baixa coesão e baixa modularização.

Analisando as alternativas incorretas:

  • A - Alta coesão e baixa modularização: Incorreto, pois a função não foca em um único propósito.
  • B - Alta coesão e alto acoplamento: Incorreto, já que a função não apresenta alta coesão.
  • C - Baixo acoplamento e baixa modularização: Incorreto, pois o acoplamento não é abordado claramente no contexto, mas a modularização é baixa devido à falta de divisão em submódulos.
  • E - Baixa coesão e alta modularização: Incorreto, já que a função não está dividida em submódulos, caracterizando baixa modularização.

Entender a diferença entre coesão e acoplamento é crucial para o design de sistemas mais eficientes e sustentáveis. Pratique identificar esses conceitos analisando diferentes trechos de código e funções.

Gostou do comentário? Deixe sua avaliação aqui embaixo!

Clique para visualizar este gabarito

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