Segundo a teoria de engenharia de software, qual categoria ...

Próximas questões
Com base no mesmo assunto
Q635355 Engenharia de Software
Segundo a teoria de engenharia de software, qual categoria de acoplamento de classes ocorre quando certo número de componentes faz uso de uma variável global, o qual pode levar à propagação descontrolada de erros e efeitos colaterais imprevisíveis quando modificações são feitas?
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

```html

Alternativa correta: A - Acoplamento Comum

Vamos entender melhor por que a opção correta é o Acoplamento Comum. Em engenharia de software, o acoplamento se refere ao grau de interdependência entre módulos de um sistema. O acoplamento comum, especificamente, ocorre quando múltiplos componentes ou classes compartilham o acesso a uma variável global. Esta prática pode ser problemática, pois alterações em uma variável global podem afetar vários componentes, levando a uma propagação descontrolada de erros e efeitos colaterais imprevisíveis, como mencionado na questão.

Agora, vamos analisar as alternativas incorretas:

B - Acoplamento Carimbado: Este tipo de acoplamento ocorre quando módulos compartilham um conjunto de dados através de uma estrutura ou classe, mas não utilizam todos os dados. Isso é menos problemático que o acoplamento comum, pois não envolve variáveis globais.

C - Acoplamento por Dados: Este é um nível de acoplamento mais desejável onde os módulos interagem apenas por meio de parâmetros explicitamente passados. Isso minimiza os efeitos colaterais e aumenta a modularidade, ao contrário do acoplamento comum.

D - Acoplamento Não Carimbado: Este termo não é uma classificação padrão em engenharia de software. Provavelmente foi usado na questão para confundir, mas não leva em conta a problemática do uso de variáveis globais.

E - Acoplamento Digital: Este não é um tipo reconhecido de acoplamento em engenharia de software. É possível que tenha sido usado como uma distração, pois não está relacionado ao conceito de variáveis globais e acoplamento entre classes.

Entender o conceito de acoplamento ajuda a construir sistemas mais robustos e fáceis de manter. Reduzir o acoplamento entre módulos é uma prática recomendada para evitar problemas como os descritos na questão.

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

Comentários

Veja os comentários dos nossos alunos

Alternativa correta a) Acoplamento comum

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 realiz 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.


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.


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

 

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.
Fonte: Prof Pedrosa http://www.itnerante.com.br/group/engenhariadesoftware/forum/topics/coes-o-e-acoplamento

Acoplamento é uma medida qualitativa do grau em que as classes são conectadas entre si. À medida que as classes (e componentes) tornamse mais interdependentes, o acomplamento cresce. Um objetivo importante em projetos de software é preservar o acomplamento tão baixo quanto possível.

Acoplamento de classes pode manifestar-se de vários modos. Abaixo estão listados alguns deles:

Acoplamento por conteúdo: Ocorre quando um componente modifica dados internos a um outro componente. Isso viola a ocultação de informação - um conceito básico de orientação a objetos.

Acoplamento comum: Ocorre quando certo número de componentes faz uso de uma variável global. Embora isso seja algumas vezes necessário, este tipo de acoplamento pode levar à propagação descontrolada de erros e efeitos colaterais imprevisíveis quando modificações são feitas.

Acoplamento por controle: Ocorre quando operaçãoA() invoca operaçãoB() e passa um sinal de controle para B. O sinal de controle então "dirige" o fluxo lógico dentro de B. O problema com essa forma de acoplamento é que uma modificação não relacionada em B pode resultar na necessidade de modificar o significado do sinal de controle que A passa. Se isso for ignorado, resultará em erro.

É esperado que nos projetos de software os componentes tenham baixo acoplamento.

(Fonte: Engenharia de Software - 6a edição, capítulo 11 - Roger Pressmann)

Clique para visualizar este comentário

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