Ferramentas
Existe no mercado uma
grande variedade de opções, desde ferramentas
muito simples controladores de versões até as
mais sofisticadas com capacidades para builds, emissão
de relatórios, etc.
Critérios
para avaliar uma ferramenta de Gerência de Configuração
Uma ferramenta de GCS
pode ser avaliada segundo muitos critérios. Cabe ao
avaliador adotar aqueles critérios que julgar mais
adequados a uma situação em particular e a cada
critério escolhido associar um peso relativo. Na literatura
encontram-se diversas abordagens e categorização
para estes critérios, mas que, de forma geral, são
equivalentes. Nos subitens seguintes é apresentado
um conjunto resumido de critérios baseado na publicação
[BUR 96].
Suporte a equipe de desenvolvimento
Análise das funcionalidades das ferramentas aplicadas
ao desenvolvimento de projetos de uma equipe de programadores
conectados a uma rede local. Deve ser observado o processo
de gerenciamento das distintas áreas de trabalho de
cada desenvolvedor, o processo de desenvolvimento paralelo,
bem como a visualização gráfica do controle
de versões aplicada a projetos que possuem várias
ramificações; isto é, diferentes caminhos
variantes de desenvolvimento.
Suporte a desenvolvimento remoto
Análise das funcionalidades aplicadas a projetos com
diversos sites de acesso remoto, realidade que se faz presente
no trabalho de equipes que se distribuem em diferentes áreas
geográficas, em que cada membro realiza uma atividade,
e a integração do trabalho do grupo é
feita continuamente.
Suporte a configurações
Observa-se a capacidade da ferramenta ligada a identificação
de distintas versões de arquivos que compõem
uma distribuição e recuperação
da mesma. É analisado o impacto de uma dada alteração,
através da estrutura hierárquica do projeto
que o software deve permitir exibir; além dos aspectos
de rastreabilidade, que tornam possível o estabelecimento
de relações entre distintos ICs, e seus arquivos
de histórico de modificações.
Suporte a gerência de mudanças
A habilidade de prover o rastreamento de modificações,
gerando relatórios de acompanhamento, de forma a permitir
uma visão precisa, em tempo real, do estado das modificações.
Suporte de “build” e de distribuição
de produto
Análise das funcionalidades ligadas ao “build”,
à geração de uma determinada versão
de um produto e à recuperação de uma
distribuição anterior e modificação
da mesma.
Suporte de processo
Análise da capacidade de manter um efetivo controle
do desenvolvimento, dando suporte à aplicação
de políticas, implementando o conceito de ciclo de
vida, estabelecendo autoridades de acesso a funções
de acordo com os papéis dos diversos integrantes do
projeto e registrando os históricos e os estados dos
diversos objetos envolvidos no desenvolvimento sob controle
da ferramenta.
Usabilidade
Deve ser observado se a documentação se mostra
acessível e prática, além da existência
de um eficiente sistema de auxílio on-line, o nível
de integração da ferramenta ao sistema operacional
em uso e a facilidade de acesso às informações
controladas pela mesma.
Facilidade de “set-up”
Análise da facilidade de, a partir da sua aquisição,
colocar a ferramenta em operação, englobando:
a instalação, a parametrização
da ferramenta, a capacitação de pessoal e a
integração no processo de GCS previamente definido.
Personalização
Avaliação da capacidade de personalização
da ferramenta, de modo a atender as necessidades específicas
de um usuário no que diz respeito a aspectos de modelos
de formulários e relatórios, políticas
específicas de desenvolvimento, dentre outros.
Classificação
das ferramentas de GCS
Susan Dart (Dart, S.;
“Not All Tools Are Equal” - http://www.spgnet.com/ADT/oct96/fe1002.htm
1996) de uma forma simplificada, classifica as ferramentas
de Gerência de Configuração em grupos
de acordo com as suas características funcionais, de
modo a auxiliar no momento da aquisição de uma
destas ferramentas. A figura abaixo ilustra a classificação.
Ferramentas de
controle de versões
A ferramenta de controle de versões é uma ferramenta
fundamental para permitir o desenvolvimento e manutenção
de software em um ambiente cooperativo, onde várias
pessoas poderão alterar o mesmo código, eventualmente
no mesmo momento.
Ferramentas orientadas ao desenvolvedor
Nesta categoria encontram-se ferramentas que, além
de suportarem controle de versões, oferecem suporte
ao trabalho em equipe, facilitando principalmente desenvolvimento
concorrente, isto é, desenvolvedores trabalhando ao
mesmo tempo sobre o mesmo conjunto de arquivos. Têm
como característica principal integrarem-se no ambiente
de desenvolvimento.
Ferramentas orientadas a processo
Ferramentas que suportam controle de versões e parte
das funcionalidades das ferramentas orientadas ao desenvolvedor,
mas cujo ponto forte é a automatização
do gerenciamento do ciclo de vida dos objetos envolvidos no
desenvolvimento. De maneira geral, as ferramentas desta categoria
também fornecem uma abordagem integrada à gerência
de mudanças e ao rastreamento de correção
de defeitos.
Principais
Ferramentas
Software de Controle
de Versões
Uma das ferramentas mais utilizadas no mundo dos softwares
livre e open source e que já foi utilizada em projetos
de grande porte, tendo sido aprovada pelos usuários
é o CVS – Concurrent Versions System.
Essa solução conta com o uso de um servidor
CVS e de versões cliente que são instaladas
nas máquinas dos usuários. Existem versões
clientes para vários sistemas operacionais, como o
Windows e o Linux.
Qualquer tipo de arquivo pode ser controlado pelo CVS.
Ela dispõe das funcionalidades básicas de qualquer
ferramenta de controle de versões, como o check-in,
check-out, lock, unlock, edit e merge, entre outras.
Outras ferramentas de controle de versões é
o WinCVS e o Microsoft Source Safe – esta última,
comercial.
Software de Controle de Mudanças
Uma das principais soluções para o controle
de mudanças é o Bugzilla, um software free que
controla basicamente bugs (erros encontrados em softwares).
No entanto, ele pode ser utilizado para controlar também
as mudanças ou novas solicitações de
software demandadas pelos usuários.
Esta ferramenta é poderosa e estável, em uso
em centenas de projetos e empresas no mundo todo: NASA, AOL/TW,
Redhat, Conectiva, CNet, Mozilla, Gnome.
O Bugzila é software livre. Pode ser customizado para
sua necessidade. Este software está em contínuo
desenvolvimento, e funcionalidade nova e interessante é
adicionada diariamente.
Tem suporte excelente via email, news, e online via IRC (#mozwebtools).
Implantação das Ferramentas e Fluxo de Trabalho
As ferramentas podem ser modificadas em virtude de necessidades
específicas, assim como podem ser criados scripts para
a automação de tarefas como o cumprimento de
políticas (ex.: Checar se o desenvolvedor informa o
número da requisição de mudança
em um check-in, scripts de auditoria e geração
automática de release notes). A ferramenta ANT é
muito adotada para a geração destes scripts
e também é open source. O ANT é multiplataforma
e pode ser utilizado também para a geração
de código.
Abaixo são demonstrados dois fluxos de trabalho (Workflow)
utilizando o Bugzilla, CVS e ANT:
Fluxo 1
Fluxo 2
Gerência
de Configuração ® - Atualizado em 06/09/2004
|