Atenção: esse artigo tem um vídeo complementar. Clique e assista!

De que se trata o artigo:

Esse artigo apresenta algumas definições de manutenção de software, os tipos existentes, os impactos de sua aplicação e como é utilizada durante o desenvolvimento de um sistema.


Para que serve:

A manutenção de software é um processo de melhoria de um software já desenvolvido, ou que está sendo desenvolvido. Com a manutenção também é possível corrigir erros que são encontrados durante a utilização do sistema pelo usuário ou por testes realizados pelos desenvolvedores.


Em que situação o tema é útil:

A manutenção de software visa prever e corrigir quaisquer problemas que possam ocorrer, ou que venham a ocorrer, durante a utilização de um produto de software.

Autores: Vinícius Rodrigues de Souza, Ricardo Cunha Vale e Marco Antônio Pereira Araújo

Manutenção significa um conjunto de modificações realizadas no software que pode ocorrer durante o desenvolvimento ou após a sua entrega, ou seja, durante a sua utilização. As modificações podem ser de várias formas e para atingir objetivos distintos. São utilizadas para a correção de erros, atualização do sistema, aperfeiçoamento do software ou para sua adaptação a uma nova realidade.

A manutenção de software, até pouco tempo, sempre foi considerada na etapa de desenvolvimento algo secundário, de pouco valor. Era considerada por muitos como uma fonte de gastos que comprometiam a criação de software.

Durante o desenvolvimento, os sistemas eram elaborados sem a preocupação de que um dia eles precisariam sofrer alguma alteração para se adequarem às novas necessidades do usuário. Quando isso ocorria, a manutenção era feita de forma precária, pois não existia um gerenciamento adequado para que fossem feitas as mudanças. Com isso, tais mudanças poderiam gerar novos erros que aumentariam ainda mais o tempo necessário para que fossem feitas as correções desejadas pelo usuário.

Atualmente, um problema chave para as organizações é implementar e gerenciar a manutenção em seus sistemas legados. Sistemas legados são sistemas imprescindíveis para os negócios de uma organização. Em geral, possuem documentação precária ou inexistente e passaram, ao longo dos anos, por manutenções realizadas por diversos profissionais, sem seguir boas práticas de engenharia de software.

Nesse artigo, nesse artigo serão apresentados conceitos básicos de manutenção e evolução de software, incluindo definições e processos realizados durante a manutenção de software, bem como os tipos de manutenção e exemplos de refatoração que podem ser realizados durante este processo.

Evolução de Software

Os sistemas geralmente refletem situações do mundo real e, com isso, há uma necessidade que o software mude acompanhando as mudanças de requisitos impostos pelo ambiente em que está inserido. Se o sistema não sofre essas mudanças, pode ficar obsoleto e cair em desuso.

O envelhecimento de um software é um processo inevitável, mas é possível de ser compreendido e suas causas previstas, para que sejam minimizados os impactos dos danos causados por esse envelhecimento. Ele pode se dividir em duas vertentes: quando as mudanças necessárias não são implementadas e o sistema não é adequado às novas regras de negócio utilizadas, e a segunda é quando as adaptações são feitas de maneira desordenada e acarretam problemas para o sistema como um todo, gerando novos erros e diminuindo sua manutenibilidade.

As desvantagens causadas pelo envelhecimento de um software são a perda de desempenho devido a modificações não adequadas na sua estrutura interna, geração de novos erros devido a alterações indevidas no código e perda de usuários devido à falta de meios para concorrer com versões mais recentes de sistemas semelhantes, como por exemplo, a utilização em sistemas operacionais diferentes.

Através dessas características, qualquer software que não tenha sido projetado para atuar baseado num tempo de vida muito curto, pode vir a sofrer os efeitos nocivos do envelhecimento. Apesar de inevitável, estes efeitos podem ser retardados ou consideravelmente diminuídos, desde que sejam seguidos alguns cuidados no desenvolvimento e evolução do software em questão. Dentre alguns cuidados está a manutenção de software.

De acordo com Sommerville, a evolução de software compreende as mudanças que irão ocorrer em um programa a fim de deixá-lo completo e, se possível, livre de erros.

Para que essa evolução aconteça é necessário que sejam considerados diversos fatores que servirão de base para concluir se o sistema atual deve sofrer uma evolução, ou deve ser abandonado para que um novo sistema possa ser construído com base nos requisitos do software atual.

Os fatores que devem ser levados em conta são: custo envolvido no processo, a confiabilidade do software após a manutenção, a capacidade que possuirá de se adaptar a mudanças futuras, seu desempenho, limitações de suas atuais funções, e ainda as opções existentes no mercado que atendam ao mesmo problema de maneira mais completa, rápida e barata. Se o software funciona, é comum que não seja criado um novo sistema, mas apenas ajustes necessários que são desejados por quem o utiliza, como quando ocorrem mudanças nas regras de negócio.

...
Quer ler esse conteúdo completo? Tenha acesso completo