O Papel Evolutivo do Software - Engenharia de Software 28

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.

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."

[...] continue lendo...
Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados