Hélio Engholm Jr

Especializado em Engenharia de Software

Introdução

Ao longo do ciclo de vida de um software, seus artefatos sofrem diversas alterações que podem ter suas origens em alterações nos requisitos do projeto, correção de defeitos e de melhorias de funcionalidades.

Estas alterações afetam diversos tipos de artefatos, tais como documentos de requisitos, documentos de análise e projeto, código fonte, programas e scripts de testes. Isto ocasiona o aparecimento de várias versões destes artefatos que precisam ser administradas.

Em um projeto de software, poderíamos enumerar as seguintes questões relacionadas à fase de desenvolvimento:

  • Como controlar o acesso aos programas?
  • Qual versão de código fonte um desenvolvedor deve utilizar para iniciar a implementação de uma manutenção evolutiva do sistema ou correção? Como saber qual a versão mais atualizada dos arquivos?
  • Como voltar para uma versão anterior do programa quando for necessário?

De acordo com o SEI CMM/CMMI temos que a Gerência de Configuração (CM) e de Solicitações de Mudança (CRM) controlam as mudanças e mantêm a integridade dos artefatos de um projeto.

Estas disciplinas ajudam na manutenção da integridade dos produtos de software através de todo o ciclo de vida de um projeto. Na verdade, o gerenciamento de configuração pode ser por nós utilizado em diversas atividades, tais como, versionamento de documentação, de requisitos, planos de teste, scripts de banco de dados, …

A Gerência de Configuração envolve a identificação e o versionamento dos itens de configuração, controlando as mudanças de versão e mantendo a integridade e a rastreabilidade durante o seu ciclo de vida.

Planejar o Gerenciamento de Configuração

O planejamento da Gerência de Configuração engloba os seguintes passos:

  • Definir os papéis e responsabilidades dos  membros da equipe responsável pelas atividades de gerência de configuração (GC)
  • Definir os baselines que deverão ser estabelecidos
  • Definir o cronograma das atividades de GC
  • Definir as políticas, procedimentos e padrões que guiarão essas atividades
  • Identificar os itens de configuração

É no passo Identificar os itens de configuração que definimos todos os itens que serão controlados no processo de gerenciamento de configuração.

Item de Configuração (IC) – Definição

Um Item da Configuração (IC) “é um agregado de H/W, S/W, materiais processados, serviços, ou qualquer de suas partes discretas que sejam classificados como relevantes para o processo de gerenciamento da configuração” ECSS-P-001B, p. 17) (ECSS, 2004).

Atividades do Gerenciamento de Configuração

Podemos enumerar as seguintes atividades, relacionadas ao gerenciamento de configuração:

  • Identificar itens de configuração
  • Restringir as modificações nesses itens
  • Auditar modificações nesses itens (porque, quando e por quem um artefato foi modificado)
  • Definir e administrar configurações desses itens, ao longo do processo de desenvolvimento.
  • Implantar ambiente com base na estrutura definida na atividade anterior
  • Gerenciar a utilização do ambiente de acordo com as normas propostas
  • Avaliar e revisar o ambiente

Gerencialmente falando, temos as atividades:

  • Definir os papéis e responsabilidades dos  membros da equipe responsável pelas atividades de gerência de configuração (GC)
  • Definir os baselines que deverão ser estabelecidos
  • Definir o cronograma das atividades de GC
  • Definir as políticas, procedimentos e padrões que guiarão essas atividades

Em termos operacionais temos:

  • Definir as ferramentas de suporte que serão utilizadas no desenvolvimento, controle de versões e também outros softwares em geral a serem utilizados.
  • Implantar o ambiente com base na estrutura definida na atividade anterior
  • Gerenciar a utilização do ambiente de acordo com as normas propostas
  • Avaliar e revisar o ambiente

Plano do SCM (Software Configuration Management)

Geralmente em projetos que utilizam o PMBoK é elaborado o Plano de gerenciamento e configuração de software.

Neste plano, pode constar os seguintes itens:

  • Recursos de SCM;
  • Atividades e Responsabilidades de SCM
  • Local de armazenamento das bibliotecas
  • Estrutura de pastas e permissões
  • Padrão de nomenclatura de pastas e arquivos
  • Rotina de Backup
  • Itens a serem controlados
  • Critério de amostra de artefatos para auditorias

Controle de configuração (CC)

O Controle de Configuração assegura que todas as alterações e desvios de uma linha de base aprovada, incluindo a documentação associada, sejam processadas e controladas de forma rastreável.

O processo de controle da configuração possui pelo menos os seguintes objetivos:

  • Prevenir alterações negativas ao produto
  • Garantir a participação de todas as partes envolvidas no processo de avaliação e decisão sobre uma mudança
  • garantir que mudanças autorizadas ou desvios sejam implementados, verificadas e registradas
  • prevenir a implementação de mudanças ou desvios não autorizados.

Processo de gerenciamento de configuração

O processo de gerenciamento de configuração é uma disciplina completa, possuindo matriz de responsabilidades, diversos subprocessos, recursos necessários para a execução dos mesmos, …

Relaciono os subprocessos abaixo como exemplo:

  • Montar infraestrutura do CM
  • Auditar bibliotecas
  • Acompanhar resolução de desvios
  • Manter bibliotecas
  • Manter itens e configuração

Conclusão

Ao tomar conhecimento desta disciplina em nossa evolução profissional, imediatamente percebemos a importância de se ter o controle sobre os artefatos por nós produzidos e utilizados em nosso dia a dia de trabalho.

O sucesso de um projeto é altamente dependente de um bom gerenciamento da configuração e quanto mais complexo for o projeto e maior for o tamanho da equipe, mais necessário este gerenciamento se torna.

Somente empresas com nível de maturidade do tipo CMM acabam possuindo processos definidos para a implementação de software que incluem o Gerenciamento de Configuração. Mesmo assim, profissionais que possuem conhecimento desta disciplina, podem utilizar parcialmente as boas práticas da mesma para melhorar seu trabalho e o trabalho de sua equipe, no dia a dia em  empresas que não possuem esta maturidade.

Este artigo teve como finalidade esclarecer alguns pontos do Gerenciamento de Configuração. O ideal seria um workshop onde eu poderia explanar mais profundamente este assunto.

Mesmo assim, espero ter agregado alguma informação nova a todos vocês.

LivroES

Link Novatec: http://www.novatec.com.br/livros/engenhariasoftware/

Link Livraria Cultura:

http://www.livrariacultura.com.br/scripts/resenha/resenha.asp?nitem=22123724

Livraria Saraiva: 

http://www.livrariasaraiva.com.br/produto/3048891




+ Artigos