Manutenção de Software: Custos, Problemas e Manutenibilidade
Custo de Manutenção de Software
Os custos de manutenção de software têm aumentado constantemente durante os últimos 20 anos. Se nada for feito para melhorar nossa abordagem à manutenção, muitas empresas gastarão 80% de seus orçamentos em manutenção. Os custos de manutenção em dólar são a nossa maior preocupação, mas outros custos menos tangíveis podem ser uma causa de preocupação ainda maior.
Custos Intangíveis da Manutenção
- Oportunidade de desenvolvimento de software que é postergada ou perdida, pois recursos são destinados à manutenção;
- Insatisfação dos clientes quando solicitações não podem ser encaminhadas oportunamente;
- Redução da qualidade global quando mudanças introduzem erros latentes;
- Problemas causados durante os esforços de desenvolvimento.
Redução da Produtividade
O custo final da manutenção de software é uma drástica diminuição da produtividade que ocorre quando a manutenção de programas antigos é iniciada.
Problemas Clássicos na Manutenção
- Frequentemente é difícil ou impossível rastrear a evolução do software;
- Frequentemente é difícil ou impossível rastrear o processo através do qual o software foi criado;
- Excepcionalmente difícil entender o programa de outra pessoa.
Manutenibilidade
A facilidade com que um software pode ser entendido, corrigido, adaptado e/ou aumentado. É a meta primordial que orienta os passos de um processo de engenharia de software.
Manutenibilidade: Fatores Controladores
- Disponibilidade de pessoal de software qualificado;
- Estrutura de sistema compreensível;
- Facilidade de manuseio do sistema;
- Uso de linguagens de programação padronizadas;
- Uso de sistemas operacionais padronizados.
Manutenibilidade: Medidas Quantitativas
- Tempo de reconhecimento do problema;
- Tempo de retardo administrativo;
- Tempo de coleta de ferramentas de manutenção;
- Tempo de análise do problema;
- Tempo de especificação de mudanças;
- Tempo de correção (ou modificação) ativa;
- Tempo de testes locais;
- Tempo de testes globais;
- Tempo de revisão da manutenção;
- Tempo de recuperação total.
Manutenibilidade: Revisões no Processo
Em cada nível do processo de revisão de engenharia de software, a manutenibilidade deve ser considerada.
Durante a Revisão de Requisitos:
- Anotar as áreas de futuros acréscimos e potencial revisão;
- Questões de portabilidade do software são discutidas;
- Interfaces do sistema são consideradas;
- Projeto dos dados, projeto arquitetural, processo procedimental e projeto de interfaces são avaliados.