Escolar Documentos
Profissional Documentos
Cultura Documentos
módulos simples
O acoplamento baixo pode ser obtido de três maneiras:
A qualidade do projeto será avaliada pelo Eliminando-se comunicação desnecessária.
grau de modularização do sistema. Reduzindo-se o n°° de comunicações necessárias.
Enfraquecendo a dependência das relações necessárias.
Critérios para medir modularização:
Acoplamento
Coesão
Outros fan-in, fan-out, etc
1 2
3 4
Calcular Solução
reembolso do
empréstimo passar apenas os dados necessários ao módulo
5 6
1
Acoplamento por imagem Acoplamento por imagem
Exemplo Solução mais adequada
Gerar conta de Registro de aluguel de carro = no. da
aluguel de carro licença + clube de serviço + tipo de combustível + Gerar conta de
Registro de tipo de carro + Km rodados + dias de uso aluguel de carro
aluguel de tipo de carro
carro Taxa de Registro de
clube de serviços Taxa de tipo de carro
aluguel aluguel de carro
consumo aluguel
dias usados Km rodado
Calcular taxa básica consumo
Calcular consumo Calcular taxa básica
de aluguel Calcular consumo
de combustível de aluguel
de combustível
•Calcular taxa básica de aluguel requer: clube de serviço+tipo de carro+dias de uso Gerar conta de aluguel de carro X Calcular taxa básica de aluguel acoplamento
•Calcular consumo de combustível requer: tipo de carro + Km rodados Gerar conta de aluguel de carro X Calcular consumo de combustível por dados
7 8
9 10
Acoplamento comum
Acoplamento por conteúdo
Dois módulos possuem acoplamento comum se eles se
referem à mesma área de dados (EX: à mesma tabela) Dois módulos apresentam acoplamento por conteúdo se um
faz referência ao interior do outro.
tabela
Exemplo: se um módulo desvia a seqüência de instruções
Produzir tabela ordenada para dentro de outro ou se um módulo altera um comando
Tabela do outro
Tabela ordenada
Ordenar tabela ordenada Exibir tabela
Tal acoplamento torna o conceito de caixa preta, sem
Acoplamentos: sentido.
Produzir tabela ordenada X Ordenar tabela acoplamento comum
Produzir tabela ordenada X Exibir tabela acoplamento por imagem Em geral isso só pode ser implementado em linguagem de
Ordenar tabela X Exibir tabela acoplamento por imagem baixo nível.
11 12
2
Determinação do nível de acoplamento Exercício
Para fazer agora:
Quando dois módulos estão acoplados de mais
de uma maneira, o acoplamento entre eles é Exerc 1 – Pg 147
definido pelo pior tipo que apresentam. Exerc2 – Pg 147
Exemplo: Se dois módulos estão acoplados por imagem e
por conteúdo, deve-se classificar o acoplamento como
sendo por conteúdo.
13 14
Coesão funcional
Coesão
A coesão de um módulo é o grau de relacionamento Um módulo com coesão funcional contém
entre suas atividades.
somente elementos que contribuem para a
Quanto maior o grau de coesão melhor
execução de uma, e apenas uma, tarefa
relacionada com o sistema.
A coesão e o acoplamento estão inter relacionados, pois a
coesão de um módulo geralmente determina o quanto ele
será acoplado a outros módulos.
Exemplos: Calcular seno
Boa coesão é uma forma de minimizar acoplamento
Ler registro de cliente
Calcular salário líquido
15 16
Coesão seqüencial
Coesão de comunicação
Um módulo tem coesão seqüencial se suas atividades
estão relacionadas de forma que os dados de saída de Um módulo tem coesão de comunicação quando suas
uma atividade servem como dados de entrada para a atividades estão relacionadas pelo uso da mesma
próxima entrada ou da mesma saída
Exemplo: Formatar e consistir registro tem coesão
seqüencial
Exemplo: Manter catálogo tem coesão de
Registro ok registro
comunicação
Formatar e consistir registro Inf livro
Registro Registro ok
registro Registro Manter catálogo
formatado formatado Inf livro Inf livro
Inf livro
Formatar registro Consistir registro
Inf livro
Módulos com esse tipo de coesão são de fácil manutenção, mas não são
tão reutilizáveis Cadastrar Gerar ficha de Cadastrar autor Gerar identificação
livro catálogo do exemplar
17 18
3
Coesão de procedimento
As atividades de um módulo com coesão de procedimento Coesão temporal
são diferentes e possivelmente não relacionadas, mas com
o controle fluindo de uma para outra Um módulo com coesão temporal tem suas
Ex: Coesão do módulo Gerar nova tabela
atividades relacionadas pelo tempo.
Tem alto acoplamento com vários outros módulos
Nova tabela
Tabela atual
editada
Módulo de difícil reutilização
Gerar nova tabela Exemplos clássicos de coesão temporal são módulos de inicialização.
Nova tabela
Tabela atual Nova editada
Nova Inf. atualizações
tabela tabela
Gravar tabela atual Obter nova tabela Formatar nova tabela
Controlar inicializações
Nomes das variáveis
Nomes dos mensagens
Devolve resultados pouco relacionados com os dados de entrada.
arquivos
Esse nível de coesão cruza a fronteira dos módulos de fácil manutenção. Inicializar variáveis Emitir mensagens iniciais
Abrir arquivos
19 20
Coesão lógica
Um módulo tem coesão lógica se o relacionamento entre suas Coesão coincidente
atividades é ter a mesma categoria geral, onde as atividades
a serem executadas são selecionadas fora do módulo. Um módulo coincidentemente coeso é aquele
Exemplo: O módulo imprimir relatório tem coesão lógica cujas atividades não tem relação significativa
Relatório=[rel vendas | rel compras | balanço] entre si.
Ele é similar a um módulo logicamente coeso pois suas atividades não
Imprimir relatório estão relacionadas por fluxo de dados ou fluxo de controle, no
entanto, suas atividades não são da mesma categoria.
23 24
4
Fan-out da segmentação
Outros critérios de qualidade O fan-out de um módulo é o número de subordinados imediatos
daquele módulo
Fan-out da segmentação Sistema de controle acadêmico
serviço
Fan-in da segmentação
Obter Emitir lista Classificar Atualizar nota Controlar
serviço da classe alunos e freq matrícula
Opção E
Fan-in da segmentação
O fan-in de um módulo é o número de superiores imediatos Exercícios
que ele possui
Para fazer agora:
A Exerc EXTRA
B C a
a
a
Gravar reg-
cliente