Hoje em dia constatamos que as mudanças ocorrem em uma velocidade espantosamente rápida, isso não é diferente no desenvolvimento de um software: a legislação, o entendimento dos usuários sobre suas necessidades, o ambiente ao qual o sistema vai operar, os requisitos, tudo muda. Devido a tantas mudanças, é necessária alguma forma de gerenciamento para que o desenvolvimento não seja catastrófico.

Durante o desenvolvimento de software, uma grande quantidade de informações é produzida, tais como: especificações, planos de projeto, arquivos de código fonte, casos e planos de testes, manuais, arquivos de dados, entre outros. Cada um desses documentos produzidos poderá ser considerado um item de configuração de software. A configuração de software é composta pelos itens de configuração produzidos durante o processo de engenharia de software, ou seja, no processo de desenvolvimento disciplinado de sistemas.

Gerencia de Configuração de Software (GCS) é um conjunto de atividades que visam apoiar a absorção controlada das mudanças inerentes ao desenvolvimento de software, mantendo a estabilidade na evolução do projeto. Ou seja, GCS é a disciplina de identificar a configuração de um sistema em diferentes pontos no tempo com a finalidade de controlar sistematicamente as mudanças realizadas, mantendo a integridade e rastreabilidade da configuração através do ciclo de vida do sistema.

A Gerencia de Configuração de Software é 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 Gerencia de Configuração é formada pelas seguintes atividades: Controle de versões,Controle de Mudanças e Integração Continua.

Controle de Versão

É o ponto de apoio toda a gerência de configuração, nas atividades de controle de mudança e integração contínua. Fornece os seguintes serviços:

  • Identificação, armazenamento e gerenciamento dos itens de configuração e de suas versões durante todo o ciclo de vida do software;
  • Histórico de todas as alterações efetuadas nos itens de configuração;
  • Criação de rótulos e ramificações no projeto;(BRANCHING)
  • Recuperação de uma configuração em um determinado momento desejado do tempo.

Controle de Mudança

É um serviço visa complementar ao controle de versão. Tendo como foco os procedimentos pelos quais as mudanças de um ou mais itens de configuração são propostas, avaliadas, aceitas e aplicadas. Oferece serviços para identificar, rastrear, analisar e controlar as mudanças nos itens de configuração.

Integração Contínua

Para as necessidades da Gerencia de Configuração de Software, bastaria um controle de construção de software que cuidasse da identificação, empacotamento e preparação de uma baseline (Baseline é uma configuração formalmente aprovada para servir de referência para o desenvolvimento posterior do sistema ) para a entrega a um cliente externo ou interno, tornando-a uma release ou uma build respectivamente.

A idéia de utilizar uma integração contínua é garantir que as mudanças no projeto são construídas, testadas e relatadas tão logo quanto possível depois de serem introduzidas. Em projetos de software, a construção do software é feita pela recuperação da configuração correta no sistema de controle de versão e a construção dos arquivos executáveis e de instalação do produto. Este processo é executado geralmente após cada mudança publicada no sistema de controle de versão ou em intervalos de tempo pré-definidos.

Geralmente, utilizam-se a combinação de duas ferramentas separadas: uma que faz a construção do software e outra que monitora alterações no controle de versão e dispara a primeira para a compilação e publicação.

Ferramentas de Apoio

Existem diversas ferramentas disponíveis para apoiar atividades de Gerencia de Configuração de Software. As ferramentas comerciais geralmente apresentem mais funcionalidades e um maior grau de integração, o custo de licenciamento muitas vezes torna o seu uso proibitivo principalmente para micro e pequenas empresas de software.

As ferramentas open source, por outro lado, possuem diversas vantagens além do custo mais baixo de aquisição tais como qualidade, segurança, independência de fornecedor, possibilidade de adequação a necessidades específicas, estabilidade e suporte técnico. Estas características tornam a escolha por ferramentas open source uma solução extremamente interessante não só para micro e pequenas empresas.

Considerações Finais

O mercado cada vez mais exige qualidade e produtividade no desenvolvimento, com isso gerando preocupação com a melhoria do processo de desenvolvimento, onde muitas empresas estão revisando seus processos e procurado se capacitar no mercado cada vez mais competitivo. Em contra partida a empresas que desconhecem a amplitude e importância da Gerencia de Configuração de Software e as ferramentas de apoio existentes. Se você ainda não faz uso, reflita sobre a utilização de Gerencia de Configuração em seus projetos de software.

Por Elisandro Marmentini
Artigo do Seminário de Engenharia de Software 2011-2
Revisão Thiarlei Macedo | Fonte Micreiros.com