Académique Documents
Professionnel Documents
Culture Documents
Gerência de Configuração
Definições Iniciais, Ferramentas e Processo
C
científicos sobre Engenharia de Software publica- om um mercado cada vez mais um processo de desenvolvimento de software.
dos em revistas e conferências renomadas, dentro exigente, as empresas que fabri-
e fora do país. Experiência de participação em
cam software tem revisto seus
diversos projetos de consultoria para diferentes
empresas tendo atuado com gerência de projetos, processos de construção com o intuito de software voltadas para o controle tem
requisitos e testes de software. Implementador aumentar a qualidade de seus produtos sido elaboradas uma vez que um pro-
certificado do MPS.BR, tendo também experiência e também sua produtividade. Diversas jeto de software, ao longo do seu ciclo
atuando junto a empresas certificadas CMMI. metodologias de desenvolvimento de de vida, tem uma grande quantidade
de itens de informação tais como documentos, código-fonte, A primeira lei da engenharia de sistemas diz:
dados, manuais e outros, produzidos e até modificados, pelos „Independente de onde você está no ciclo de vida de um sistema, o
mais diversos motivos. sistema vai se modificar e o desejo de modificá-lo vai persistir ao longo de
Para que a qualidade do software seja garantida, em fun- todo o ciclo de vida‰. Bersoff (1980 apud Pressman, 2006, p. 600)
ção destas modificações, é necessário que se faça uso da
Gerência de Configuração de Software (GCS). A Gerência Produtos de software normalmente envolvem quantidades
de Configuração de Software tem como objetivo gerenciar significativas de artefatos que são manuseados por diversas
e controlar a evolução de um software através do controle pessoas envolvidas em seu projeto.
formal de versão e solicitação de mudanças. É uma forma Assim sendo, a possibilidade de introdução de defeitos au-
sistemática e organizada de controlar as modificações de menta à medida que alterações são efetuadas sem uma analise
um software tornando possível manter sua integridade ao antes da sua execução, sem o registro formal antes da sua imple-
longo do tempo. A quantidade de itens que podem estar mentação, sem a comunicação às pessoas que necessitam saber
sob controle da GCS e os níveis de controle exigidos sobre delas ou ainda sem um controle que vise melhorar a qualidade
estes itens irá variar de empresa para empresa ou mesmo e reduzir os erros.
de projeto para projeto. Sendo assim, o uso desta prática em Existem quatro fontes fundamentais de modificações de
conformidade com modelos de maturidade mantidos por en- software:
tidades que possuam credibilidade nacional e internacional, Novas condições de negócio e/ou mercado, modificam regras
e também o uso de ferramentas adequadas que garantam de negócio;
a qualidade deste processo, é fundamental para que uma Novas necessidades do cliente exigem modificações de
empresa obtenha êxito e reconhecimento. funcionalidades;
Para empresas de grande porte, isto não chega a ser um Reorganização e/ou crescimento/diminuição do negócio;
grande problema pois normalmente se dispõem de capital Restrições de orçamento ou cronograma, causando redefinição
e pessoal qualificado para manter tais práticas. Entretanto, do sistema;
quando voltamos a olhar para as pequenas empresas, o
cenário é exatamente o oposto. As dificuldades e o custo Conceitos e Terminologias
envolvidos para se adotar um modelo de gestão, treinar pes- A Gerência de Configuração de Software (GCS) ou Software
soal, adquirir ferramentas que apóiem a pratica de GCS, e Configuration Management (SCM) é uma atividade abrangente
ainda obter certificação em um determinado nível de modelo que ocorre ao longo de todo o ciclo de vida de um software e
de maturidade, de uma entidade reconhecida, pode levar que gerencia e controla sua evolução, através do controle de
uma pequena empresa a desistir rapidamente da adoção de versões e solicitações de mudanças, permitindo que os diver-
um processo de GCS com qualidade, e como conseqüência, sos envolvidos na sua criação e manutenção tenham acesso ao
perder em competitividade para outras empresas. Este artigo histórico destas modificações, fornecendo-lhes subsídios para
foi feito com o foco voltado para estas empresas. o entendimento do sistema na sua forma atual, e também nas
Neste contexto, o objetivo deste artigo é mostrar uma solu- suas formas anteriores.
ção especifica, de boa qualidade e baixo custo, que atenda As atividades de GCS incluem:
as exigências dos modelos de maturidade e que possa ser Identificar modificações;
utilizada para implementar a Gerência de Configuração de Controlar modificações;
Software em pequenas empresas. Garantir a implementação adequada das modificações;
Sob esta perspectiva, será apresentada uma revisão bi- Relatar as modificações a outros que possam ter interesse.
bliográfica sobre GCS, sua aplicação dentro dos modelos
de maturidade CMMI e MPS e uma solução especifica uti- Segundo Pressman (2006, p. 599), diferentemente da ativida-
lizando as ferramentas Mantis e Subversion, através de um de de suporte de software, que ocorre depois que o software
estudo de caso de uma empresa fictícia de pequeno porte foi entregue ao cliente, a GCS é um conjunto de atividades de
que atenda as exigências do modelo de maturidade MPS, e acompanhamento e controle que começam quando o projeto
que possa servir como alternativa para empresas reais que de engenharia de software tem início e só terminam quando o
estejam buscando a implementação do processo de GCS. software é retirado de operação.
Serão apresentados também os aspectos de instalação e A Gerência de Configuração de Software tem especial impor-
configuração das ferramentas, a fim de facilitar àqueles tância na garantia da qualidade do software e no apoio a gestão
que forem utilizá-las. de projetos, sendo imprescindível sua aplicação nas empresas que
desejam obter a certificação do Capability Maturity Model Integra-
Gerência de Configuração tion (CMMI) nível 2 ou na obtenção da certificação do modelo para
Ao longo do ciclo de vida de um software, diversas modifi- Melhoria de Processo do Software Brasileiro (MPS-BR) nível F.
cações podem ocorrer em seu projeto original. Os motivos Segundo Pressman (2006 p. 606), o processo de gestão de
e origens destas modificações podem ser os mais variados configuração de software define uma série de tarefas que têm
possíveis e podem ocorrer em qualquer época. quatro objetivos principais:
Os ICS’s são retirados e inseridos nos repositórios, através Durante cada fase, a modificação de uma configuração-base
das seguintes operações: somente pode ser feita de forma controlada, mediante um
LOCK: Garante que apenas um usuário detém o acesso para processo bem definido;
alterar um determinado ICS. Apesar de resolver o problema Ao ser estabelecida, cada baseline incorpora integralmente
de atualização simultânea, o lock serializa o trabalho dos a anterior.
desenvolvedores. O estabelecimento de cada baseline somente é realizado
CHECK-OUT: Recupera a última versão de um item de após ser aprovada por procedimentos de consistência interna,
configuração guardado no repositório, copiando-o para a área verificação e validação;
de trabalho do desenvolvedor.
CHECK-IN: Insere ou atualiza um item de configuração Na Figura 2 vemos uma representação de baselines adaptada
no repositório, incrementando a versão do ICS, e fazendo o de Molinari (2007, p 56).
registro das informações de mudança.
Identificação de ICSÊs
A identificação dos ICs é uma área de extrema importância
dentro da Gerência de Configuração de Software. Sem uma
identificação correta de um item, é impossível gerenciar este
processo.
Cada ICS deve ser identificado através de características
Figura 2. Entendendo um baseline
distintas que o caracterizam unicamente. Estas características
podem ser um nome, uma descrição, uma lista de recursos etc. Controle de Versão
É necessário que cada organização defina suas convenções de Segundo Pressman (2006, p. 608), controle de versões
identificação. combina procedimentos e ferramentas para gerir diferentes
versões de objetos de configuração que são criados durante
Baseline o processo de software. Um sistema de controle de versão
Um baseline pode ser descrito como a situação de uma cole- implementa ou está diretamente integrado com quatro ca-
ção de ICS’s similares em um momento especifico do ciclo de pacidades principais:
vida de um software que foram aprovados e armazenados em Um banco de dados de projeto (repositório) que guarda
uma biblioteca controlada. Pode ser descrito também como a todos os objetos de configuração relevantes;
conexão de um item de configuração com um determinado Uma capacidade de gestão de versão que guarda todas as
marco no projeto (milestone). Um baseline pode ser visto como versões de um objeto de configuração;
um conjunto de itens de configuração identificados e liberados Uma facilidade de construir que permite ao engenheiro de
para uso, independente de suas versões. software coletar todos os objetos de configuração relevantes
É importante identificar e agrupar estes ICS’s dentro dos e construir uma versão especifica do software;
baselines apropriados pois desta forma, cria-se uma estrutura Capacidade de acompanhamento de tópicos (também cha-
que facilita o rastreamento de mudanças à estes ICS’s. mado de acompanhamento de bugs).
Em cada fase do processo de desenvolvimento, um conjunto
bem definido de itens de configuração deve ser estabelecido. Segundo Molinari (2007, p. 168), alguns colocam que a prin-
Tal conjunto representa um estágio do desenvolvimento, o qual cipal missão de um sistema de controle de versões é permitir
é passível de modificações apenas mediante um mecanismo a edição colaborativa e o compartilhamento de dados, outros
formal de alterações. A este conjunto é dado o nome de base- dizem que o sistema de controle de versões rastreia e controla
lines, ou configurações base do sistema. todos os artefatos do projeto e desse modo consegue coorde-
Em princípio, baselines poderiam ser estabelecidas em qual- nar o trabalho paralelo de desenvolvedores.
quer ponto do desenvolvimento. Entretanto, a grande vanta- Ainda segundo Molinari (2007, p.168), independente do que
gem do conceito está em se fazer coincidir o estabelecimento de cada um pensa sobre controle de versões, algumas das suas
baselines com os finais de fase do ciclo de vida do produto. características perceptíveis são:
O desenvolvimento com configurações base pode, então, ser Mantém e disponibiliza cada versão já produzida de cada
resumido nos seguintes pontos: item do projeto;
Caracterização do ciclo de vida, identificando-se as fases Possui mecanismos para gerenciar diferentes ramos de
pelas quais o desenvolvimento do software irá passar; desenvolvimento possibilitando a existência de diferentes
Definição do conjunto de baselines, estabelecendo-se quais versões de maneira simultânea;
serão os ICS’s que a irão compor; Estabelece uma política de sincronização de mudanças que
Estabelecer o marco o qual a baseline irá representar. Uma evita a sobreposição de mudanças;
nova baseline é estabelecida no final de cada fase do ciclo de Fornece um histórico completo de alterações sobre cada
vida do software; item do projeto.
seu objetivo é controlar estas mudanças e manter informações Revisões técnicas formais;
sobre os pedidos de mudança, nos produtos e as implementa- Auditoria de configuração de software.
ções realizadas em função destas mudanças.
Informações do tipo quem, quando, por que e o que foi mu- A revisão técnica tem como foco a correção técnica do ICS
dado, em um item de configuração, são guardadas para que que foi modificado a partir de uma requisição. Revisores
seja possível haver uma rastreabilidade entre suas versões avaliam o ICS para determinar se o mesmo é consistente.
anteriores e posteriores. Revisões técnicas formais normalmente são feitas para todas
O processo de controle de mudanças começa quando o clien- as modificações, exceto as mais triviais.
te emite um pedido de comunicação. Este pedido passa pela A auditoria de configuração de software tem como objetivo
análise de uma Comissão de Controle de Modificações (do complementar a revisão técnica formal e trata dos seguintes
inglês Change Control Board – CCB), que é responsável pela aspectos:
sua aprovação ou não. É gerada então uma ordem de modifi- Verifica se a modificação técnica especificada foi realizada e
cação de engenharia (Engineering Change Order – ECO) pra as se foi incorporada alguma modificação adicional;
modificações aprovadas. O ICS é retirado do repositório para Verifica se uma revisão técnica formal foi feita para avaliar
uma área de trabalho exclusiva do profissional, que irá executar a correção técnica;
as mudanças. As mudanças são executadas, as atividades de Verifica se o processo de software foi seguido;
SQA são aplicadas, e os ICS’s modificados são introduzidos Verifica se constam anotados no ICS modificado, dados de
no repositório com os mecanismos adequados de controle rastreabilidade tais como data da modificação, autor, nº de
de versão. Controles para acesso aos ICS’s pelos engenheiros requisição etc.;
e controles de sincronização de modificações paralelas por Verifica se os procedimentos de GCS para registrar e relatar
pessoas diferentes são usados nesta etapa. a modificação, foram seguidos;
A Figura 4 esboça o processo formal de controle de modifi- Verifica se todos os ICS’s relacionados foram atualizados de
cações segundo Pressman (2006, p 610). forma adequada.
Relatórios de Estado
Os relatórios de estado é uma tarefa de GCS que tem por
objetivo responder às seguintes questões:
O que aconteceu ?
Quem fez ?
Quando aconteceu ?
O que mais será afetado ?
por diversos outros projetos e empresas. Algumas de suas Institute) na Carnegie Mellon University a pedido do Depar-
características são: tamento de defesa dos EUA que necessitava de um modelo
Capacidade de pesquisa avançada; para avaliar os seus fornecedores de software. A versão 1.1
Notificações por e-mail controladas pelas preferências de foi publicada em 2002 e a atual, versão 1.2 , foi publicada em
usuários; agosto de 2006.
Lista de defeitos em diversos formatos; A missão inicial da equipe que produziu o CMMI era com-
Relatórios periódicos (diários, semanais etc.) enviados por binar três modelos:
e-mail; Capability Maturity Model for Software (SW-CMM) v. 2.0
Controle de tempo de execução de uma solicitação; draft C
Sistema de atribuição de tarefas; Systems Engineering Capability Model (SECM)
Diversas versões de localização (incluindo Português Integrated Product Development Capability Maturity Model
– Brasil). (IPD-CMM) v. 0.98
Interamericano de Desenvolvimento (BID). Sua estrutura está Este modelo surgiu pelo fato de muitas empresas ao busca-
dividida em duas áreas de apoio: rem certificação CMM/CMMI se depararem com os custos
• Fórum de Credenciamento Controle (FCC) cujas atribui- elevados de implementação/avaliação, inviabilizando as
ções são: certificações para pequenas empresas.
I. Emitir parecer que subsidie decisão da SOFTEX sobre o Uma das metas do programa MPS.BR é definir e aprimorar
credenciamento de Instituições Implementadoras (II) e Ins- um modelo de melhoria e avaliação de processo de software
tituições Avaliadoras (IA); visando preferencialmente às micro, pequenas e médias em-
II. Monitorar os resultados das Instituições Implementa- presas, de forma a atender as suas necessidades de negócio
doras (II) e Instituições Avaliadoras (IA), emitindo parecer e ser reconhecido nacional e internacionalmente como um
propondo à SOFTEX o seu descredenciamento no caso de modelo aplicável à indústria de software.
comprometimento da credibilidade do modelo MPS. A base técnica para a construção e aprimoramento deste
• Equipe Técnica do Modelo (ETM) cuja atribuição é apoiar a modelo de melhoria e avaliação de processo de software é
SOFTEX sobre os aspectos técnicos relacionados ao Modelo composta pelas normas ISO/IEC 12207:2008 [ISO/IEC, 2008a]
de Referência (MR-MPS) e Métodos de Avaliação (MA-MPS) e ISO/IEC 15504-2 [ISO/IEC, 2003]. O MPR.BR se propõe ser
para: compatível com o modelo CMM/CMMI para software.
I. Criação e aprimoramento contínuo do MR-MPS, MA-MPS Na Figura 6 temos uma visão geral dos principais compo-
e seus guias específicos; nentes MPS.BR.
II. Capacitação de pessoas por meio de cursos, provas e O Modelo de Referência, MR-MPS, define níveis de ma-
workshops. turidade que são uma combinação entre processos e sua
capacidade. Para cada nível de maturidade são estabelecidos software utilizando-se das ferramentas Mantis para controle de
processos que caracterizam estágios de melhoria da imple- modificações e Subversion para controle de versões.
mentação de processos na organização. O MR-MPS define sete
níveis de maturidade: Nivel Processos
A (Em Otimização); A
B (Gerenciado Quantitativamente); B Gerência de Projetos – GPR (evolução)
C (Definido); C Gerência de Riscos – GRI
D (Largamente Definido); Desenvolvimento para Reutilização – DRU
E (Parcialmente Definido); Gerência de Decisões – GDE
F (Gerenciado); D Verificação – VER
G (Parcialmente Gerenciado). Validação – VAL
Projeto e Construção do Produto – PCP
Integração do Produto – ITP
Desenvolvimento de Requisitos – DRE
E Gerência de Projetos – GPR (evolução)
Gerência de Reutilização – GRU
Gerência de Recursos Humanos – GRH
Definição do Processo Organizacional – DFP
Avaliação e Melhoria do Processo Organizacional – AMP
F Medição – MED
Garantia da Qualidade – GQA
Gerência de Portfólio de Projetos – GPP
Figura 6. Visão geral dos componentes do MPS.BR Gerência de Configuração – GCO
Aquisição – AQU
O primeiro nível da escala é o “G” e o último o “A”. A G Gerência de Requisitos – GRE
Tabela 2 mostra os processos exigidos para cada nível de Gerência de Projetos – GPR
maturidade.
Tabela 2. Níveis de Maturidade do MR-MPS
Segundo definição do MPS.BR Guia de Implementação (2009,
p. 16), o propósito do processo de Gerência de Configuração Estudo de caso de uma implementação de GCS com
é estabelecer e manter a integridade de todos os produtos de Mantis e Subversion
trabalho de um processo ou projeto e disponibilizá-los a todos A partir de agora será apresentado um estudo de caso de
os envolvidos. A GCS é encarada pelo MPS.BR como sendo implementação de práticas de GCS com as ferramentas Mantis
um processo do nível de maturidade “F” e portanto deve ter e Subversion em uma empresa de construção de software de
resultados esperados. Os resultados esperados da GCS são: pequeno porte. A esta empresa, daremos o nome fictício de
GCO1 - Um Sistema de Gerência de Configuração é esta- “Casa do Software”.
belecido e Mantido;
GCO2 - Os itens de configuração são identificados com base Cenário
em critérios estabelecidos; A empresa “Casa do Software” é uma empresa de pequeno porte
GCO3 - Os itens de configuração sujeitos a um controle e conta com trinta e cinco colaboradores. A empresa desenvolve
formal são colocados sob baseline; softwares voltados para áreas comerciais de outras empresas
GCO4 - A situação dos itens de configuração e das baselines utilizados por vendedores em seus notebooks nas visitas a seus
é registrada ao longo do tempo e disponibilizada; clientes. A empresa não possui uma política de GCS implementa-
GCO5 - Modificações em itens de configuração são da. Existe apenas uma rotina periódica de back-ups que fica sob
controladas; responsabilidade do pessoal de suporte de infra-estrutura.
GCO 6 - O armazenamento, o manuseio e a liberação de itens As solicitações de modificações são feitas pelos clientes
de configuração e baselines são controlados consistentes; através de reuniões realizadas com o gerente de projetos e
GCO7 - Auditorias de configuração são realizadas objeti- desenvolvedores. A única documentação existente sobre as
vamente para assegurar que as baselines e os itens de confi- solicitações são as atas das reuniões, não havendo documen-
guração estejam íntegros, completos e consistentes. tação de acompanhamento da manutenção e aprovação formal
das mesmas por parte da gerência de projetos. Existe mais
Nesta parte do artigo foi mostrado onde a Gerência de confi- de uma versão do mesmo sistema, como conseqüência de
guração de Software se encaixa nos dois dos principais modelos alterações feitas especificamente para determinados clientes,
de maturidade de software usados por em presas brasileiras. Na o que complica ainda mais a manutenção dos produtos de
próxima seção do artigo será apresentado um estudo de caso software. Como a empresa está em franca expansão, fica clara
de aplicação de GCS em uma empresa de desenvolvimento de a necessidade de se implementar práticas de GCS que possam
Tabela 5. )TENS DE #ONFIGURA¥ÎO
Figura 9. &LUXO DO #ONTROLE DE MODIFICA¥ÜES DA EMPRESA h#ASA DO 3OFTWAREv Figura 11. Visão inicial dos status de solicitações de mudanças
Instalação do Mantis
A versão do Mantis para Windows pode ser baixada a
partir do site “http://www.mantisbt.org/download.php”.
A sua versão estável mais recente é a MantisBT 1.1.8. Os se-
guintes softwares são requeridos e devem ser instalados:
PHP 4.3.0 and higher
MySQL database 4.1.1 and higher (MS SQL and DB2 are
also supported).
Web server (Apache, IIS, etc.)
Configuração do Mantis
Após instalado o Mantis é necessário configurar o arquivo
“config.inc.php” com os parâmetros corretos para emissão
de e-mails. A configuração utilizada neste trabalho está
apresentada na Figura 24. Os campos “user”, “domínio” e
“password” que aparecem no texto devem ser substituídos
pelos correspondentes de cada caso.
A configuração listada na Figura 24 já inclui os parâ-
Figura 22. Resultado da operação de commit metros necessários para integração com o Subversion. O
significado de cada parâmetro pode ser obtido no manual
do Mantis no endereço “http://manual.mantisbt.org/
Resultados esperados do MPS.BR alcançados na solução index.php”.
adotada Vale observar que para que o envio de e-mails a cada novo
Conforme descrito anteriormente, a solução adotada deve- status de uma solicitação de modificação ocorra, é neces-
rá estar em conformidade com o modelo MPS-BR. sário a instalação do PHPMailer, que pode ser encontrado
Segundo o MPS.BR Guia Geral (SOFTEX, 2009, p.23) o no site “http://phpmailer.sourceforge.net”. A instalação do
processo de Gerencia de Configuração encontra-se no nível PHPMailer é simples, bastando para tanto copiar os arqui-
“F” do MR-MPS e deve atingir sete resultados esperados. vos “class.smtp.php” e “class.phpmailer.php” para o diretó-
A Tabela 6 mostra os resultados esperados e os itens deste rio destinado aos arquivos de include. No caso do XAMPP o
trabalho onde estão contemplados. diretório é “<diretório_de_instalação_do_XAMPP>\ php\
GCO 6. O armazenamento, o manuseio e a liberação de itens de configuração e baselines são Estabelecimento de um sistema de GCS
controlados
GCO 7. Auditorias de configuração são realizadas objetivamente para assegurar que as baselines e os Estabelecimento de um sistema de GCS
itens de configuração estejam íntegros, completos e consistentes
Tabela 6. 2ESULTADOS ESPERADOS NO NÓVEL &