Contexto para Gerência de
Configuração
1/113
Gerência de Configuração e
mudança
Objetivo
• Compreender a importância do uso de
mecanismos de gerência de configuração e de
mudança, seus métodos, processos e ferramentas.
• Fornecer os principais conceitos relacionados a
GC.
• Criar uma visão geral de como GC pode ser
aplicada a um projeto de software.
2/113
Problema da Quebra de Comunicação
Desenvolvedor A
Desenvolvedor B
Desenvolvedor C
3/113
Problema da Quebra de
Comunicação (continuação)


Falhas de comunicação em equipes
Ocorre pelas mais diversas razões:
Vocabulários incompatíveis
 Culturas de desenvolvimento diferentes
 Distância geográfica
 Dificuldade de expressão


Quando este problema acontece:
Os sistemas produzidos não atendem aos requisitos
 Força de trabalho é desperdiçada

4/113
Problema dos Dados Compartilhados
Desenvolvedor A
Programa de A
A1
A2
A3
Desenvolvedor B
Componente
Compartilhado
Programa de B
B1
B2
B3
5/113
Problema dos Dados
Compartilhados - Cenário




O desenvolvedor A modifica o componente
compartilhado
Mais tarde, o desenvolvedor B realiza algumas
alterações no mesmo
Ao tentar compilar o componente, erros são
apontados pelo compilador, mas nenhum deles
ocorre na parte que B alterou
O desenvolvedor B não tem a menor idéia
sobre a causa do problema
6/113
Problema dos Dados
Compartilhados - Solução simplista

Solução simplista:
 cada
desenvolvedor trabalha em uma cópia
“local” do componente
 resolve o Problema dos Dados Compartilhados,
mas cria um novo problema
7/113
Problema da Manutenção Múltipla
Desenvolvedor A
Programa de A
A1
A2
A3
Componente
Compartilhado
Versão de A do
Componente
Compartilhado
Desenvolvedor B
Componente
Compartilhado
Programa de B
B1 B2 B3
Versão de B do
Componente
Compartilhado
8/113
Problema da Manutenção Múltipla
(continuação)


Ocorre quando cada desenvolvedor trabalha com uma
cópia “local” do que seria o mesmo componente
Dificuldade para saber:
Que funcionalidades foram implementadas em quais
versões do componente
 Que defeitos foram corrigidos


Evitado através de uma biblioteca central de
componentes compartilhados
Nesse esquema, cada componente é copiado para a
biblioteca sempre que alterado
 Resolve o Problema da Manutenção Múltipla, mas...

9/113
Problema da Atualização Simultânea
Biblioteca Central de
Recursos Compartilhados
Desenvolvedor A
Desenvolvedor B
Componente
Compartilhado
Programa de A
A1
A2
A3
Versão de A do
Componente
Compartilhado
Versão de B do
Componente
Compartilhado
Programa de B
B1 B2 B3
10/113
Problema da Atualização
Simultânea – Cenário 1




O desenvolvedor A encontra e corrige um
defeito em sua versão do componente
compartilhado
Uma vez corrigido, o componente modificado é
copiado para a biblioteca central
O desenvolvedor B encontra e corrige o
mesmo defeito em sua versão do componente
por não saber que A já tinha feito isso
O trabalho de A é desperdiçado
11/113
Problema da Atualização
Simultânea – Cenário 2






O desenvolvedor A encontra e corrige um defeito em sua versão
do componente compartilhado
Uma vez corrigido, o componente modificado é copiado para a
biblioteca central
O desenvolvedor B encontra e corrige um outro defeito em sua
versão do componente, sem saber do defeito corrigido por A
O desenvolvedor B copia sua versão do componente para a
biblioteca central
Além de o trabalho de A ser desperdiçado, a versão do
componente que se encontra na biblioteca central continua
apresentando um defeito
O desenvolvedor A julga o problema como resolvido
12/113
Como Resolver?


O problema da atualização simultânea não
pode ser resolvido simplesmente copiando
componentes compartilhados para uma
biblioteca central
Algum mecanismo de controle é necessário
para gerenciar a entrada e saída dos
componentes
13/113
O que é Gerência de Configuração?


Gerência de configuração (GC) é o processo
de identificar, organizar e controlar
modificações ao software sendo construído
A idéia é maximizar a produtividade
minimizando os enganos
14/113
Objetivos de GC





Definir o ambiente de desenvolvimento
Definir políticas para controle de versões,
garantindo a consistência dos artefatos
produzidos
Definir procedimentos para solicitações de
mudanças
Administrar o ambiente e auditar mudanças
Facilitar a integração das partes do sistema
15/113
Benefícios




Aumento de produtividade no desenvolvimento
Menores Custos de Manutenção
Redução de defeitos
Maior rapidez na identificação e correção de
problemas
16/113
Conceitos Básicos
17/113
Configuração

Um projeto de desenvolvimento de software
produz os seguintes itens:
 Programas
(código fonte, programas
executáveis, bibliotecas de componentes, etc.)
 Documentação (manuais do usuário, documento
de requisitos, modelo de análise e projeto, etc.)
 Dados (dados de teste e do projeto)

Esses conjuntos de itens são chamados,
coletivamente, de configuração do software
18/113
Item de Configuração



Um conjunto de itens de hardware e/ou software
vistos como uma entidade única para fins de
gerência de configuração
Um item de configuração está sujeito a mudanças
e essas devem obedecer às políticas
estabelecidas
Normalmente, um item de configuração é
estabelecido para cada pedaço de software que
pode ser projetado, implementado e testado de
forma independente
19/113
Configuração de Software
item
fluxo de desenvolvimento
tempo
20/113
Baseline

Uma especificação ou produto que foi formalmente
revisado e aceito




Serve como base para os passos posteriores do
desenvolvimento
A configuração do software em um ponto discreto no
tempo
Só pode ser modificado através de procedimentos
formais (solicitações de mudança)
Um artefato ou conjunto de artefatos só se torna um
item de configuração depois que um baseline é
estabelecido
21/113
Baseline
item
fluxo de desenvolvimento
tempo
22/113
Razões para Criar um Baseline
• Reproducibilidade – a habilidade de
reproduzir uma versão anterior do sistema
• Rastreabilidade – Estabelece uma relação
predecessor-sucessor entre artefatos do
projeto (projeto satisfaz requisitos, código
implementa projeto, etc.)
• Geração de Relatórios – A comparação dos
conteúdos de dois baselines ajuda na
depuração e criação de documentação
• Controle de Mudanças – referencial para
comparações, discussões e negociações
23/113
Baselines importantes

Baselines são considerados marcos no
processo de desenvolvimento:
 Funcional
: requisitos
 De Produto : releases, iterações
24/113
Repositório



Local (físico e lógico) onde os itens de um
sistema são guardados
Pode conter diversas versões do sistema
Utiliza mecanismos de controle de acesso
Desenvolvedor
Repositório
25/113
Lock



Resolve a Atualização Simultânea
Garante que apenas o usuário que detém o
lock pode alterar o arquivo
Problema: “serializa” o trabalho dos
desenvolvedores
26/113
Check-Out
Check-out
cliente
Repositório
27/113
Check-Out (continuação)

Recupera a (última) versão de um item de
configuração guardada no repositório
 Escrita
 Verifica
que ninguém detém o lock do item de
configuração
 Obtém o lock do item
 Cria uma cópia, para edição, no cliente
 Leitura
 Verifica
que alguém já detém o lock
 Cria uma cópia, apenas para leitura, no cliente
28/113
Check-In
Check-in
cliente
Repositório
29/113
Check-In (continuação)

Ação de inserir/atualizar um item de
configuração no repositório
 Verifica
o lock do item de configuração, caso o
mesmo já exista
 Verifica e incrementa a versão do item
 Registra informações das mudanças (autor,
data, hora, comentários)
 Inclui/atualiza o item
30/113
Build





Representa uma versão ainda incompleta do sistema
em desenvolvimento, mas com certa estabilidade
Costuma apresentar limitações conhecidas
Espaço para integração de funcionalidades
Inclue não só código fonte, mas documentação,
arquivos de configuração, base de dados, etc.
A política de geração dos builds deve ser bem definida
na estruturação do ambiente
31/113
Os Problemas na Geração de
Builds



Fazer os builds do sistema manualmente é
muito demorado
Pode ser difícil saber qual a versão “correta” de
um arquivo
Os pedaços do sistema podem estar em
diversos locais diferentes
 Alguns
arquivos podem ser esquecidos
32/113
Os Problemas na Geração de
Builds

A integração das partes de um sistema em
desenvolvimento normalmente é:
 Realizada
poucas vezes, apenas perto de sua
implantação
 Feita em freqüência inversamente proporcional
à complexidade do sistema

Integrar as partes de um sistema é uma tarefa
trabalhosa e sujeita a erros
 Quanto
maior o sistema, mais difícil
33/113
Os Problemas na Geração de
Builds

Consequência: problemas de integração
tornam-se difíceis de detectar cedo no
desenvolvimento
 Costumam
ser encontrados muito depois de sua
introdução
 É muito difícil rastrear suas causas
34/113
Geração de Buils através da
Integração Contínua

Geração freqüente (pelo menos diária) de builds do
sistema
As partes do sistema são integradas constantemente
 Problemas de integração passam a ser encontrados logo
que introduzidos, na maioria dos casos



Considerada uma das “melhores práticas” no
desenvolvimento de software
A geração de builds deve ser automatizada e
realizada com freqüência adequada
35/113
Release



Identificação e empacotamento de artefatos entregues
ao cliente (interno ou externo) ou ao mercado
Um release implica no estabelecimento de um novo
baseline, de produto
Produto de software supostamente sem erros



Versão do sistema validada após os diversos tipos de teste
Garantia de que todos os itens de configuração foram
devidamente testados, avalidos, aceitos e estão disponíveis no
novo baseline
Processo iterativo/incremental produz, em geral, mais
de um release
36/113
Tipos de release


Normalmente, releases estão associados aos
milestones do plano de projeto
Internos
 Controle
de qualidade, acompanhamento de
projeto, controle de riscos, aceitação, aquisição
de conhecimento através da coleta de
feedbacks, desenho da estratégia de
implantação

Externos
 Implantado
e utilizado pelo cliente
37/113
Tags


Rótulos que são associados a conjuntos de
arquivos
Um tag referencia um ou mais arquivos em um
ou mais diretórios
 Costuma-se
usar tags para:
 Denominar
projeto rotulando todos os arquivos
associados ao projeto
 Denominar uma versão do projeto (um build ou
release) rotulando todos os arquivos associados
ao build ou release
38/113
Tags – Cenário 1
raiz
file2
file3
subdir1
file1
file4
file6
subdir2
tag1
tag2
file5
file7
file8
file9
39/113
Tags – Cenário 2
1.1
1.2
1.3
release_1
Histórico
de um
arquivo
1.4
release_2
tag
40/113
Branch



Criação de um fluxo alternativo para
atualização de versões de itens de
configuração
Recurso muito poderoso
Devem existir regras bem definidas para
criação de branches
 Por
que e quando devem ser criados?
 Quais os passos?
 Quando retornar ao fluxo principal?
41/113
Branch (continuação)


Uso de lock inviabiliza a criação de branches
Branches normalmente se originam de
correções em versões anteriores
42/113
Branch (exemplo)
Maria
hello.c
1
hello.h
1
José
2
hello.c
3.m.1 3.m.2 3.m.3
hello.h
2.m.1
3 •
2
4
2.m.2
5
• 3
hello.c
3.j.1
hello.h
2.j.1
6
4
3.j.2
3.j.3
2.j.2
43/113
Merge




Unificação de diferentes versões de um mesmo item de
configuração
Integração dos itens de configuração de um branch
com os itens de configuração do fluxo principal
Check-out atualizando a área local
Algumas ferramentas fornecem um mecanismo
automático para realização de merges

Mesmo com o uso de ferramentas, em vários casos há
necessidade de intervenção humana
44/113
Merge (exemplo)
hello.c
3.m.1 3.m.2 3.m.3
hello.h
2.m.1
Maria
hello.c
3
hello.h
2
José
•
•
hello.c
3.j.1
hello.h
2.j.1
2.m.2
4
5
3
4
3.j.2
3.j.3
3.j.4
2.j.2
2.j.3
45/113
Branching e Merging: esquema
gráfico
Branch
patch
1.2.2.1
1.1
1.2
tag
1.2.2.2
1.3
1.4
release_2
release_1
Tronco principal
de
desenvolvimento
tag
Merge
46/113
Oportunidades criadas com GC

Reuso de itens de software
Artefatos
 Componentes


Automação de processo
Construção de builds
 Geração de releases
 Testes
 Integração




Aumento da produtividade das equipes
Redução de re-trabalho
Melhoria do acompanhamento do projeto
47/113
Controle de Mudanças
48/113
Contexto



Desenvolvimento iterativo/incremental
Novos conjuntos de requisitos, detalhados a
cada iteração
Mudanças em estratégias de negócio
motivadas pelas mais diversas fontes:
mercado, cultura, leis, etc
49/113
Problemas

Controle do escopo do projeto
Modificações podem ampliar o leque de funcionalidades
e aumentar significativamente o custo do projeto
 Atrasos em entregas planejadas


Controle de consistência dos artefatos
Uma mudança aparentemente localizada pode causar
muito mais impacto do que o previsto
 Degradação da qualidade do software (ex: abandono dos
testes automatizados devido à inconsistência dos dados
de teste)
 Retrabalho

50/113
O que é Gerência de Mudanças?


Gerência de Mudanças é o processo de avaliar,
coordenar e decidir sobre a realização de
mudanças propostas a itens de configuração
(ICs)
Mudanças aprovadas são implementadas nos
itens de configuração e nos dados e
documentos relacionados
51/113
Objetivos da Gerência de Mudanças



Garantir que os artefatos do sistema alcançam e
mantêm uma estrutura definida através do seu ciclo de
vida
Definir procedimentos e documentação necessários
para realizar modificações a ICs
Prover os mecanismos necessários para
conduzir mudanças de uma maneira
controlada
52/113
Benefícios


Controle sobre o escopo do projeto
Mais produtividade
cada solicitação será tratada de forma coordenada
 Redução dos problemas de comunicação entre membros
da equipe



Mais qualidade, uma vez que cada mudança, antes de
ser realizada, tem seu impacto avaliado
Geração de dados para o acompanhamento (tracking)
do projeto
53/113
Controle do caos
Controle de mudanças
Solicitação de mudança
Projeto
Organização
54/113
Ciclo de vida de um artefato
55/113
Ciclo de vida de um artefato
Concepção do
artefato
Revisão/aceitação
(baseline)
Draft
Mudanças feitas
de forma informal
Release
Aceito
Mudanças via
controle formal
(CCB)
Manutenção
Mudanças em
manutenção
56/113
Artefato Draft




Mudanças freqüentes e rápidas
Demanda por agilidade
Controle formal dificulta a criação do artefato
Artefatos apenas gerenciados e controlados
 Uso
de controle de versão (CVS, Clear Case,
entre outras ferramentas)
57/113
Artefato Aceito




Artefato seguiu um processo de revisão, testes
(se aplicável) e aceitação
Inserido dentro do processo de controle de
mudanças, tornando-se de fato item de
configuração
Mudanças via solicitação formal
Presença do grupo gestor de mudanças (CCB)
para avaliar e priorizar mudanças
58/113
Artefato em Manutenção




Após a entrega de uma versão do produto, os
artefatos passam para a fase de manutenção
Controle de mudanças permanece formal para
os artefatos de um baseline
Novas artefatos podem ser desenvolvidos
usando o mesmo modelo de ciclo de vida
Sistema pode ser descontinuado ou removido
do ambiente de produção
59/113
Processo de Gerência de
Mudanças
60/113
Motivação



Mudança é inevitável
Mudar é fácil – controlar diversas mudanças
simultâneas é difícil
A gerência de mudanças introduz controle
sobre as mudanças de maior relevância
 Todas
as mudanças são analisadas
 Apenas as aprovadas são realizadas
 Sempre se sabe quem modificou o que, onde e
quando
61/113
Responsabilidades do CCB





Analisar as solicitações de mudança
Controlar o escopo do projeto
Reuniões com freqüência adequada ao ritmo das
solicitações de mudança
Envolver stakeholders no processo de priorização no
processo de decisão
Balanço entre o nível de controle desejado e overhead
suportado

Questões menores devem ser resolvidas pelo líder do
projeto junto à equipe, reduzindo o overhead do CCB
62/113
Características do CCB

Composição multidisciplinar
 SQA,


gerente, cliente, arquiteto
Profissionais com grande capacidade de
comunicação e negociação
Pode apresentar uma estrutura hierarquica
dependendo do tamanho e da quantidade de
stakeholders e sistemas envolvidos
(integrações)
63/113
Análise de impacto





Mudanças de grande impacto devem ser comunicadas
aos stakeholders envolvidos
Análises de custo x benefício produzidas pelos
stakeholders
Priorização de mudanças
Mudança pode ser rejeitada se o CCB perceber que o
custo será mais caro que o benefício percebido
Por questões de eficiência, algumas solicitações de
mudança podem ser agrupadas por tema, subsistema
ou área de negócio
64/113
Importância da análise de impacto


Dentro do projeto
Análises inter-sistemas também devem ser
consideradas

Exemplo: frameworks, componentes ou bancos de dados
compartilhados
Requisitos
A&P
Componentes 65/113
Sobre o Processo de Gerência de
Mudanças




Deve ser definido um documento padrão para que
mudanças possam ser solicitadas
Esse documento normalmente se chama Solicitação de
Mudança (SM, Em inglês CR)
A um conjunto de pessoas (CCB), deve ser dada a
autoridade para decidir se uma mudança será ou não
implementada
O processo é necessário para garantir que apenas
mudanças avaliadas e aprovadas são realizadas em
ICs
66/113
Solicitações de Mudança

Algumas informações que podem estar incluídas em
uma SM:
Identificação única
 Solicitante
 Sistema/Projeto
 Item a ser modificado
 Classificação (melhoria, correção de defeito, outra)
 Prioridade
 Descrição
 Situação (nova, atribuída, finalizada, verificada, fechada)

67/113
Estrutura de um registro de
solicitação de mudança
1. IDENTIFICADOR DA SOLICITAÇÃO
<Um código (normalmente numérico) que identifica unicamente a
solicitação de mudança.>
2. IDENTIFICAÇÃO DO SOLICITANTE
<O nome do indivíduo que solicitou a mudança, possivelmente
incluindo informação adicional como posição, matrícula, etc.>
3. SISTEMA DESENVOLVIDO
3.1. NOME DO SISTEMA
<O nome do sistema no qual está sendo solicitada a
mudança.>
3.2. NOME DO MÓDULO
<O nome do módulo no qual a mudança está sendo
solicitada.>
3.3. NOME DA FUNCIONALIDADE
<O nome da funcionalidade na qual a mudança será efetuada.>
68/113
Estrutura de um registro de
solicitação de mudança
4. CLASSIFICAÇÃO
<O tipo de mudança que está sendo solicitada. Normalmente três tipos de
mudança são realizados: adição de nova funcionalidade, melhoria de
funcionalidade já existente e correção de defeitos. Também é comum que a
classificação seja feita com relação à natureza da mudança. Por exemplo:
mudança de requisitos, de projeto, de implementação, etc.>
5. DESCRIÇÃO
<Uma descrição da mudança que está sendo solicitada. A descrição deve
ser o mais não-ambígua e objetiva possível. Ao mesmo tempo, deve incluir
toda informação necessária para implantar a mudança.>
6. STATUS
<A situação atual da mudança. Por exemplo: aprovada, rejeitada, em
implantação, postergada, etc. Essa informação deve ser mantida sempre
atualizada.>
7. OBSERVAÇÕES GERAIS
<Informações adicionais sobre a solicitação de mudança. Por exemplo: se
o solicitante já souber de módulos que serão afetados pela implantação da
mudança, pode enumerá-los nesta seção.>
69/113
Etapas do Processo de Gerência de
Mudanças Genérico
CCB
4.Negociação sobre
a realização da
mudança
1. Requisição
da mudança
6. Verificação
da mudança
(mudança aceita)
2. Classificação
da mudança
3. Avaliação
da mudança
5. Implementação
da mudança
7. Promoção dos
itens modificados
para um novo
baseline
70/113
Correções Emergenciais




Em algumas situações, não há tempo para seguir os
procedimentos padrão para a realização de mudanças
Defeitos não são normalmente processados pelo CCB,
salvo se envolverem algum questionamento relativo ao
escopo do projeto
Mesmo nessas situações, porém, é muito importante
que seja criada uma solicitação de mudança
O objetivo é garantir um mínimo de ordem, mesmo em
uma situação caótica
71/113
Correções Emergenciais


Mudanças realizadas nessas circunstâncias
podem comprometer a arquitetura ou inserir
bugs
Decisão:
 Desfazer
correção ou
 Transformar a correção: refactoring, acréscimo
de novos casos de teste
72/113
Exemplos de Status dos Defeitos
Estados Abertos
Próximos Estados
NEW
Bug inserido por
alguém (automático)
Aceito a ASSIGNED
Reatribuído a NEW
Resolvido a RESOLVED
ASSIGNED
Atribuído à pessoa
apropriada
Reatribuído a NEW
Resolvido a RESOLVED
REOPENED
Reaberto: foi
constatado que
ainda não tinha sido
resolvido
Aceito a ASSIGNED
Reatribuído a NEW
Resolvido a RESOLVED
UNCONFIRMED
Não confirmado que
existe
Confirmado a NEW
Resolvido a RESOLVED
73/113
Exemplos de Status dos Defeitos
Estados Fechados
Próximos Estados
RESOLVED
Foi resolvido (só
está esperando
a homologação)
Não foi resolvido a REOPENED
Está ok a VERIFIED
Está ok e pode ser fechado a
CLOSED
VERIFIED
A correção foi
homologada
Defeito é fechado a CLOSED
CLOSED
O bug é tido
como resolvido
Não foi resolvido a REOPENED
74/113
Release notes



Relação de solicitações de mudanças implementadas e
testadas
Pode ser parcialmente automatizado
Comentários adicionais

Limitações atuais, problemas não resolvidos
Id
Descrição
1
Problema de performance na
validação de pedido
2
Nova rotina de validação de crédito
conforme normas de dezembro de
2002
…
…
75/113
Desafios

Cultura organizacional
 Agrupamento
de solicitações em releases bem
definidos e estabelecidos deve ser negociado
com os stakeholders do projeto
 Releases internos utilizados de forma efetiva
como ferramenta de gestão de projeto

Integração entre sistemas de controle de
versão e mudanças
76/113
Ferramentas de Apoio à Gerência
de Configuração
Ferramenta de Controle de Versões (CVS, por exemplo)
Manter todos os arquivos em um repositório central

Controlar o acesso a esse repositório, de modo a
garantir a consistência dos artefatos
Ferramentas de Geração de Builds (Ant, por exemplo)


Automatizar o processo de geração de builds
Ferramentas de Gestão de Solicitações de Mudanças
(Bugzilla, por exemplo)

Automatizar o processo de submissão e gestão de SMs
77/113
Gerência de Configuração no
Desenvolvimento Iterativo Relação com as Fases e
Disciplinas de
Desenvolvimento do RUP
78/113
Fases, iterações e disciplinas
Fases
Fluxos de Atividades
Concepção
Elaboração
Iteração
Preliminar
Iter.
#1
Construção
Transição
Requisitos.......................................
Análise e Projeto............................
Implementação...............................
Testes.............................................
Implantação...................................
Fluxos de Suporte
Planejamento e Gerenciamento.....
Gerência de Configuração e Mudanças
Iter.
#2
Iter.
#i
Iter.
#i+1
Iter.
#i+2
Iter.
#n
Iter.
#n+1
Iterações
79/113
Relação com as Fases de
Desenvolvimento e com as Outras
Disciplinas




Tem uma maior concentração na fase de concepção
Nas iterações das fases seguintes, o nível de esforço é
mantido constante
Acontece em paralelo e com uma forte integração com
a disciplina de planejamento e gerenciamento
Algumas atividades relacionadas com a gerência da
configuração ocorrem em outras disciplinas como a
implementação e a implantação
80/113
Atividades, Artefatos e
Responsabilidades da
Disciplina Gerência de
Configuração
81/113
Objetivos deste módulo


Apresentar atividades da Disciplina de
Gerrência de Configuração
Discutir os artefatos e responsáveis envolvidos
na realização das atividades da disciplina
82/113
Fluxo de Atividades
Solicitante
Gerente de
Configuração
e Ambiente
CCB
Submeter
solicitações de
mudanças
Definir
ferramentas e
equipamentos
Estruturar
ambiente
Analisar
solicitações de
mudanças
Planejar
gerência de
configuração
Implantar e
administrar
ambiente
83/113
Objetivos do Fluxo

Definir
 Recursos
de hardware e software
 Política de atualização destes recursos
 Estruturação de diretórios e repositórios
 Plataforma de desenvolvimento
 Política de utilização do ambiente
 As atividades de Gerência de Configuração que
deverão ser realizadas e em que momentos do
desenvolvimento
84/113
Responsáveis e Artefatos
Gerente de
Configuração
Solicitante
CCB
Documento de
Definição de
Ambiente
Registro de
Solicitação de
Mudanças
Registro de
Solicitação de
Mudanças
Plano de Gerência
de Configuração de
Software
85/113
Gerente de Configuração




Responsável pela definição dos equipamentos
e softwares utilizados e suas configurações
Define o ambiente, regras de uso do mesmo e
política de mudanças
Define os papéis dos membros da equipe
responsáveis pelas atividades de gerência de
configuração
Estabelece as atividades de gerência de
configuração que serão realizadas
86/113
Solicitante

Qualquer pessoa que possa fazer uma
solicitação de Mudanças
87/113
CCB

Grupo Responsável por analisar e autorizar
uma solicitação de mudanças
88/113
Artefato – Documento de Definição
de Ambiente
1. INTRODUÇÃO
<Descreva os objetivos do documento>
2. INFRA-ESTRUTURA
2.1. FERRAMENTAS
<Descreva que ferramentas serão usadas por todos os
envolvidos no projeto durante o seu desenvolvimento,
fornecendo uma breve descrição de cada uma e a
quantidade de licenças disponíveis>
2.2. EQUIPAMENTOS
<Descreva que equipamentos serão usadas durante o
desenvolvimento do sistema, detalhando suas
configurações>
3. ORGANIZAÇÃO FÍSICA
<Forneça uma breve descrição da estrutura física do local
onde o sistema será desenvolvido>
89/113
Artefato – Documento de Definição
de Ambiente
4. PADRÃO DE NOMENCLATURA DE ARTEFATOS
<Descreva qual será a convenção utilizada para nomear os
artefatos, em inglês ou português>
5. AMBIENTE LOCAL
5.1. ESTRUTURA DE DIRETÓRIOS
5.2. INFORMAÇÕES ADICIONAIS
6. AMBIENTE DE HOMOLOGAÇÃO E TESTES
6.1. ESTRUTURA DE DIRETÓRIOS
6.2. INFORMAÇÕES ADICIONAIS
7. AMBIENTE DE PRODUÇÃO
7.1. ESTRUTURA DE DIRETÓRIOS
7.2. INFORMAÇÕES ADICIONAIS
8. ARQUIVOS DE CONFIGURAÇÂO
<Descreva os arquivos utilizados para configuração e uso do
sistema>
90/113
Artefato – Documento de Definição
de Ambiente
9. PROMOÇÂO ENTRE AMBIENTES E BACKUPS
<Defina a política para promoção dos artefatos entre os
ambientes e realização de backups>
9.1. AMBIENTE LOCAL
AMBIENTE DE
HOMOLOGAÇÃO E TESTES
<Descreva o procedimento que deve ser usado para transferir
arquivos do ambiente local para o de homologação e testes
9.2. AMBIENTE LOCAL
AMBIENTE DE PRODUÇÃO
<Descreva o procedimento que deve ser usado para realizar a
transferência de arquivos entre o ambiente de homologação e
testes e o ambiente de produção>
10. POLÍTICA DE BACKUP
<Descreva o procedimento que deve ser usado para realização
de backups em cada um dos ambientes>
11. AVALIAÇÃO E REVISÃO DO AMBIENTE
<Descreva as modificações que serão necessárias no ambiente
para o desenvolvimento do projeto>
12. REFERÊNCIAS
91/113
Artefato – Plano de Gerência de
Configuração de Software
1. INTRODUÇÃO
<Descreva os objetivos do documento, forneça definições de
termos necessários para o entendimento do mesmo e liste algumas
referências interessantes.>
2. GERENCIAMENTO DA GERÊNCIA DE CONFIGURAÇÃO DE
SOFTWARE
2.1. ORGANIZAÇÃO
<Deve ser descrita nesta seção a estrutura da equipe de GCS e
como ela se encaixa na estrutura da organização com relação a
outras equipes>
2.2. RESPONSABILIDADES
<Defina nesta seção os deveres e responsabilidades daqueles
que estiverem envolvidos com as atividades de GCS.>
2.3. RELAÇÃO COM AS FASES DO DESENVOLVIMENTO
E OUTROS FLUXOS DE ATIVIDADES
<Nesta seção são relacionadas as atividades de GCS com as
diferentes etapas do ciclo de vida do desenvolvimento de
92/113
software.>
Artefato – Plano de Gerência de
Configuração de Software
3. ATIVIDADES DA GERÊNCIA DE CONFIGURAÇÃO DE
SOFTWARE
3.1. IDENTIFICAÇÃO DA CONFIGURAÇÃO
<Esta seção descreve como identificar, nomear e adquirir os
itens de configuração do sistema.>
3.1.1. Identificação de itens de configuração
3.1.2. Nomeação dos itens de configuração
3.1.3. Aquisição e armazenamento de itens de
configuração
3.1.4. Gerenciamento de baselines
3.2. CONTROLE DA CONFIGURAÇÃO
<Nesta seção deve ser descrito o processo de gerência de
mudanças. Normalmente, essa informação é colocada em um
documento a parte chamado Documento de Políticas de
Mudanças. Aqui deve apenas ser incluído um apontador para
esse documento.>
93/113
Artefato – Plano de Gerência de
Configuração de Software
3.3. REGISTRO DO STATUS DA CONFIGURAÇÃO
<Esta seção lida com os detalhes de registrar o status de
cada item de configuração e apresentar essa informação aos
indivíduos que precisam saber sobre ela.>
3.1.1. Identificação das necessidades de informação
3.1.2. Mecanismos de coleta de informações
3.1.3. Relatórios, seus conteúdos e frequências
3.1.4. Acesso a dados de registro de status
3.4. AUDITORIA DA CONFIGURAÇÃO
<Esta seção descreve os tipos de auditoria que serão
realizados, o procedimento de auditoria, a freqüência e
qualquer outra informação relevante.>
3.1.1. Auditorias que devem ser realizadas
3.1.2. Procedimentos de auditoria
94/113
Artefato – Plano de Gerência de
Configuração de Software
4. AGENDA DA GERÊNCIA DE CONFIGURAÇÃO
<Esta seção descreve a seqüência de atividades de GCS, suas
interdependências e a relação com o ciclo de vida do projeto.>
5. RECURSOS DE GERÊNCIA DE CONFIGURAÇÃO
<Indique nesta seção as ferramentas de software, técnicas,
equipamentos, pessoas e treinamentos necessários para a
implementação das atividades de gerência de configuração
especificadas.>
6. MANUTENÇÃO DO PLANO DE GERÊNCIA DE
CONFIGURAÇÃO DE SOFTWARE
<Esta seção descreve as atividades que são necessárias para
manter o plano atualizado durante o ciclo de vida do projeto.>
95/113
Definir Ferramentas e
Equipamentos
Solicitante
Gerente de
Configuração
e Ambiente
CCB
Submeter
solicitações de
mudanças
Definir
ferramentas e
equipamentos
Estruturar
ambiente
Analisar
solicitações de
mudanças
Planejar
gerência de
configuração
Implantar e
administrar
ambiente
96/113
Definir Ferramentas e
Equipamentos(continuação)

Objetivos
 Definir
ferramentas de suporte ao
desenvolvimento, controle de versões e
softwares em geral
 Definir hardwares e suas configurações
 Definir regras para atualizações de hardware e
software

Responsável
 Gerente
de configuração
97/113
Definir Ferramentas e
Equipamentos(continuação)

Entradas
 Documento
de requisitos
 Lista de riscos
 Estudo de viabilidade

Saídas
 Documento
de definição de ambiente
 Plano de gerência de configuração de software
98/113
Passos para Definir Ferramentas e
Equipamentos



Definir plataformas de desenvolvimento
Definir ferramentas
Definir equipamentos e suas configurações
99/113
Estruturar Ambiente
Solicitante
Gerente de
Configuração
e Ambiente
CCB
Submeter
solicitações de
mudanças
Definir
ferramentas e
equipamentos
Estruturar
ambiente
Analisar
solicitações de
mudanças
Planejar
gerência de
configuração
Implantar e
administrar
ambiente
100/113
Estruturar Ambiente(continuação)

Objetivos
 Determinar
a estrutura de diretórios que será
adotada para o projeto
 Definir os diferentes ambientes
(desenvolvimento, integração, testes, produção)
 Definir a política de uso do ambiente

Responsável
 Gerente
de configuração
101/113
Estruturar Ambiente(continuação)

Entradas
 Documento
de definição de ambiente
 Plano de gerência de configuração de software

Saídas
 Documento
de definição de ambiente
(atualizado)
 Plano de gerência de configuração de software
(atualizado)
102/113
Passos para Estruturar Ambiente


Definir estrutura de diretórios, repositórios e
áreas de backup
Definir política para utilização do ambiente
103/113
Planejar Gerência de Configuração
Solicitante
Gerente de
Configuração
e Ambiente
CCB
Submeter
solicitações de
mudanças
Definir
ferramentas e
equipamentos
Estruturar
ambiente
Analisar
solicitações de
mudanças
Planejar
gerência de
configuração
Implantar e
administrar
ambiente
104/113
Planejar Gerência de Configuração
(continuação)

Objetivos
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


Responsável

Gerente de configuração
105/113
Planejar Gerência de Configuração
(continuação)

Entradas
 Plano

de gerência de configuração de software
Saídas
 Plano
de gerência de configuração de software
(atualizado)
106/113
Passos para Planejar Gerência de
Configuração







Definir organização, papéis e responsabilidades
Definir políticas e procedimentos para registro do status
da configuração
Definir esquema de nomeação para itens de
configuração
Identificar e registrar itens de configuração
Planejar auditorias
Definir baselines
Definir cronograma de gerência de configuração
107/113
Implantar e Administrar Ambiente
Solicitante
Gerente de
Configuração
e Ambiente
CCB
Submeter
solicitações de
mudanças
Definir
ferramentas e
equipamentos
Estruturar
ambiente
Analisar
solicitações de
mudanças
Planejar
gerência de
configuração
Implantar e
administrar
ambiente
108/113
Implantar e Administrar Ambiente
(continuação)

Objetivos
 Implantar
o ambiente com base na estrutura
definida na atividade anterior
 Gerenciar a utilização do ambiente de acordo
com as normas propostas (através de
auditorias)
 Avaliar e revisar o ambiente

Responsável
 Gerente
de configuração
109/113
Implantar e Administrar Ambiente
(continuação)

Entradas
 Documento
de definição de ambiente
 Plano de gerência de configuração de software

Saídas
 Documento
de definição de ambiente
(atualizado)
 Plano de gerência de configuração de software
(atualizado)
110/113
Passos para Implantar e
Administrar Ambiente



Instalar máquinas e criar diretórios
Disseminar política de utilização do ambiente
Gerenciar e avaliar ambiente
111/113
Conclusões


GC é um fluxo de apoio ao projeto como um
todo
Requer uma certa disciplina na manipulação de
itens de configuração e apoio de ferramentas
sempre que possível
112/113
Referências



Descrição do workflow de gerência de
configuração e mudanças do RUP
Configuration Management Today http://cmtoday.com
Software Release Methodology, M.E.Bays,
Prentice Hall, 1999.
113/113
Download

Curso de Gerência de Configuração e Mudanças