Manutenção de Software
Manutenção de software é a modificação de um produto de software após a entrega para corrigir falhas, adaptá-lo a um ambiente em mudança e melhorar sua função, desempenho ou manutenibilidade.
Definition
Manutenção de software é a totalidade das atividades necessárias para fornecer suporte econômico ao software após a entrega, incluindo a correção de defeitos, a adaptação a novos ambientes e o aprimoramento de capacidades, preservando a integridade.
Scope
Este tópico abrange as quatro categorias de manutenção (corretiva, adaptativa, perfectiva, preventiva); o processo de manutenção desde a solicitação de mudança até a análise de impacto, modificação, teste e lançamento; a compreensão do programa e os desafios de modificar código desconhecido; a manutenibilidade como um atributo de qualidade; e os padrões e métricas que regem o trabalho de manutenção.
Core questions
- Como as mudanças de manutenção são classificadas e priorizadas?
- Quais etapas do processo levam uma solicitação de mudança a uma modificação lançada?
- Como o impacto de uma mudança proposta é analisado antes de ser feita?
- O que torna o software manutenível e como a manutenibilidade é medida?
Key theories
- Categorias de manutenção
- A manutenção corretiva corrige falhas, a manutenção adaptativa acomoda mudanças ambientais, a manutenção perfectiva melhora ou estende a função e o desempenho, e a manutenção preventiva melhora a manutenibilidade futura; as categorias não corretivas dominam o esforço.
- Análise de impacto
- Antes que uma mudança seja implementada, a análise de impacto identifica os componentes, interfaces e testes afetados, usando informações de dependência e rastreabilidade para estimar o esforço e os efeitos em cascata e para limitar o risco.
Clinical relevance
Como a manutenção domina o custo total do software e a maior parte dela é adaptativa e perfectiva, em vez de corretiva, projetar para a manutenibilidade e seguir um processo de manutenção disciplinado governa diretamente a economia de longo prazo de um sistema.
Evidence & guidelines
A ISO/IEC 14764 define o processo de manutenção e suas atividades, e a ISO/IEC 25010 especifica subcaracterísticas de manutenibilidade, como modularidade, modificabilidade e testabilidade.
History
Pesquisas nas décadas de 1970 e 1980 revelaram que a manutenção consome a maior parte dos orçamentos de software e que o trabalho adaptativo e perfectivo supera a correção corretiva; isso reformulou a manutenção de uma reflexão tardia para uma fase central e governada por processos, posteriormente padronizada na ISO/IEC 14764.
Key figures
- Meir M. Lehman
- Bennet Lientz
- Ian Sommerville
Related topics
Seminal works
- iso14764
- swebok2014
- sommerville2015
Frequently asked questions
- Que tipo de manutenção consome mais esforço?
- Estudos consistentemente mostram que a manutenção adaptativa e perfectiva — adaptar o software a novos ambientes e aprimorá-lo — juntas respondem pela maior parte do esforço de manutenção, bem acima da correção de bugs.
- Por que é tão difícil mudar código antigo?
- Os mantenedores devem primeiro compreender o código que muitas vezes não escreveram, onde a lógica original e a documentação podem estar ausentes; entender o sistema existente e os efeitos em cascata de uma mudança frequentemente custa mais do que fazer a própria mudança.