MÓDULO de software
. O que é um BOM módulo de software?
. Para PE :
Aquele que atende as MODIFICAÇÕES
CUSTO MÍNIMO
SEGURANÇA MÁXIMA
33
MÓDULO de software
MANUTENÇÃO
. Problema 01
Sistema escrito em XLBOL, sem uma linha de documentação, etc
. O que fazer?
. Jogar fora? Fazer um novo?
. Novo é sinônimo de melhorado?
. Problema 02
Sistema bem projetado, bem implementado e bem documentado.
. Como evitar a manutenção predatória?
34
ATIVIDADES de MANUTENÇÃO de SOFTWARE
(Evolução / Localização / Tropicalização)
1. Entender como o sistema (ou módulo) funciona (ou não funciona)
2. Localizar as partes (módulos) que precisam ser modificados
3. Avaliar o impacto da modificação
4. Efetuar a modificação
5. Garantir que a parte modificada funcione
6. Garantir que o todo funcione
35
ATIVIDADES de MANUTENÇÃO de SOFTWARE
(Evolução / Localização / Tropicalização)
1. Entender como o sistema (ou módulo) funciona (ou não funciona)
Responde por 60% a 80% da dificuldade
BOM módulo
FÁCIL de ser ENTENDIDO
36
BOM módulo
FÁCIL de ser ENTENDIDO
CAIXA PRETA
CONHECE
. Entrada(s)
. Saída(s)
. Função Básica
F
NÃO CONHECE
. Como ela realiza suas operações
. Em que ordem ela realiza suas operações
37
CAIXA PRETA
F
FACILMENTE:
. Construída
. Testada
. Corrigida
. Entendida
. Modificada
Obs: por melhor que seja elaborado o particionamento, existem
requisitos (funcionais ou não funcionais) que podem ficar
espalhados em milhares de módulos de software.
Uma das vocações de AOP ou AOA (aspect) é tratar esta questão.
38
ACOPLAMENTO e COESÃO
ACOPLAMENTO coupling
Dependência de um módulo em relação a OUTRO(s) módulo(s)
COESÃO cohesion
Medida da associação funcional dos elementos de um módulo (personalidade)
39
ACOPLAMENTO e COESÃO
BOM MÓDULO
BAIXO ACOPLAMENTO
ALTA COESÃO
40
COESÃO
Baseia-se no critério que o projetista agrupou as funcionalidade, as atividades no módulo.
CAIXA PRETA
MELHOR
FUNCIONAL
SEQUENCIAL
COMUNICACIONAL
PROCEDURAL
TEMPORAL
LÓGICA
COINCIDENTAL
CAIXA TRANSPARENTE
PIOR
41
COESÃO
FUNCIONAL
posição
alvo
valor
ângulo
órbita
SENO
01
Calcular SENO
de ângulo
deduções
02
Calcular órbita
de míssil
salário
bruto
salário
liquido
03
Calcular salário
líquido
42
COESÃO
SEQUENCIAL
preferências
cliente
identificação
cliente
04
cliente
formatado
Validar e
formatar cliente
43
COESÃO
COMUNICACIONAL
título
identificação
livro
autor
quantidade
05
Obter qtde,
autor e título de
livro
44
COESÃO
PROCEDURAL
data
pagamento
data
vencimento
identificação
cliente
06
cliente
caracterizado
Comparar datas
e caracterizar
cliente
45
COESÃO
TEMPORAL
valor buffer
B27
valor buffer
C07
ind4
A01 a A13
X01 a X15
arquivos
07
ind5
variáveis
08
Inicializar
Finalizar
tudo
tudo
46
COESÃO
LÓGICA
valor m
Lm
Relatório y
C07
ind8
valores x e y
Msg xx
resultados
09
ind v
ind z
10
Cálculo
Impressão
geral
geral
47
COESÃO
COINCIDENTAL
variáveis
coisas
valores
ctes
resultados
ind 40
42
ind w
números
ind X
11
ind z
Modulo
FUNK
12
P45
48
COESÃO
FUNÇÃO é ÚNICA
FUNCIONAL
SIM
SEQUÊNCIA
IMPORTA - SIM
LIGAÇÃO de
DADOS
SEQUENCIAL
SEQUÊNCIA
NÃO IMPORTA
COMUNICACIONAL
SEQUÊNCIA
FUNÇÃO é ÚNICA
LIGAÇÃO de
CONTROLE
NÃO
IMPORTA - SIM
PROCEDURAL
SEQUÊNCIA
NÃO IMPORTA
LIGAÇÃO
DIFERENTE
TEMPORAL
MESMA CATEGORIA SIM
LÓGICA
MESMA CATEGORIA NÃO
COINCIDENTAL
49
COESÃO
Baseia-se no critério que o projetista agrupou as funcionalidade, as atividades no módulo.
CAIXA PRETA
MELHOR
FUNCIONAL
SEQUENCIAL
COMUNICACIONAL
PROCEDURAL
TEMPORAL
LÓGICA
PIOR
COINCIDENTAL
CAIXA TRANSPARENTE
50
ACOPLAMENTO
Baseia-se na relação de dependência de um módulo com os outros
SOLTO
MELHOR
DADOS
IMAGEM
CONTROLE
COMUM
CONTEÚDO
PIOR
AMARRADO
51
ACOPLAMENTO
DADOS
Dois ou mais módulos se comunicam por Elementos de Dados
pagto
líquido
03
07
Calcular salário
líquido
identif.
colab.
identificação
colaborador
08
Obter
pagto bruto
pagto
bruto
deduções
09
Obter
17
deduções
07 e 08: Acoplamento de DADOS
07 e 09: Acoplamento de DADOS
52
Download

O que é um BOM módulo de software?