Você está na página 1de 12

4.5.

1 Acoplamento
O Acoplamento mede o grau de interdependncia entre os mdulos do diagrama. O que se deseja so mdulos de baixo acoplamento para diminuir o mximo possvel o efeito em cadeia quando um mdulo for alterado. Os tipos de Acoplamento so: Dados Imagem Controle Comum Contedo

1) Acoplamento de Dados Corresponde a comunicao de dados necessria entre mdulos. Uma vez que os mdulos tm que se comunicar, a ligao de dados inevitvel, e no crtica desde que mantidas as taxas mnimas. Deve-se tomar cuidado com o chamado dado migrante (um grupo de informaes que vagueia pelo sistema), indesejvel e sem sentido para a maioria dos mdulos pelos quais passa. A figura 19 ilustra um Acoplamento de Dados.

Figura 12:Exemplo de Acoplamento de Dados

2) Acoplamento de Imagem Dois mdulos apresentam Acoplamento por Imagem se eles fazem referncia a uma mesma estrutura de dados. Este tipo de Acoplamento tende a fornecer mais dados do que o necessrio a um mdulo. A figura 20 ilustra um exemplo de Acoplamento por Imagem.

Figura 13: Exemplo de Acoplamento de Imagem

3) Acoplamento de Controle Dois mdulos so acoplados por controle se um passa um grupo de dados (controle) para o outro para controlar sua lgica interna. A figura 21 ilustra um Acoplamento de Controle.

Figura 14: Exemplo de Acoplamento de Controle

No primeiro exemplo, o acoplamento no to crtico uma vez que o controle indica uma validao, porm o segundo exemplo exige que o mdulo que enviou o controle (validar pedido) conhea o outro mdulo. 4) Acoplamento Comum Dois mdulos possuem Acoplamento Comum quando fazem referncia a uma rea global de dados (ex. Working Storage Section da linguagem Cobol). A figura 22 apresenta um exemplo de Acoplamento Comum.

Figura 15: Exemplo de Acoplamento Comum

Este tipo de Acoplamento no desejvel, pois: Um erro em uma rea global pode se propagar por diversos mdulos; Programas com muitos dados globais so de difcil entendimento; Fica difcil descobrir que mdulos devem ser alterados quando um dado modificado. 5) Acoplamento de Contedo Dois mdulos apresentam Acoplamento de Contedo (ou patolgico) se um faz referncia ou desvia a seqncia de instrues para o interior de um outro mdulo (GOTO). Tal Acoplamento torna o conceito de caixas-pretas sem sentido. A figura 23 ilustra um exemplo de Acoplamento de Contedo.

Figura 16: Exemplo de Acoplamento de Contedo

4.5.2 Comparao dos Tipos de Acoplamento


Os tipos de Acoplamento especificados abaixo so apresentados em ordem descrescente (do melhor para o pior tipo). Dados Imagem Controle Comum Contedo

4.5.3 Coeso
Coeso mede a intensidade da associao funcional dos elementos de um mdulo. Deseja-se mdulos altamente coesos, cujos elementos so relacionados um com os outros. Por outro lado, os elementos de um mdulo no devem ser fortemente relacionados com os elementos de outros mdulos, pois isto levaria a um forte acoplamento entre eles. Ter certeza de que todos os mdulos tm boa coeso a melhor forma de minimizar o acoplamento. Os tipos de Coeso so: Funcional Sequencial Comunicacional

Procedural Temporal Lgica Coincidental 1) Coeso Funcional

Um mdulo apresenta Coeso Funcional quando suas funes internas contribuem para a execuo de uma e apenas uma tarefa relacionada ao problema. A figura 24 ilustra mdulos com Coeso Funcional.

Figura 17: Exemplo de Coeso Funcional

2) Coeso Seqencial Um mdulo apresenta Coeso Seqencial quando suas funes internas esto envolvidas em atividades de tal forma, que os dados de sada de uma atividade sirvam como dados de entrada para a prxima. Este fluxo estabelece uma seqncia de execuo das funes, no entanto, no se pode caracterizar o conjunto delas como uma nica tarefa. A Figura 25 ilustra um mdulo com Coeso Seqencial. No exemplo, verifica-se que exibir consulta executa duas atividades bem distintas e que poderiam ser representadas pelos mdulos: Obter registro Exibir dados

Figura 18: Exemplo de Coeso Seqencial

Um mdulo com Coeso Seqencial caracteriza-se por ser de fcil manuteno, porm de baixa reutilizao, pois contm atividades que so utilizadas juntas. 3) Coeso Comunicacional Um mdulo possui Coeso Comunicacional quando suas funes internas esto relacionadas por utilizarem as mesmas informaes, ou seja, utilizam a mesma entrada ou mesma sada. Nesta situao o mdulo fornece mais informaes que o necessrio. A figura 26 ilustra um mdulo com Coeso Comunicacional. No exemplo Obter Detalhes Cliente recebe um mesmo parmetro de entrada Num-Conta e executa duas atividades distintas que poderiam ser representadas pelos mdulos: Obter nome cliente Obter resultado emprstimo

Figura 19: Exemplo de Coeso Comunicacional

Mdulos com Coeso Comunicacional e Sequencial so semelhantes, pois ambos contm atividades organizadas em torno dos dados do problema original. A principal diferena entre eles que um mdulo sequencialmente coeso opera como uma linha de montagem onde suas atividades so executadas em uma ordem especfica. J em um mdulo com coeso comunicacional a ordem de execuo no importante. 4) Coeso Procedural Um mdulo possui Coeso Procedural quando suas funes internas executam atividades diferentes e no correlacionadas, exceto por serem executadas em uma mesma ordem, nas quais o controle flui (e no os dados) de uma atividade para outra. comum em um mdulo com Coeso Procedural que os dados de entrada e sada tenham pouca relao. tpico tambm que tais mdulos devolvam resultados parciais, tais como: flags, chaves, etc. A figura 27 ilustra o mdulo Tratar Saque isolado (parte esquerda da figura) com Coeso Procedural, e sua fatorao para mdulos funcionalmente coesos na parte mais a direita da figura.

Figura 20: Exemplo de Coeso Procedural

5) Coeso Temporal Um mdulo possui Coeso Temporal quando suas funes internas executam atividades que esto relacionadas apenas com o tempo (as atividades no esto relacionadas entre si). A ordem de execuo de atividades mais importante em mdulos procedurais do que em mdulos temporais. A Figura 28 ilustra um mdulo com Coeso Temporal.

Figura 21: Exemplo de Coeso Temporal

6) Coeso Lgica Um mdulo possui Coeso Lgica quando suas funes internas contribuem para atividades da mesma categoria geral, onde a atividade selecionada fora do

mdulo. Desta forma, mdulos logicamente coesos apresentam uma interface descaracterizada. A figura 29 ilustra um mdulo com Coeso Lgica.

Figura 22: Exemplo de Coeso Lgica

7) Coeso Coincidental Um mdulo possui Coeso Coincidental quando suas funes no possuem nenhuma correlao entre si, no h uma ordem especfica de execuo, nem sempre todas as funes so ativadas e a ativao das funes decidida fora do mdulo. A figura 30 ilustra uma Coeso Coincidental.

Figura 23: Exemplo de Coeso Coincidental

4.5.4 Determinao do Tipo de Coeso


A figura 31 mostra uma estratgia para identificar o tipo de Coeso de um determinado mdulo.

Figura 24: Estratgia para identificao dos tipos de Coeso

Comparando os tipos de Coeso, podemos classific-los em ordem, como descrito abaixo (do melhor para o pior tipo): Funcional Sequencial Comunicacional Procedural Temporal Lgica Coincidental

Você também pode gostar