Tipos de Manutenção - EDU0007/engenharia_software GitHub Wiki
Tipos de Manutenção
Corretiva
Correção de erros no software que não foram identificados na fase teste, caso exista uma fase teste no software, em determinadas situações esses erros podem não atrapalhar a execução do software e não acarretar maiores preocupações, já que este pode ser solucionado por meio de simples reparos, no entanto pode haver casos mais complexos que necessite de um reparo temporário, para apagar o incêndio com o objetivo de o software voltar a executar suas funções básicas e que haja tempo a seus mantenedores para conseguir solucionar o erro em sua totalidade e assim disponibilizá-lo em uma nova versão.
- Modificações no software para corrigir defeitos
- Ex: defeitos em requisitos, projeto, código…
- Devido a sua natureza “ad hoc”, pode gerar outros problemas como aumento de complexidade e outros efeitos cascatas.
Adaptativa
Adaptação no software para acomodar as constantes mudanças ocorridas em seu ambiente externo, essas mudanças podem ser em regras de negócio, constituição e leis que tenha consequências a funções do sistema, assim como a criação de uma nova plataforma de hardware, podendo ser uma nova geração de processadores, ou periféricos na qual o software consiga aproveitar seus recursos, além de uma nova versão de um sistema operacional que possa não ser totalmente compatível ao software.
- Adaptações para manter o software usável devido às alterações no ambiente externo.
- Ocorre pois ambiente está em constante evolução, mesmo quando defeitos não existem.
- Ex: alteração no SO, BD, servidor, compilador, bibliotecas, frameworks, hardware…
- Se SO é atualizado, mudanças podem ser realizadas no software para acomodar o novo SO.
Perfectiva (ou Evolutiva)
Modificações não previstas no documento de requisitos original do software. Tem por intuito melhorar a qualidade do software, acrescentando novas funcionalidades, melhorando seu desempenho, ou até mesmo modificando seu código-fonte buscando obter melhor legibilidade ou adequação a alguns paradigmas de programação.
- Modificações para fornecer melhorias aos usuários.
- Expande os requisitos do sistema.
- Quando o software se torna útil, os usuários solicitam melhorias além do escopo inicial.
- Ex: novas funcionalidades.
Preventiva
Alterações no software buscando melhorar a confiabilidade ou oferecer uma estrutura melhor para futuras manutenções. A manutenção preventiva parte de uma observação reconhecida pelos mantenedores sobre o que poderá gerar algum tipo de erro no software, desta forma tal erro será tratado antes que um problema venha a ocorrer.
- Modificações no software para prevenir potenciais problemas no futuro.
- Lida com o deterioramento de estruturas, previne falhas e melhora a manutenibilidade.
- Torna os programas mais fáceis de entender e facilita trabalhos de manutenção futuros.
- Ex: reestruturação de código, otimização de código, refatoração, atualização de documentação…
Manutenibilidade
Em engenharia de software, manutenibilidade é um aspecto da qualidade de software que se refere à facilidade de um software de ser modificado a fim de corrigir defeitos, adequar-se a novos requisitos, aumentar a suportabilidade ou se adequar a um ambiente novo.