No projeto de módulos adequadamente estruturados deve-se

Próximas questões
Com base no mesmo assunto
Q26400 Engenharia de Software
No projeto de módulos adequadamente estruturados deve-se
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é a B - evitar escopo de efeito de um módulo fora de seu escopo de controle.

Para entender o motivo, é essencial abordar os conceitos de acoplamento e coesão, que são fundamentais na engenharia de software e no projeto de módulos bem estruturados.

O acoplamento se refere ao nível de dependência entre módulos, onde um baixo acoplamento é desejável pois significa que os módulos são relativamente independentes uns dos outros, facilitando a manutenção e a compreensão do código.

A coesão se refere ao grau com que os elementos dentro de um módulo pertencem juntos, onde uma alta coesão indica que um módulo tem uma única, bem definida tarefa ou responsabilidade, contribuindo para a clareza e reutilização do código.

Na alternativa B, o enunciado destaca a importância de um módulo ter um escopo de efeito claramente definido dentro do seu próprio escopo de controle, ou seja, um módulo deve possuir impacto apenas sobre as operações ou dados que ele é responsável por gerenciar, sem afetar ou depender de outros módulos externos. Isso promove tanto um baixo acoplamento quanto uma alta coesão, resultando em um sistema mais robusto, modular e fácil de modificar ou estender.

Portanto, a correta separação de preocupações e a clara definição de responsabilidades de um módulo são aspectos críticos no design de um software, onde se deve evitar que um módulo influencie ou dependa de partes do sistema que estão fora do seu escopo operacional ou funcional direto.

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

Divisão de DecisãoUma decisão é constituída de duas partes: o reconhecimento da ação a ser tomada e a execução desta ação. Deve-se evitar ao máximo a divisão de decisão. A parte referente a execução da decisão deve ser mantida o mais próximo possível da parte referente ao reconhecimento, a fim de que a informação reconhecida não tenha que percorrer um longo caminho para ser processada (dado migrante).• Escopo de Controle: conjunto formado por um módulo e todos os seus subordinados;• Escopo de Efeito de uma Decisão: conjunto de todos os módulos cujo seu procedimento depende da decisão.É importante que o Escopo de Efeito de uma Decisão de um módulo seja um subconjunto do Escopo de Controle deste módulo. Sempre que esta regra for violada, deve-se elaborar uma nova organização dos módulos com o objetivo de aproximar o reconhecimento da execução.fonte: www.ccet.unimontes.br/arquivos/dcc/christine/1071.pdf
Esta eu resolvi por eliminação, da seguinte forma:Letra A) Falsa pois a Máxima do Projetos de Módulos Estruturados deve ser Baixo Acoplamento e Alta Coesão.Letra C) Falsa pois o maior nível de coesão é o funcional e devido à máxima anteriormente citada.Letra D) Falsa pois o maior nível de acoplamento é o por conteúdo e devido à máxima anteriormente citada.Letra E) Falsa pois o maior nível de coesão é o funcional e não a coesão lógica . E, principalmente, devido à máxima anteriormente citada.Logo, resta a letra B.
a) buscar evitar buscar o baixo acoplamento.

b) evitar escopo de efeito de um módulo fora de seu escopo de controle.
Sempre que possível, o escopo de efeito de um módulo deve estar contido em seu escopo de controle. Desejável que todos os módulos afetados por uma decisão sejam subordinados ao módulo que tomou a decisão. Semelhante a um relacionamento chefe/empregado.

c) buscar evitar a coesão funcional.
d) evitar adotar o acoplamento por conteúdo.
e) evitar adotar a coesão lógica
Para matar a questão:
Acoplamento e coesão são conceitos fundamentais da Engenharia de Software. O livro do Pressman apresenta-os de forma clara e sucinta. Vamos revisá-los.
Coesão: é a medida da “força funcional” relativa de um módulo. Um módulo coeso realiza uma única tarefa dentro de um procedimento de software, requerendo pouca ou nenhuma interação com procedimentos sendo realizados em outras partes de um programa. O ideal é buscar uma alta coesão.Há vários tipos de coesão, alguns menos desejáveis do que outros.

Tipos indesejáveis de coesão:
Coesão coincidental: ocorre quando um módulo realiza um conjunto de tarefas frouxamente relacionadas.
Coesão lógica: ocorre quando um módulo realiza um conjunto de tarefas que estão relacionadas logicamente. (letra e)
Coesão temporal: ocorre quando um módulo realiza um conjunto de tarefas que devem ser executadas dentro do mesmo decurso de tempo.

Tipos intermediários de coesão:
Coesão procedural: ocorre quando os elementos de processamento do módulo são relacionados e devem ocorrer em uma ordem específica.
Coesão de comunicação: ocorre quando todos os elementos de processamento do módulo se concentram em uma única área de uma estrutura de dados.

 

 Coesão desejável
Coesão funcional: quando um módulo realiza uma única tarefa procedural distinta. (letra c)

Acoplamento: é a medida de interconexão entre módulos em uma estrutura de software. Depende da complexidade de interface entre eles, o ponto no qual a entrada ou referência é feita a um módulo e que dados passam pela interface. O ideal é buscar o mais baixo acoplamento.
Também, assim como Coesão, há vários tipos de Acomplamento, em diferentes níveis.

Tipos indesejáveis de Acoplamento:
Acoplamento comum: quando um conjunto de módulos acessa uma área global de dados
Acoplamento por conteúdo: ocorre quando um módulo faz uso de estruturas de dados ou de controle mantidas no escopo de outro módulo (letra d)

Tipo intermediário de Acoplamento:
Acoplamento por controle: quando módulo passa decisões de controle a outro módulo

Tipo desejável de acoplamento:
Acomplamento de dados: ocorre quando apenas uma lista de dados simples é passada como parâmetro de um módulo para o outro, com uma correspondência um-para-um de itens.

Clique para visualizar este comentário

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