Tipos de sistemas de Lehman



Sistemas S: formalmente definidos e
derivados de uma especificação
Sistemas P: requisitos baseados em uma
solução aproximada que seja prática de
construir e utilizar
Sistemas E: embutido no mundo real e se
modifica à medida que o mundo muda
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 11
Prentice Hall
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 11
Prentice Hall
Evolução versus declínio do sistema

O custo de manutenção é muito alto?

A confiabilidade do sistema é inaceitável?

O sistema não pode mais se adaptar a mudanças adicionais dentro de
um período de tempo razoável?

O desempenho do sistema ainda está fora das restrições prescritas?

As funções do sistema têm utilidade limitada?

Outros sistemas fazem o mesmo trabalho melhor, mais rápido ou
gerando menos custos?

O custo de manutenção do hardware é muito alto, a ponto de justificar
sua substituição por um hardware mais novo e mais barato?
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 11
Prentice Hall
Leis da evolução do software





Mudança contínua: conduz a menos utilidade
Aumento da complexidade: estrutura se
deteriora
Lei fundamental de evolução do programa:
programa obedece estatisticamente a tendências
e invariâncias determináveis
Conservação da estabilidade organizacional:
taxa de atividade global é estatisticamente
invariante
Conservação da familiaridade: conteúdo
publicado é estatisticamente invariante
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 11
Prentice Hall
Tipos de manutenção




Corretiva: mantém o controle sobre as funções do
dia-a-dia do sistema
Adaptativa: mantém o controle sobre as
modificações do sistema
Perfectiva: aperfeiçoa as funções aceitáveis já
existentes
Preventiva: toma medidas preventivas para que o
desempenho do sistema não diminua para níveis
inaceitáveis
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 11
Prentice Hall
Responsabilidades da equipe de
manutenção






Entender o sistema
Localizar informações na
documentação do sistema
Manter a documentação sistema
atualizada
Ampliar as funções existentes, a
fim de incluir novos requisitos ou
requisitos modificados
Adicionar novas funções ao
sistema
Descobrir a fonte das falhas ou
problemas do sistema
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
• Localizar e corrigir defeitos
• Responder a questões sobre
como o sistema funciona
• Reestruturar o projeto e os
componentes do código
• Reescrever o projeto e os
componentes do código
• Excluir o projeto e os
componentes do código que não
são mais úteis
• Gerenciar as mudanças que são
feitas no sistema
Capítulo 11
Prentice Hall
Problemas de manutenção

Problemas com o pessoal




Entendimento limitado
Prioridades de gerenciamento
Ânimo
Problemas técnicos


Recursos e paradigmas
Dificuldade para a realização de testes
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 11
Prentice Hall
Fatores que afetam o esforço da
manutenção










Tipo de aplicação
Novidade do sistema
Rotatividade e disponibilidade do pessoal de manutenção
Duração da vida útil do sistema
Dependência de um ambiente que se modifica
Característica de hardware
Qualidade do projeto
Qualidade do código
Qualidade da documentação
Qualidade dos testes
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 11
Prentice Hall
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 11
Prentice Hall
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 11
Prentice Hall
Medindo as características da manutenção

Registros necessários:







momento em que o problema
é relatado
qualquer perda de tempo
devido à demora por parte do
setor administrativo
tempo exigido para analisar o
problema
tempo requerido para
especificar quais mudanças
devem ser feitas
tempo necessário para fazer
as mudanças
tempo necessário para testar
as mudanças
tempo necessário para
documentar as mudanças
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger

Registros desejáveis:





Capítulo 11
razão do tempo total de
implementação da mudança
pelo número total de mudanças
implementadas
número de problemas não
resolvidos
tempo gasto em problemas não
resolvidos
porcentagem de mudanças que
introduzem novos defeitos
número de componentes
modificados para implementar
uma mudança
Prentice Hall
Exemplo para calcular um número ciclomático
Scor eboar d: : dr awscor e( i nt n)
{
whi l e( numdi gi t s- - > 0} {
scor e[ numdi gi t s] - >er ase( ) ;
}
/ / bui l d new scor e i n l oop, each t i me updat e posi t i on
numdi gi t s = 0;
/ / i f scor e i s 0, j ust di spl ay “ 0”
i f ( n == 0) {
del et e scor e[ numdi gi t s] ;
scor e[ numdi gi t s] = new Di spl ayabl e( di gi t s[ 0] ) ;
scor e[ numdi gi t s] - >move( Poi nt ( ( 700- numdi gi t s* 18) , 40) ) ;
scor e[ numdi gi t s] - >dr aw( ) ;
numdi gi t s++;
}
whi l e ( n) {
i nt r em = n % 10;
del et e scor e[ numdi gi t s] ;
scor e[ numdi gi t s] = new Di spl ayabl e( di gi t s[ r em] ) ;
scor e[ numdi gi t s] - >move( Poi nt ( 700- numdi gi t s* 18) , 40) ) ;
scor e[ numdi gi t s] - >dr aw( ) ;
n / = 10;
numdi gi t s++;
}
}
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 11
Prentice Hall
Índice de nebulosidade
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 11
Prentice Hall
Grupo de controle de configuração







Um problema é identificado por um usuário, cliente ou desenvolvedor, que
registra os ‘sintomas’ em um formulário formal de controle de alteração
A mudança proposta é relatada ao grupo de controle de configuração
O grupo se reúne para discutir o problema: determina a natureza da
mudança, quem pagará pelos recursos necessários
O grupo discute a provável fonte do problema, o escopo das alterações, o
tempo exigido; atribui um nível de prioridade/gravidade, e um analisa é
encarregado de fazer as alterações
Com uma cópia de teste, o analista faz implementa e realiza os testes para
garantir que as alterações funcionam
O analista trabalha com o responsável pela biblioteca de programas para
controlar a instalação das mudanças no sistema em operação
O analista arquiva um relatório das alterações
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 11
Prentice Hall
Controle de alterações









Sincronização: Quando a alteração foi feita?
Identificação: Quem fez a alteração?
Nomeação: Quais componentes do sistema foram
alterados?
Autenticação: A alteração foi feita corretamente?
Autorização: Quem autorizou que a alteração fosse feita?
Acompanhamento: Quem foi notificado sobre a
alteração?
Cancelamento: Quem pode cancelar o pedido de
alteração?
Delegação: Quem é responsável pela alteração?
Avaliação: Qual é a prioridade da alteração?
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 11
Prentice Hall
Análise de impacto



Produto de trabalho: qualquer artefato do
desenvolvimento cuja alteração é
significativa
Rastreabilidade horizontal: relação dos
componentes entre conjuntos de produtos de
trabalho
Rastreabilidade vertical: relação entre as
partes do produto de trabalho
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 11
Prentice Hall
Ferramentas automatizadas para
manutenção







Editores de texto
Comparadores de arquivos
Compiladores e linkers
Ferramentas de depuração
Geradores de referência cruzada
Analisadores estáticos de código
Repositórios de gerência de configuração
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 11
Prentice Hall
Rejuvenescimento de software




Redocumentação: análise estática do códigofonte, produzindo informações adicionais
Reestruturação: modifica o código,
transformando-o de mal estruturado em bem
estruturado
Engenharia reversa: recria as informações sobre
o projeto e a especificação, a partir do código
Reengenharia: aplicação da engenharia reversa
em um sistema já existente e depois aplica-se a
‘engenharia direta’ para fazer as mudanças na
especificação e no projeto que completam o
modelo lógico
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 11
Prentice Hall
Redocumentação

A saída pode incluir:









relações das chamadas dos componentes
hierarquias de classe
tabelas de interfaces de dados
informações dos dicionários de dados
tabelas ou diagramas de fluxo de dados
tabelas ou diagramas de fluxo de controle
pseudocódigo
caminhos de testes
referências cruzadas dos componentes e das variáveis
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 11
Prentice Hall
Download

cap11