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