Você está na página 1de 2

1 2

Qualidade de Projeto
(material elaborado pelas professoras Rosângela e Junia) 1/2005 Coesão: como as atividades de um módulo estão relacionadas umas às outras.

Objetivo- confiabilidade da representação Objetivo do projeto: maior coesão.



análise da modularidade Determinação da coesão de um módulo: pela sentença que o descreve.

Modularidade: divisão do sistema em módulos para conseguir uma representação legível e 1. Coesão funcional – verbo + objeto
simples que possibilite realizar verificações, manutenções, e reutilizações de módulos. Ex: leia registro cliente
Critérios para avaliar a estrutura modular: Calcule desconto à vista
Deduza taxas
1. Simplicidade: não executa mais funções que o necessário. O módulo implementa uma única ação de controle ou transformação de dados.
2. Acoplamento: grau de interdependência entre os módulos.
3. Coesão: força que mantém unidos os elementos de um módulo. 2. Coesão seqüencial – número de funções de linha de montagem.
4. Fan-in: número de módulos superiores/chamadores. Ex: ler transação, confirmar dados e atualizar tabelas.
5. Fan-out: número de módulos subordinados. O resultado de uma função é entrada para a próxima. Dados fluem de uma atividade para
outra.
Acoplamento: avalia o grau de interdependência entre os módulos.
3. Coesão comunicacional – número de funções não seqüenciais.
Objetivo do projeto: menor acoplamento – módulos independentes Ex: calcular salário mínimo, médio e máximo de funcionários.
Grava e imprime informações de cliente em atraso
↓ acoplamento ⇒ sistema bem particionado Os elementos referenciam os mesmos dados de entrada, operam no mesmo fluxo de dados.
Diminui a chance de efeito em cadeia (erro se alastrar)
Aumenta a facilidade ao trocar um módulo 4. Coesão procedimental ou procedural – nomes de procedimento ou de fluxos
Ex: rotina loop / Módulo chave/ Imprime relatórios
Tipos de acoplamento Os elementos espelham a organização procedimental (seqüência de chamadas ou ativações
do programa).
1. Acoplamento de dados – comunicação por parâmetros (dados necessários para o Controle flui de uma atividade para outra.
módulo executar sua função)
5. Coesão temporal – nomes relacionados ao tempo
2. Acoplamento de imagem – módulos que se referem à mesma estrutura de dados Ex: Inicialização/Finalização
(módulo com mais dados do que ele necessita) Os elementos do módulo são executados em um certo momento.

3. Acoplamento de controle – um módulo passa para o outro um grupo de dados 6. Coesão lógica – nome de propósito geral
destinados a controlar a lógica interna do outro Ex: editar módulos / Abrir arquivos
Para usá-lo é necessário um flag. Cada ativação efetua uma de um conjunto de funções
4. Acoplamento de conteúdo – um módulo faz referencia ao interior do outro correlatas.

Comparação de tipos de ligação: 7. Coesão coincidental – nome pouco significativo


Ex: processamento / Rotina ABC.
Tipo de Suscetibilidade Possibilidade de Compressão Utilidade em Para usá-lo é necessário um flag.
acoplamento ao efeito cadeia alteração outros sistemas
Dados Variável Boa Boa Boa
Imagem Variável Médio Médio Médio
Controle Médio Fraco Fraco Fraco
Conteúdo Ruim ruim ruim Ruim
3

o módulo executa 1 funcional


função relacionada sim
ao problema? A seqüência sim 2 seqüencial
não é importante?
dados não 3 comunicacional
o que relaciona
as atividades Fluxo de A seqüência sim 4 procedimental
dos módulos controle é importante?
não 5 temporal
Nenhum
deles as atividades sim 6 lógica
estão na mesma
não
categoria geral? 7 coincidental

Comparação entre níveis de coesão

Nível de coesão acoplamento Clareza de Reusabili-dade Modificabili- Compreensibili-


implementação dade dade
Funcional Bom Bom Bom Bom Bom
Seqüencial Bom Bom Médio Bom Bom
Comunicacional Médio Bom Fraco Médio Médio
Procedimental Variável Médio Fraco Variável Variável
Temporal Fraco Médio Ruim Médio Médio
Lógica Ruim ruim Ruim Fraco Fraco
Coincidental ruim fraco ruim fraco Ruim

↑ coesão e ↓ acoplamento ⇒ sistemas mais fáceis de se manter

Fan-in

Módulo
X

Fan-out

Ideal: modulo com alto fan-in e baixo fan-out

Você também pode gostar