Mudanças durante o desenvolvimento são inevitáveis; o entendimento dos usuários sobre suas necessidades muda, o ambiente no qual o sistema vai operar muda, a legislação muda, os requisitos mudam. Com tantas mudanças assim, é necessária alguma forma de gerenciamento para que o desenvolvimento não fique caótico.
Gerência de configuração de software (GCS) é a arte de identificar, organizar e controlar modificações no software que está sendo construído por uma equipe de desenvolvimento. O objetivo é maximizar a produção, minimizando os erros. A gerência de configuração de software é uma das bases de engenharia de software “Moderna”. (Molirani, 2008)
A GCS responde às seguintes questões básicas, que depois são desmembradas em outras questões mais específicas:
- Quais mudanças aconteceram no sistema?
- Por que essas mudanças aconteceram?
- O sistema continua íntegro mesmo depois das mudanças?
A GCS é extremamente útil e importante. Por isso, faz parte de modelos importantes de maturidade de processo de desenvolvimento tais como o CMMi, MPS-Br e o SPICE.
Do ponto de vista das ferramentas existentes, a GCS é formada pelas seguintes atividades:
Controle de versão – O software é frequetemente modificado de maneira que envolve uma sucessão de estados temporários chamadosde versões. O GCS facilita o controle de versões através de repositórios e library. Controle de versão provê uma rastreabilidade ou história das mudanças de cada software, incluindo quem fez o que, por que e quando.
Controle de mudanças – Controle de mudanças é um processo no qual a modificação do componente do software é proposta, avaliada, aprovada ou rejeitada, agendada e rastreada. Os principais elementos do controle de mudanças são o próprio processo, o processo de relatório de status e o processo de auditoria.
Integração contínua - O objetivo é garantir que as mudanças no projeto são construídas, testadas e relatadas tão logo quanto possível depois de serem introduzidas.
Alguns exemplos de ferramentas open Source para apoiar atividades de GSC:
Controle de versão: Git, Subversion, CVS, Mercurial.
Controle de mudanças: Trac, Mantis, Bugzilla, Redmine.
Integração contínua: Bitten, Ant, Maven, Gump.
Concluindo:
A Gerência de Configuração é essencial para manter o desenvolvimento de software controlável. Contudo, ainda é grande o número de empresas que ainda não utilizam nenhum tipo de GCS ou que utilizam apenas o controle de versão nos seus projetos. As causas para essa situação são o desconhecimento da amplitude e importância da GCS e o desconhecimento das ferramentas de apoio existentes.
Gerência de Configuração é uma atividade que deve ser usada em todos os projetos de desenvolvimento de software. A existência de várias opções de ferramentas open source torna a implantação da GCS mais fácil principalmente para micro e pequenas empresas. Porém, é necessário algum esforço para a adequação ao processo e treinamento específicos.
Referências:
MOLINARI, Leonardo. Teste de Software: Produzindo Sistema Melhores e Mais Confiávies. 4. Ed. – São Paulo: Érica, 2008.
Por Luana Menezes