Gerência de configuração de software, gerência de configuração ou ainda gestão de configuração de software é uma área da engenharia de software responsável por fornecer o apoio para o
desenvolvimento de software. Suas principais atribuições são o controle de versão, o controle de mudança e a auditoria das configurações. Roger Pressman, em seu livro Software Engineering: A Practitioner's Approach, especifica que a gerência de configuração de software (GCS) é o: 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:
Controle e Acompanhamento de MudançasMudanç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 ProjetoCada 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:
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 SistemaO objetivo da integração é verificar se a construção do sistema a partir dos itens registrados em uma configuração é bem sucedida.
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 SoftwareA 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.
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.
Fluxo de TrabalhoAs 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.
Considerações FinaisA 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. O que significa item de configuração de software?O termo item de configuração ou IC é a qualquer componente que necessita ser configurado com o objetivo de se entregar um serviço de TI. Refere-se à unidade estrutural fundamental de um sistema de gerenciamento de configuração.
São ferramentas de Gerência de Configuração de Software?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). BitBucket.. Bugzilla.. GitHub.. Phabricator.. Redmine.. Quais as 3 atividades principais no processo de gerenciamento de configurações?Sob a perspectiva de desenvolvimento, a Gerência de Configuração é dividida em três sistemas principais: controle de modificações, controle de versões e gerenciamento de construção.
Para que serve a gerência de configuração?Gerenciamento de configuração é o processo usado para manter sistemas computacionais, servidores e softwares em um estado desejado, consistentemente. É uma forma de se certificar de que o sistema funciona como o esperado ainda que alterações sejam são feitas com o passar do tempo.
|