Pular para o conteúdo principal

O que é Gerência de Configuração de Software?

Mudanças durante o desenvolvimento de software são inevitáveis; o ambiente no qual o sistema opera muda, o entendimento dos usuários e desenvolvedores sobre o sistema muda, os requisitos mudam. Com tantas mudanças assim, como evitar que o desenvolvimento fique caótico?

A área da Engenharia de Software que trata esse assunto é a Gerência de Configuração de Software:

Gerência de Configuração de Software (GCS) é um conjunto de atividades de apoio que permite a absorção ordenada das mudanças inerentes ao desenvolvimento de software, mantendo a integridade e a estabilidade durante a evolução do projeto.

As atividades da GCS e as respectivas ferramentas de apoio são:

  • Controlar e acompanhar mudanças (Controle de Mudança)
  • Registrar a evolução do projeto (Controle de Versão)
  • Estabelecer a integridade do sistema (Integração Contínua)

ferramentas GCS

Controle e Acompanhamento de Mudanças

Mudanças aparecem durante todo o desenvolvimento e devem ser registradas, avaliadas e agrupadas de acordo com sua prioridade. Com base nessas informações, é possível planejar melhor o escopo, prazo e o custo de cada iteração. Em seguida, à medida que o desenvolvimento acontece, pode-se acompanhar o estado da solicitação da mudança até sua implementação e até o lançamento de uma versão em produção.

Existem várias ferramentas disponíveis que executam essas ações. Alguns exemplos (em ordem alfabética) são:

Registro da Evolução do Projeto

Cada vez que uma solicitação de mudança é implementada, acontece um incremento na evolução do projeto que deve ser registrado no histórico. Este incremento corresponde a uma configuração:

Configuração é o estado do conjunto de itens que formam o sistema em um determinado momento.

As funcionalidades oferecidas pelo controle de versão vão além do simples registro do histórico das configurações. O controle de versão tem outras responsabilidades importantes: possibilitar a edição concorrente sobre os arquivos e a criação de variações no projeto.

O controle de versão é a parte principal da GCS. É o elo comum entre o controle de mudança e a integração do projeto.

Exemplos de ferramentas de controle de versão:

Verificação da Integridade do Sistema

O objetivo da integração é verificar se a construção do sistema a partir dos itens registrados em uma configuração é bem sucedida.

Integrar o sistema consiste em construir o sistema a partir dos itens registrados em uma configuração.

Em termos práticos, a integração é feita através de scripts que automatizam a construção, testes e também a coleta de métricas de qualidade. As ferramentas de integração contínua acompanham o controle de versão e disparam os scripts cada vez que uma nova configuração é registrada.

Exemplos de ferramentas de integração contínua:

GCS na Engenharia de Software

A Gerência de Configuração de Software é a base para as demais áreas de Engenharia de Software: Por isso, aparece como requisito de implementação já no nível inicial de diversos modelos de maturidade de processo de desenvolvimento tais como o CMMI-DEV, SPICE e o MPS-Br.

áreas da engenharia de software

Do ponto de vista das ferramentas, a divisão entre as áreas não é muito nítida. As ferramentas de controle de mudança e integração contínua oferecem mais funcionalidades do que as exigidas pela GCS e avançam sobre áreas de Gerência de Projeto e Teste & Qualidade.

sobreposição de responsabilidades

Fluxo de Trabalho

As solicitações de mudança ficam registradas no controle de mudança. Em seguida, um desenvolvedor se torna o responsável pela implementação de uma solicitação e registra a configuração resultante no controle de versão, o que dispara a integração contínua para execução da construção e testes automatizados, além da coleta de métricas da qualidade do código. Os resultados são apresentados imediatamente a toda equipe, que podem tomar as providências necessárias em caso de qualquer problema.

workflow simplificado

Considerações Finais

A Gerência de Configuração de Software é essencial para produzir software de qualidade. Existem diversas ferramentas open source de GCS disponíveis. Por isso, não há desculpa para não usar alguma. E sim, é preciso um esforço inicial para entender os conceitos, definir alguns processos, integrar e aprender a usar as ferramentas, mas é um investimento baixo pelo retorno que oferece.

Comentários

Comments powered by Disqus