De que se trata o artigo

Este artigo trata do entendimento da gerência de configuração e especialmente do controle de versão que é a prática principal envolvida. A integração do Delphi XE 2 com o gerenciador de versão Subversion é abordada e mostrada na prática.

Em que situação o tema é útil

Este tema é útil para a boa administração de um projeto, onde se tem o controle do que é alterado, por quem é alterado e qual o motivo, além de facilitar o trabalho em equipe gerenciando o código fonte que é manipulado de forma simultânea.

Gerência de configuração

Quando se trabalha em equipe, a divisão de tarefas é um trabalho comum. Essas tarefas exigem que código fonte seja alterado, consequentemente é possível que para realizar a tarefa X e Y um mesmo código precise ser modificado. O que fazer quando dois desenvolvedores precisam desse mesmo código? O que fazer quando é necessário ter duas versões distintas de um mesmo projeto sendo implementadas? Este artigo trata da gerência de configuração, um esclarecimento do que é tratado nela e como o Delphi XE 2 oferece suporte a uma de suas áreas, o controle de versão.

Muitos resumem gerência de configuração a apenas controle de versão de código. Contudo essa matéria é muito mais abrangente. Ela envolve os elementos empregados para o desenvolvimento de um software, como documentação, requisitos e o próprio código fonte. Assim como um software sofre alterações, todos os outros elementos também sofrem, essas mudanças precisam ser gerenciadas para que a equipe envolvida tenha controle sobre o que é desenvolvido e assim consiga manter o projeto estável e em evolução.

A gerência de configuração de software também é conhecida como GCS e é composta pelas seguintes atividades que poderão ser identificadas no decorrer do artigo:

• Estabelecer uma ligação entre os elementos de desenvolvimento que podem sofrer alteração;

• Definir um processo/mecanismo para controlar as versões dos elementos de desenvolvimento;

• Permitir que auditorias possam ser realizadas, para investigar o que foi modificado;

• Garantir que o processo criado é seguido por todos;

• Tornar pública aos envolvidos, as informações de um projeto.

Agora temos uma visão mais abrangente sobre a GCS, podemos dizer então que a mesma é uma atividade que pode garantir qualidade ao software durante seu desenvolvimento, isto porque através de sua aplicação controlamos de forma sistemática as mudanças solicitadas, mantendo integridade e rastreabilidade.

Composição

As atividades da GCS podem ser agrupadas em tipos: controle de versão, controle de mudanças e integração contínua.

Integração contínua: é um processo que tem por objetivo a geração automática do executável do software assim que mudanças solicitadas sejam implementadas. Essa geração envolve a execução de testes automatizados e até mesmo a construção do pacote de instalação do software. Existem ferramentas que fazem esse trabalho, elas podem ser configuradas para acessar o sistema gerenciador de versão em uso e a cada operação de check-in (confirmação de alteração de código) ou período de tempo, recuperar a versão mais atual do código fonte, compila-lo e processar o que é necessário. Para Delphi temos o FinalBuilder.

Controle de mudanças: É um serviço auxiliar e complementar ao controle de versão. Nele são administrados os requisitos, fornecendo meios para identifica-los, rastreá-los, analisar onde a mudança de requisito vai impactar, aceitar ou rejeitar esses requisitos. Existem no mercado ferramentas especializadas, como Microsoft Team Foundation Server, Trac, Bugzilla, Caliber e outras.

Controle de versão: É o pilar de sustentação de toda a gerência de configuração, apoiando as atividades de controle de mudança e integração contínua. Nele é que identificamos, armazenamos e gerenciamos os itens de configuração e de suas versões por todo o ciclo de vida do software (concepção, desenvolvimento, manutenção). Um item de configuração nada mais é algo que envolve o desenvolvimento, pode ser a descrição de um requisito, um código fonte, um banco de dados. Ele deve manter um histórico de todas as alterações efetuas nos itens de configuração, deve permitir também a criação de labels (rótulos) e branches (ramificações) do projeto e ainda permitir que um determinado momento de uma configuração possa ser recuperado.

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