Gerência
de Configuração
Durante o ciclo de vida do desenvolvimento, o software passa
por uma série de modificações, desde sua concepção à
implantação.
Durante
seu ciclo de vida, o software passa por uma série de modificações,
desde sua concepção à implantação.
Sob este aspecto,
a Gerência de Configuração de Software (CGS) vem a definir
critérios que permitam realizar tais modificações
mantendo-se a consistência e a integridade do software com as
especificações.
Ela
permite minimizar os problemas decorrentes ao processo de
desenvolvimento, através de um controle sistemático sobre as
modificações. Não é objetivo da GCS evitar modificações,
mas permitir que elas ocorram sempre que possível, sem que
hajam falhas inerentes ao processo.
Em geral a GCS é aplicada apenas
quando existe um processo de desenvolvimento bem definido, com
atividades agrupadas em fases, constituídas por objetivos bem
definidos e documentados. Neste contexto, GCS atua como um
suporte sobre o qual as fases do desenvolvimento são
conduzidas e os produtos controlados.
Aplicar um plano de gerência de
configuração consiste em estabelecer normas, ferramentas e
templates que permitam gerenciar de maneira satisfatória os
itens de configuração de um sistema.
Entende-se como item de configuração
“Cada um dos elementos de informação que são criados
durante o desenvolvimento de um produto de software, ou que
para este desenvolvimento sejam necessários, que são
identificados de maneira única e cuja evolução é passível
de rastreamento” (Pressman em [PRE 92]).
Nesta definição, tanto os
documentos como os arquivos-fonte que compõem um produto de
software são Itens de Configuração (IC), assim como também
o são as ferramentas de software necessárias para o
desenvolvimento.
Se o item de configuração for
composto exclusivamente de software, ele é então
caracterizado como Item de Configuração de Software (ICSW).
Qualquer IC constitui uma unidade
funcional que possui um ciclo de desenvolvimento e
acompanhamento de GCS próprios. Qualquer sistema em
desenvolvimento deve ser particionado em itens de
configuração, e o seu desenvolvimento é visto como o
desenvolvimento de cada um dos ICs. Cada IC, por sua vez pode
ser particionado em outro conjunto de ICs e assim
sucessivamente, até que se resulte um conjunto de ICs não
particionáveis, que são desenvolvidos segundo um ciclo de
vida propriamente definido.
A configuração de um sistema de
software passa a ser definida pela configuração do conjunto
dos ICSW que o constitui.
É importante salientar que a divisão
de um sistema ou produto de software em ICs, bem como a
definição do ciclo de vida de cada IC, são decisões de
projeto e não de GCS.
Em cada fase do processo de
desenvolvimento, um conjunto bem definido de itens de
configuração deve ser estabelecido. Tal conjunto representa
um estágio do desenvolvimento, o qual é passível de
modificações apenas mediante um mecanismo formal de alterações.
A este conjunto é dado o nome de Baselines, ou Configurações
Base do sistema.
Em princípio, baselines poderiam ser
estabelecidas em qualquer ponto do desenvolvimento.
Entretanto, a grande vantagem do conceito está em se fazer
coincidir o estabelecimento de baselines com os finais de fase
do ciclo de vida do produto.
O desenvolvimento com configurações
base pode, então, ser resumido nos seguintes pontos:
- Caracterização
do ciclo de vida, identificando-se as fases pelas quais o
desenvolvimento do software irá passar e, dentro delas,
as atividades a serem realizadas e os produtos a serem
desenvolvidos.
- Definição
do conjunto de baselines. Para cada baseline planejada,
deve-se estabelecer quais serão os ICs que a irão compor
e quais as condições impostas para seu estabelecimento;
- Baselines
representam marcos no processo de desenvolvimento: uma
nova baseline é estabelecida no final de cada fase do
ciclo de vida do software;
- Durante
cada fase, o desenvolvimento dos ICs a ela referentes está
sob total controle de seus desenvolvedores, e realiza-se
com ampla liberdade, podendo os ICs serem criados e
modificados com bastante facilidade;
- Durante
cada fase, entretanto, a modificação de uma configuração-base
anteriormente estabelecida somente pode ser feita de forma
controlada, mediante um processo bem definido;
- Ao
ser estabelecida, cada baseline incorpora integralmente a
anterior. Desta forma, em qualquer instante do
desenvolvimento, a última baseline estabelecida
representa o estado atual do desenvolvimento como um todo;
- O
estabelecimento de cada baseline somente é realizado após
ser aprovada por procedimentos de consistência interna,
verificação e validação;
Desta forma é possível ter um
controle sistemático sobre todos os itens de configuração
abordados em cada fase do ciclo de vida do software, assim
como é possível avaliar mais facilmente o seu grau de evolução.
Gerência
de Configuração® - Atualizado em 05/09/2004 |