| | Início | Empresa | Serviços | Cursos | Máquinas Virtuais - PronusBox | Artigos & Tutoriais | Blog | Calendário de Cursos | Clientes | Fale Conosco | |
Veja nossos cursos relacionados à Gerência de Configuração
Autor: André Felipe Dias. Última atualização em 20/09/2011
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) é um conjunto de atividades de apoio que permite a absorção controlada das mudanças inerentes ao desenvolvimento de software, mantendo a estabilidade na evolução do projeto.
A GCS responde às seguintes questões básicas, que depois são desmembradas em outras questões mais específicas:
|
Para entender melhor a forma como a GCS funciona, são necessárias algumas definições. A primeira delas é a respeito do que é uma configuração:
Configuração de um sistema é uma coleção de versões específicas de itens de configuração (hardware, firmware ou software) que são combinados de acordo com procedimentos específicos de construção para servir a uma finalidade particular.
Então, o que seria exatamente "gerenciar" a configuração?
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.
Em outras palavras, a configuração é o estado do conjunto de itens que formam o sistema em um determinado momento; e a GCS é o controle da evolução dessas configurações durante o ciclo de vida do projeto.
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.
Segundo o CMMi, as atividades relacionadas à GCS são:
Baseline é uma configuração formalmente aprovada para servir de referência para o desenvolvimento posterior do sistema.
Do ponto de vista das ferramentas existentes, a GCS é formada pelas seguintes atividades:

É a espinha dorsal de toda a gerência de configuração, apoiando as atividades de controle de mudança e integração contínua. Fornece os seguintes serviços:
Para uma visão mais detalhada do assunto, consulte o tutorial sobre controle de versão.
Fornece um serviço complementar ao oferecido pelo sistema de controle de versão. O foco desse tipo de ferramenta é nos 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.
Para as necessidades da GCS, bastaria um controle de construção de software que cuidasse da identificação, empacotamento e preparação de uma baseline 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, entretanto, vai um pouco mais além. 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.
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, são combinadas 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 construção.
Existem diversas ferramentas disponíveis para apoiar atividades de GCS. De acordo com a classificação utilizada neste artigo, alguns exemplos são:
| Tipo de Ferramenta | Open Source | Comercial |
|---|---|---|
| Controle de Versão |
|
|
| Controle de Mudança | ||
| Integração Contínua |
A quantidade de funcionalidades, a maturidade, a documentação e o suporte disponíveis, e a popularidade de cada ferramenta variam bastante. Embora 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.
A análise comparativa das diversas ferramentas listadas está fora do escopo deste artigo. Mas para não ficar no ar a questão de qual uma boa alternativa, deixamos aqui a nossa recomendação:
| Escolha da Pronus | ||
|---|---|---|
| Controle de Versão | Subversion é uma ferramenta open source de controle de versão centralizado que foi construída para substituir o CVS, mas seguindo o mesmo modelo de funcionamento. O Mercurial representa a mais nova geração de ferramentas de controle de versão distribuído e possui uma interface de comandos que é uma evolução dos comandos do Subversion. |
|
| Controle de Mudança | Trac é uma ferramenta open source de controle de mudanças em projetos de software além de oferecer serviços adicionais de integração com o Subversion, documentação e acompanhamento do projeto, e relatórios informativos. Veja o artigo sobre o Trac para mais informações sobre a ferramenta. |
|
| Integração Contínua | Jenkins|Jenkins é uma ferramenta para integração contínua que gerencia os passos de construção, teste automatizados. | |
As ferramentas sugeridas formam uma solução integrada que atende plenamente às necessidades GCS.
A preocupação com a melhoria do processo de desenvolvimento vem sendo impulsionada por exigências do mercado por mais qualidade e da produtividade do desenvolvimento. Muitas empresas têm revisto seus processos e procurado se capacitar no mercado cada vez mais competitivo.
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.
| A Pronus oferece serviços de consultoria e treinamento em Gerência de Configuração e em ferramentas open source de apoio. Consulte o calendário das próximas turmas ou fale conosco para saber sobre a realização de turmas fechadas para sua empresa. |