Os Tipos de Manutenção de Software
Por: Cleiviane Costa • 7/4/2018 • Artigo • 1.427 Palavras (6 Páginas) • 766 Visualizações
Tipos de Manutenção de Software
Cleiviane Cardoso da Costa
Instituto de Informática – Universidade Federal de Goiás (UFG)
Caixa Postal 131 – 74.001-970 – Goiânia – GO – Brasil
cleiviane@inf.ufg.br
1. Introdução
No mundo atual os programas de computador (do ingles, software) vêm ganhando cada vez mais importância na vida das pessoas. Todos os dias milhares de informações são processadas por centenas de softwares e em consequência disso cresce também a exigencia para que os softwares sejam bem planejados e desenvolvidos, estejam sempre funcionando e que tenha grande escalabilidade. Buscar formas de garantir isto é um dos papéis da Engenharia de Software, disciplina que pode ser definida como responsável por aplicar princípios de engenharia com o objetivo de produzir softwares de alta qualidade ao menor custo possível.
Desde sua definição até seu desaparecimento, o software passa por diversas etapas que juntas compões o ciclo de vida do software. As etapas são definidas, planejadas e executadas de acordo com um modelo que a organização deseja adotar, como, por exemplo, os modelos cascata, espiral e iterativo. Mas em geral, as etapas consistem em: Levantamento de necessidades (requisitos), Planejamento, Projeto, Desenvolvimento, Homologação e Manutenção. O objetivo deste artigo é apresentar conceitos fundamentais das atividades de Manutenção de Software.
2. Manutenção e Manutenibilidade
A Manuteção de Software consiste em modificar o sistema depois que ele foi entregue ao cliente ou disponibilizado para uso. Estas modificações podem ser requisitadas para corrigir defeitos no código, no projeto ou na especificação que devem ser ajustados ou para acrescentar novas funcionalidades. Na maioria dos casos elas não envolvem modificações na arquitetura do software, mas devem corrigir problemas pontuais ou implementar funcionalidades buscando seguir a arquitetura que foi definida durante a fase de Projeto de Software.
As atividades da Manutenção de Software objetivam prevenir o surgimento de possíveis defeitos ou, detectá-los antes que possam causar um grande estrago e melhorar o desempenho de determinado software, corrigir falhas ou adequá-los a novos ou modificados padrões.
A necessidade e a frequência com que o software é modificado e novas versões são criadas depende diretamente do tipo de sistema. Por exemplo, um sistema que simula uma calculadora com funções fixas sofrerá menos manutenções do que um software para um sistema bancário, onde fatores externos (governo, clientes, concorrência) estão sempre requisitando alterações.
De acordo com [1], Manutenabilidade pode ser definida qualitativamente como a facilidade com que o software pode ser entendido, corrigido, melhorado e adaptado. A manutenabilidade é um grande fator de qualidade do software e é muitas vezes quantificada com base no tempo gasto para efetuar revisão do software para eliminar um erro. Esse atributo é muito significativo para um software, na medida que a etapa de manutenção pode consumir até 65% do custo total de um produto[2].
Diante disso é de extrema importância que as atividades de manutenção sejam utilizadas de forma estratégica pela organização visando diminuir os custos e impactos da modifições e o tempo gasto para tal.
3. Problemas enfrentados durante a Manutenção
É natural que o sistema sofra manutençA organização precisa ficar atenta a problemas que dificultam as atividades de manutenção de software, principalmente aqueles que estão a vários anos em produção:
- A documentação do software está desatualizada e já não reflete as funcionalidades atuais;
- Nenhum dos desenvolvedores do software está disponível para esclarecer as dúvidas;
- Forte integração do módulo que sofrerá manutenção com outros módulos;
- Alta complexidade algorítmica do módulo a ser modificado;
- Inexistência de controle de configuração do software;
- Inexistência de um ambiente para teste da manutenção;
- Alterações freqüentes no software motivadas, por exemplo, por necessidades legais.
- Dificuldade para rastrear o processo através do qual o software foi criado.
- Falta de plano de manutenção que defina e coloque em prática todos os tipos de manutenção.
4. Tipos de Manutenção de Software
Diferentes causas geram manutenções de tipos diferentes, que podem ser classificados em:
- Manutenção Corretiva:
- Manutenção Adaptativa
- Manutenção Perfectiva
- Manutenção Preventiva
4.1 Manutenção Corretiva - Identificar e Corrigir Defeitos
A Manutenção Corretiva ocorre quando há a necessidade de desenvolver e implantar soluções para defeitos (bugs) que são identificados durante o uso do software. De acordo com [5], um defeito pode ser causado por erros de design, erros de lógica ou erros de codificação:
- Erros de Design (design errors): ocorre quando, por exemplo, mudanças feitas no software estão incorretas, incompletas, houve algum problema de comunicação ou de requisito mal entendido.
- Erros de Lógica (logic errors): resultado de teste inválidos, implementação incorreta, fluxo de lógica defeituoso ou teste de dados incompleto.
- Erros de Codificação (coding errors): causados por implementação incorreta dos detalhes de codificação ou uso incorreto da lógica do código-fonte. Também podem ser causados por falha de performance.
Quando algum destes problemas é identificado, são tomadas são tomadas acções para rapidamente restaurar o funcionamento do sistema de software. Sob a pressão de gestão, pessoal de manutenção e clientes muita vezes são feitos serviços de emergência, que liberam correções conhecido como "patch" enquanto aguarda-se uma solução permanente. Como consequência, uma série de problemas podem ser originados como aumento da complexidade do programa e efeitos em cascata imprevistos.
Portanto, as atividades de manutenção corretiva devem ser adotadas como uma estratégia da organização e não apenas atividades para ser executada puramente por falta da Manutenção Preventiva. Isto por que a manutenção corretiva trás desvantagens significativas como: alto custo com mão-de-obra e retrabalho, tempo em que um serviço ficar inoperante, perda de produção, etc.
...