Esse artigo faz parte da revista Engenharia de Software 20 edição especial. Clique aqui para ler todos os artigos desta edição



Projeto

Introdução ao Mantis

Gestão da Manutenção e Configuração de Software através do controle de mudanças

 

De que trata o artigo: Este artigo aborda a importância da manutenção e gestão da configuração de software, apresentando os conceitos básicos sobre estas áreas de estudo dentro da engenharia de software. Destaca também a necessidade do uso de aplicações de software para gestão da configuração de software.

 

Para que serve: O artigo demonstra como as mudanças em software podem ser  identificadas, controladas e visualizadas com o uso de aplicações como o Mantis. O Mantis é uma aplicação gratuita para ser executada no ambiente Web. Tal ferramenta implementa os conceitos da gestão de configuração de software, fornecendo diversos recursos, como registro e histórico das mudanças durante a manutenção de software.

 

Em que situação o tema é útil: Identificação, controle e visualização de mudanças no contexto da manutenção e configuração de software, utilizando ferramentas de apoio para gestão destas atividades.

 

A manutenção de software é a fase do ciclo de vida de desenvolvimento durante a qual ocorrem modificações no código e em qualquer outro artefato de uma aplicação de software, a fim de mantê-lo disponível e em constante evolução. A manutenção é executada para corrigir falhas na codificação, melhorar o desempenho do software, ou adequá-lo aos novos requisitos conforme as necessidades dos seus usuários (DIAS e ANQUETIL, 2005).

Desde o início da década de 90, a manutenção de software já era considerada como uma atividade consumidora de grande parte dos recursos financeiros, humanos e tecnológicos, dentro das organizações produtoras de software. A literatura mais atual sobre Engenharia de Software (ES) apresenta estudos que esta fase representa cerca de 80% do orçamento total do ciclo de vida de um software. Portanto, é considerada uma atividade economicamente estratégica durante a vida de qualquer software (PRESSMAN, 2006).

Além desses dados, Dias e Anquetil (2005) enfatizam que existe um preconceito em relação à atividade de manutenção de software, pois não deve ser simplesmente considerada como uma atividade de correção do código de uma aplicação. Pesquisas mostram que apenas 20% dos projetos de manutenção são de correção de erros, e que a grande maioria do trabalho consiste em acrescentar novas funcionalidades a um sistema existente, ou adaptá-lo a mudanças externas. Pode-se considerar, diante destes percentuais, que a manutenção de software é uma atividade imprescindível, e sem a qual os sistemas existentes rapidamente se tornariam antiquados em relação ao mundo real. Deste modo, a manutenção de software permite que o software evolua, para continuar representando fielmente a realidade que eles automatizam.

Pressman (2006) discute que um dos grandes problemas na manutenção de software é a alta rotatividade da equipe de desenvolvimento. Ou seja, é provável que a equipe ou pessoa que fez o trabalho original não seja mais um desenvolvedor naquele projeto. Ou várias gerações subsequentes de profissionais modificaram a aplicação e não fazem mais parte da equipe. Diante destes problemas, é importante destacar que modificar um software é inevitável, sendo necessário desenvolver mecanismos para avaliar, controlar, registrar e rastrear tais modificações.

Outros problemas técnicos e gerenciais podem ser relacionados: a complexidade do domínio do problema; obstáculos para gerenciar e estabelecer um processo de desenvolvimento e manutenção; tecnologias ultrapassadas presente nos sistemas legados, que continuam em funcionamento e resistem às modificações ou evoluções.

Muito dos problemas citados acima são diferentes daqueles vividos por desenvolvedores que participam da implementação de novos softwares. Durante a fase de manutenção é possível encontrar documentações mal elaboradas, ou nenhuma documentação. Com isso, os desenvolvedores normalmente gastam mais tempo analisando o software antes de modificá-lo, prejudicando a entrega das demandas de modificações no mesmo.

Existem outros problemas relacionados à manutenção de software como, por exemplo, problemas culturais, ou seja, a maioria dos profissionais é formada com uma visão essencialmente focada no desenvolvimento de novas aplicações. Esta afirmação pode ser constatada pelo fato dos modelos de manutenção não serem, nem tão bem desenvolvidos, nem tão bem compreendidos como os modelos de desenvolvimento de software. Tal atividade também é reconhecida por sua importância, até mesmo como disciplina em cursos de graduação e pós-graduação, mas recebe relativamente pouca atenção na literatura técnica, onde novos processos são propostos para melhorar o desenvolvimento de um software novo. É possível citar os processos iterativos baseados no paradigma da orientação a objetos, e que muitas vezes pretendem resolver as dificuldades da manutenção tratando-a apenas como mais uma iteração. No entanto, estes novos processos não se aplicam em sistemas legados, desenvolvidos com métodos ou tecnologias ultrapassadas como, por exemplo, sistemas escritos em COBOL (JACOBSON, 1999; SOMMERVILLE, 2003; DIAS e ANQUETIL, 2005; PRESSMAN, 2006). ...

Quer ler esse conteúdo completo? Tenha acesso completo