Introdução
ao Gerenciamento de Configuração e Mudanças
Parafraseando o SEI CMM (Software Engineering Institute's Capability Maturity Model)
o 'Gerenciamento de Configuração e de Controle de Mudanças
controla as mudanças e mantém a integridade dos artefatos de um projeto'.

O CM e CRM (Gerenciamento de Configuração e de Controle de Mudanças) envolve:
- a identificação dos itens de configuração,
- a restrição de mudanças nesses itens,
- a auditoria das mudanças feitas nesses itens e
- a definição e o gerenciamento das configurações desses itens.
Os métodos, os processos e as ferramentas utilizados para fornecer o gerenciamento de
configuração e mudanças de uma organização podem ser considerados como o Sistema de CM
da organização.
O Sistema de Gerenciamento de Configuração e de Controle de Mudanças (Sistema de
CM) de uma organização contém informações-chave sobre seu processo de desenvolvimento,
de promoção,
de implementação e de manutenção do produto e retém a base de ativos de artefatos
potencialmente reutilizáveis resultantes da execução desses processos.
O Sistema de CM é parte fundamental e integrante dos processos gerais de desenvolvimento.
Um Sistema de CM é fundamental para controlar os inúmeros artefatos produzidos pelas muitas pessoas que trabalham em um mesmo projeto.
O controle ajuda a evitar confusões dispendiosas e garante que os artefatos resultantes não entrem em conflito devido a algum dos seguintes problemas:
Atualização Simultânea
Quando dois ou mais membros da equipe trabalham separadamente no mesmo artefato, o último membro a fazer mudanças desfaz o trabalho realizado pelo anterior.
O problema básico é que, se um sistema não permite a atualização simultânea, isso leva a mudanças em série e diminui o ritmo do processo de desenvolvimento.
Entretanto, com a atualização simultânea, o desafio é detectar se ocorreram atualizações simultaneamente e resolver quaisquer problemas de integração quando essas mudanças forem incorporadas.
Notificação Limitada
Quando um problema é corrigido nos artefatos compartilhados por vários desenvolvedores e alguns deles não são notificados da mudança.
Várias Versões
A maioria dos programas de grande porte é desenvolvida em liberações evolutivas.
Uma liberação pode estar sendo utilizada pelo cliente, enquanto outra está em teste e uma terceira ainda está em desenvolvimento.
Se forem encontrados problemas em qualquer uma das versões, as correções deverão ser propagadas entre elas.
Isso pode levar a confusões, que acarretam correções dispendiosas e retrabalho, a menos que as mudanças sejam cuidadosamente controladas e monitoradas.
Um Sistema de CM é útil para gerenciar diversas variantes de sistemas de software em desenvolvimento, controlando as versões que são utilizadas em determinados builds do software, compilando construções de programas individuais ou de liberações inteiras de acordo com especificações de versão definidas pelo usuário e impondo políticas de desenvolvimento específicas do site.
Alguns dos benefícios diretos obtidos pelo uso de um Sistema de CM incluem:
- suporte a métodos de desenvolvimento,
- preservação da integridade do produto,
- garantia de abrangência e precisão do produto configurado,
- ambiente estável no qual o produto deve ser desenvolvido,
- restrição das mudanças feitas nos artefatos com base nas políticas do projeto e
- trilha de auditoria indicando por que, quando e por quem um artefato foi alterado.
Além disso, um Sistema de CM armazena dados detalhados de 'contabilidade' sobre o
próprio processo de desenvolvimento: quem criou uma versão específica (e quando e
por que), quais versões de origens foram utilizadas em uma determinada construção, além de outras
informações relevantes.
O Sistema de CM de uma organização é utilizado durante todo o ciclo de vida do produto,
desde a iniciação até a implementação. Como o repositório de ativos de uma organização, o sistema
de CM contém as versões atuais e históricas dos arquivos de origem dos artefatos de
requisitos, de design e de implementação que definem uma determinada versão de um sistema
ou de um componente do sistema
A estrutura de diretórios do
produto, representada no
Sistema de CM, contém todos os artefatos necessários para implementar o produto. Desse
modo, a disciplina CCM (Gerenciamento de Configuração e Mudanças) está relacionada a todas
as outras disciplinas do processo, uma vez que serve como um repositório para os conjuntos de
resultados de artefatos.