Escolar Documentos
Profissional Documentos
Cultura Documentos
1/113
Compreender a importncia do uso de mecanismos de gerncia de configurao e de mudana, seus mtodos, processos e ferramentas. Fornecer os principais conceitos relacionados a GC. Criar uma viso geral de como GC pode ser aplicada a um projeto de software.
2/113
Desenvolvedor C
3/113
4/113
Programa de A A1 A2 A3
Componente Compartilhado
Programa de B B1 B2 B3
5/113
O desenvolvedor A modifica o componente compartilhado Mais tarde, o desenvolvedor B realiza algumas alteraes no mesmo Ao tentar compilar o componente, erros so apontados pelo compilador, mas nenhum deles ocorre na parte que B alterou O desenvolvedor B no tem a menor idia sobre a causa do problema
6/113
Soluo simplista:
cada
desenvolvedor trabalha em uma cpia local do componente resolve o Problema dos Dados Compartilhados, mas cria um novo problema
7/113
Programa de A A1 A2 A3
Componente Compartilhado
Componente Compartilhado
Programa de B B1 B2 B3
Ocorre quando cada desenvolvedor trabalha com uma cpia local do que seria o mesmo componente Dificuldade para saber:
Que funcionalidades foram implementadas em quais verses do componente Que defeitos foram corrigidos
9/113
Desenvolvedor A
Componente Compartilhado
Desenvolvedor B
Programa de A A1 A2 A3
Programa de B B1 B2 B3
10/113
O desenvolvedor A encontra e corrige um defeito em sua verso 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 verso do componente por no saber que A j tinha feito isso O trabalho de A desperdiado
11/113
O desenvolvedor A encontra e corrige um defeito em sua verso 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 verso do componente, sem saber do defeito corrigido por A O desenvolvedor B copia sua verso do componente para a biblioteca central Alm de o trabalho de A ser desperdiado, a verso 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 atualizao simultnea no pode ser resolvido simplesmente copiando componentes compartilhados para uma biblioteca central Algum mecanismo de controle necessrio para gerenciar a entrada e sada dos componentes
13/113
Gerncia de configurao (GC) o processo de identificar, organizar e controlar modificaes ao software sendo construdo A idia maximizar a produtividade minimizando os enganos
14/113
Objetivos de GC
Definir o ambiente de desenvolvimento Definir polticas para controle de verses, garantindo a consistncia dos artefatos produzidos Definir procedimentos para solicitaes de mudanas Administrar o ambiente e auditar mudanas Facilitar a integrao das partes do sistema
15/113
Benefcios
Aumento de produtividade no desenvolvimento Menores Custos de Manuteno Reduo de defeitos Maior rapidez na identificao e correo de problemas
16/113
Conceitos Bsicos
17/113
Configurao
(cdigo fonte, programas executveis, bibliotecas de componentes, etc.) Documentao (manuais do usurio, documento de requisitos, modelo de anlise e projeto, etc.) Dados (dados de teste e do projeto)
Item de Configurao
Um conjunto de itens de hardware e/ou software vistos como uma entidade nica para fins de gerncia de configurao Um item de configurao est sujeito a mudanas e essas devem obedecer s polticas estabelecidas Normalmente, um item de configurao estabelecido para cada pedao de software que pode ser projetado, implementado e testado de forma independente
19/113
Configurao de Software
item
fluxo de desenvolvimento
tempo
20/113
Baseline
A configurao do software em um ponto discreto no tempo S pode ser modificado atravs de procedimentos formais (solicitaes de mudana) Um artefato ou conjunto de artefatos s se torna um item de configurao depois que um baseline estabelecido
21/113
Baseline
item
fluxo de desenvolvimento
tempo
22/113
Baselines importantes
24/113
Repositrio
Local (fsico e lgico) onde os itens de um sistema so guardados Pode conter diversas verses do sistema Utiliza mecanismos de controle de acesso
Desenvolvedor
Repositrio
25/113
Lock
Resolve a Atualizao Simultnea Garante que apenas o usurio que detm o lock pode alterar o arquivo Problema: serializa o trabalho dos desenvolvedores
26/113
Check-Out
Check-out
cliente
Repositrio
27/113
Check-Out (continuao)
que ningum detm o lock do item de configurao Obtm o lock do item Cria uma cpia, para edio, no cliente
Leitura
Verifica
que algum j detm o lock Cria uma cpia, apenas para leitura, no cliente
28/113
Check-In
Check-in
cliente
Repositrio
29/113
Check-In (continuao)
o lock do item de configurao, caso o mesmo j exista Verifica e incrementa a verso do item Registra informaes das mudanas (autor, data, hora, comentrios) Inclui/atualiza o item
30/113
Build
Representa uma verso ainda incompleta do sistema em desenvolvimento, mas com certa estabilidade Costuma apresentar limitaes conhecidas Espao para integrao de funcionalidades Inclue no s cdigo fonte, mas documentao, arquivos de configurao, base de dados, etc. A poltica de gerao dos builds deve ser bem definida na estruturao do ambiente
31/113
Fazer os builds do sistema manualmente muito demorado Pode ser difcil saber qual a verso correta de um arquivo Os pedaos do sistema podem estar em diversos locais diferentes
Alguns
32/113
poucas vezes, apenas perto de sua implantao Feita em freqncia inversamente proporcional complexidade do sistema
34/113
Considerada uma das melhores prticas no desenvolvimento de software A gerao de builds deve ser automatizada e realizada com freqncia adequada
35/113
Release
Identificao 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
Verso do sistema validada aps os diversos tipos de teste Garantia de que todos os itens de configurao foram devidamente testados, avalidos, aceitos e esto disponveis no novo baseline
Tipos de release
de qualidade, acompanhamento de projeto, controle de riscos, aceitao, aquisio de conhecimento atravs da coleta de feedbacks, desenho da estratgia de implantao
e utilizado pelo cliente
37/113
Externos
Implantado
Tags
Rtulos que so associados a conjuntos de arquivos Um tag referencia um ou mais arquivos em um ou mais diretrios
Costuma-se
Denominar
projeto rotulando todos os arquivos associados ao projeto Denominar uma verso do projeto (um build ou release) rotulando todos os arquivos associados ao build ou release
38/113
Tags Cenrio 1
raiz file2 file3 file1 file4 file6 subdir2
subdir1
tag1 tag2
Tags Cenrio 2
1.1
1.2 release_1
1.3
1.4 release_2
Histrico de um arquivo
tag
40/113
Branch
Criao de um fluxo alternativo para atualizao de verses de itens de configurao Recurso muito poderoso Devem existir regras bem definidas para criao de branches
Por
que e quando devem ser criados? Quais os passos? Quando retornar ao fluxo principal?
41/113
Branch (continuao)
Uso de lock inviabiliza a criao de branches Branches normalmente se originam de correes em verses anteriores
42/113
Branch (exemplo)
Maria hello.c hello.h 3.m.1 3.m.2 3.m.3 2.m.1 2.m.2
1
1
3
2 hello.c hello.h
4
3
6
4
3.j.1
2.j.1
3.j.2
3.j.3
2.j.2
43/113
Merge
Unificao de diferentes verses de um mesmo item de configurao Integrao dos itens de configurao de um branch com os itens de configurao do fluxo principal Check-out atualizando a rea local Algumas ferramentas fornecem um mecanismo automtico para realizao de merges
44/113
Merge (exemplo)
hello.c 3.m.1 3.m.2 3.m.3 2.m.1 2.m.2 4 3 3.j.1 2.j.1 3.j.2 3.j.3 2.j.2 5 4
Maria
hello.h hello.c hello.h 3 2 hello.c Jos hello.h
3.j.4
2.j.3
45/113
1.1
1.2 release_1
1.3
1.4 release_2
tag
Merge
46/113
Automao de processo
Construo de builds Gerao de releases Testes Integrao
Controle de Mudanas
48/113
Contexto
Desenvolvimento iterativo/incremental Novos conjuntos de requisitos, detalhados a cada iterao Mudanas em estratgias de negcio motivadas pelas mais diversas fontes: mercado, cultura, leis, etc
49/113
Problemas
50/113
Gerncia de Mudanas o processo de avaliar, coordenar e decidir sobre a realizao de mudanas propostas a itens de configurao (ICs) Mudanas aprovadas so implementadas nos itens de configurao e nos dados e documentos relacionados
51/113
Garantir que os artefatos do sistema alcanam e mantm uma estrutura definida atravs do seu ciclo de vida Definir procedimentos e documentao necessrios para realizar modificaes a ICs Prover os mecanismos necessrios para conduzir mudanas de uma maneira controlada
52/113
Benefcios
Mais qualidade, uma vez que cada mudana, antes de ser realizada, tem seu impacto avaliado Gerao de dados para o acompanhamento (tracking) do projeto
53/113
Controle do caos
Controle de mudanas Solicitao de mudana
Projeto
Organizao
54/113
55/113
Draft
Aceito
Manuteno
Mudanas em manuteno
56/113
Artefato Draft
Mudanas freqentes e rpidas Demanda por agilidade Controle formal dificulta a criao do artefato Artefatos apenas gerenciados e controlados
Uso
57/113
Artefato Aceito
Artefato seguiu um processo de reviso, testes (se aplicvel) e aceitao Inserido dentro do processo de controle de mudanas, tornando-se de fato item de configurao Mudanas via solicitao formal Presena do grupo gestor de mudanas (CCB) para avaliar e priorizar mudanas
58/113
Artefato em Manuteno
Aps a entrega de uma verso do produto, os artefatos passam para a fase de manuteno Controle de mudanas 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 produo
59/113
60/113
Motivao
Mudana inevitvel Mudar fcil controlar diversas mudanas simultneas difcil A gerncia de mudanas introduz controle sobre as mudanas de maior relevncia
Todas
as mudanas so analisadas Apenas as aprovadas so realizadas Sempre se sabe quem modificou o que, onde e quando
61/113
Responsabilidades do CCB
Analisar as solicitaes de mudana Controlar o escopo do projeto Reunies com freqncia adequada ao ritmo das solicitaes de mudana Envolver stakeholders no processo de priorizao no processo de deciso Balano entre o nvel de controle desejado e overhead suportado
Questes menores devem ser resolvidas pelo lder do projeto junto equipe, reduzindo o overhead do CCB
62/113
Caractersticas do CCB
Composio multidisciplinar
SQA,
Profissionais com grande capacidade de comunicao e negociao Pode apresentar uma estrutura hierarquica dependendo do tamanho e da quantidade de stakeholders e sistemas envolvidos (integraes)
63/113
Anlise de impacto
Mudanas de grande impacto devem ser comunicadas aos stakeholders envolvidos Anlises de custo x benefcio produzidas pelos stakeholders Priorizao de mudanas Mudana pode ser rejeitada se o CCB perceber que o custo ser mais caro que o benefcio percebido Por questes de eficincia, algumas solicitaes de mudana podem ser agrupadas por tema, subsistema ou rea de negcio
64/113
Requisitos
A&P Componentes 65/113
Deve ser definido um documento padro para que mudanas possam ser solicitadas Esse documento normalmente se chama Solicitao de Mudana (SM, Em ingls CR) A um conjunto de pessoas (CCB), deve ser dada a autoridade para decidir se uma mudana ser ou no implementada O processo necessrio para garantir que apenas mudanas avaliadas e aprovadas so realizadas em ICs
66/113
Solicitaes de Mudana
67/113
<O nome do indivduo que solicitou a mudana, possivelmente incluindo informao adicional como posio, matrcula, etc.>
3. SISTEMA DESENVOLVIDO
3.1. NOME DO SISTEMA <O nome do sistema no qual est sendo solicitada a mudana.> 3.2. NOME DO MDULO <O nome do mdulo no qual a mudana est sendo solicitada.> 3.3. NOME DA FUNCIONALIDADE <O nome da funcionalidade na qual a mudana ser efetuada.>
68/113
5. DESCRIO
<Uma descrio da mudana que est sendo solicitada. A descrio deve ser o mais no-ambgua e objetiva possvel. Ao mesmo tempo, deve incluir toda informao necessria para implantar a mudana.>
6. STATUS
<A situao atual da mudana. Por exemplo: aprovada, rejeitada, em implantao, postergada, etc. Essa informao deve ser mantida sempre atualizada.>
7. OBSERVAES GERAIS
<Informaes adicionais sobre a solicitao de mudana. Por exemplo: se o solicitante j souber de mdulos que sero afetados pela implanta o da mudana, pode enumer-los nesta seo.>
69/113
6. Verificao da mudana
3. Avaliao da mudana
5. Implementao da mudana
70/113
Correes Emergenciais
Em algumas situaes, no h tempo para seguir os procedimentos padro para a realizao de mudanas Defeitos no so normalmente processados pelo CCB, salvo se envolverem algum questionamento relativo ao escopo do projeto Mesmo nessas situaes, porm, muito importante que seja criada uma solicitao de mudana O objetivo garantir um mnimo de ordem, mesmo em uma situao catica
71/113
Correes Emergenciais
Mudanas realizadas nessas circunstncias podem comprometer a arquitetura ou inserir bugs Deciso:
Desfazer
72/113
Prximos Estados
Aceito a ASSIGNED Reatribudo a NEW Resolvido a RESOLVED
ASSIGNED
REOPENED
UNCONFIRMED
Prximos Estados
No foi resolvido a REOPENED Est ok a VERIFIED Est ok e pode ser fechado a CLOSED Defeito fechado a CLOSED
VERIFIED
CLOSED
74/113
Release notes
Relao de solicitaes de mudanas implementadas e testadas Pode ser parcialmente automatizado Comentrios adicionais
Limitaes atuais, problemas no resolvidos Id 1 2 Descrio Problema de performance na validao de pedido Nova rotina de validao de crdito conforme normas de dezembro de 2002
75/113
Desafios
Cultura organizacional
Agrupamento
de solicitaes em releases bem definidos e estabelecidos deve ser negociado com os stakeholders do projeto Releases internos utilizados de forma efetiva como ferramenta de gesto de projeto
76/113
Manter todos os arquivos em um repositrio central Controlar o acesso a esse repositrio, de modo a garantir a consistncia dos artefatos Ferramentas de Gerao de Builds (Ant, por exemplo)
Gerncia de Configurao no Desenvolvimento Iterativo Relao com as Fases e Disciplinas de Desenvolvimento do RUP
78/113
Fluxos de Atividades
Requisitos....................................... Anlise e Projeto............................ Implementao............................... Testes............................................. Implantao...................................
Concepo
Elaborao
Construo
Transio
Fluxos de Suporte
Planejamento e Gerenciamento..... Gerncia de Configurao e Mudanas
Iterao Preliminar Iter. #1 Iter. #2 Iter. #i Iter. #i+1 Iter. #i+2 Iter. #n Iter. #n+1
Iteraes
79/113
Tem uma maior concentrao na fase de concepo Nas iteraes das fases seguintes, o nvel de esforo mantido constante Acontece em paralelo e com uma forte integrao com a disciplina de planejamento e gerenciamento Algumas atividades relacionadas com a gerncia da configurao ocorrem em outras disciplinas como a implementao e a implantao
80/113
81/113
Apresentar atividades da Disciplina de Gerrncia de Configurao Discutir os artefatos e responsveis envolvidos na realizao das atividades da disciplina
82/113
Fluxo de Atividades
Solicitante
CCB
Estruturar ambiente
83/113
Objetivos do Fluxo
Definir
Recursos
de hardware e software Poltica de atualizao destes recursos Estruturao de diretrios e repositrios Plataforma de desenvolvimento Poltica de utilizao do ambiente As atividades de Gerncia de Configurao que devero ser realizadas e em que momentos do desenvolvimento
84/113
Responsveis e Artefatos
Gerente de Configurao Solicitante CCB
85/113
Gerente de Configurao
Responsvel pela definio dos equipamentos e softwares utilizados e suas configuraes Define o ambiente, regras de uso do mesmo e poltica de mudanas Define os papis dos membros da equipe responsveis pelas atividades de gerncia de configurao Estabelece as atividades de gerncia de configurao que sero realizadas
86/113
Solicitante
87/113
CCB
88/113
2.2. EQUIPAMENTOS
<Descreva que equipamentos sero usadas durante o desenvolvimento do sistema, detalhando suas configuraes>
3. ORGANIZAO FSICA
<Fornea uma breve descrio da estrutura fsica do local onde o sistema ser desenvolvido>
89/113
5. AMBIENTE LOCAL 5.1. ESTRUTURA DE DIRETRIOS 5.2. INFORMAES ADICIONAIS 6. AMBIENTE DE HOMOLOGAO E TESTES 6.1. ESTRUTURA DE DIRETRIOS 6.2. INFORMAES ADICIONAIS 7. AMBIENTE DE PRODUO 7.1. ESTRUTURA DE DIRETRIOS 7.2. INFORMAES ADICIONAIS 8. ARQUIVOS DE CONFIGURAO
<Descreva os arquivos utilizados para configurao e uso do sistema>
90/113
<Descreva o procedimento que deve ser usado para realizar a transferncia de arquivos entre o ambiente de homologao e testes e o ambiente de produo>
AMBIENTE DE PRODUO
12. REFERNCIAS
91/113
2.2. RESPONSABILIDADES
<Defina nesta seo os deveres e responsabilidades daqueles que estiverem envolvidos com as atividades de GCS.>
94/113
95/113
Solicitante
CCB
Estruturar ambiente
96/113
Objetivos
Definir
ferramentas de suporte ao desenvolvimento, controle de verses e softwares em geral Definir hardwares e suas configuraes Definir regras para atualizaes de hardware e software
Responsvel
Gerente
de configurao
97/113
Entradas
Documento
Sadas
Documento
98/113
99/113
Estruturar Ambiente
Solicitante
CCB
Estruturar ambiente
100/113
Estruturar Ambiente(continuao)
Objetivos
Determinar
a estrutura de diretrios que ser adotada para o projeto Definir os diferentes ambientes (desenvolvimento, integrao, testes, produo) Definir a poltica de uso do ambiente
Responsvel
Gerente
de configurao
101/113
Estruturar Ambiente(continuao)
Entradas
Documento
Sadas
Documento
de definio de ambiente
Definir estrutura de diretrios, repositrios e reas de backup Definir poltica para utilizao do ambiente
103/113
Solicitante
CCB
Estruturar ambiente
104/113
Objetivos
Definir os papis e responsabilidades dos membros da equipe responsvel pelas atividades de gerncia de configurao (GC) Definir os baselines que devero ser estabelecidos Definir o cronograma das atividades de GC Definir as polticas, procedimentos e padres que guiaro essas atividades Identificar os itens de configurao
Responsvel
Gerente de configurao
105/113
Entradas
Plano
Sadas
Plano
106/113
Definir organizao, papis e responsabilidades Definir polticas e procedimentos para registro do status da configurao Definir esquema de nomeao para itens de configurao Identificar e registrar itens de configurao Planejar auditorias Definir baselines Definir cronograma de gerncia de configurao
107/113
Solicitante
CCB
Estruturar ambiente
108/113
Objetivos
Implantar
o ambiente com base na estrutura definida na atividade anterior Gerenciar a utilizao do ambiente de acordo com as normas propostas (atravs de auditorias) Avaliar e revisar o ambiente
Responsvel
Gerente
de configurao
109/113
Entradas
Documento
Sadas
Documento
de definio de ambiente
Instalar mquinas e criar diretrios Disseminar poltica de utilizao do ambiente Gerenciar e avaliar ambiente
111/113
Concluses
GC um fluxo de apoio ao projeto como um todo Requer uma certa disciplina na manipulao de itens de configurao e apoio de ferramentas sempre que possvel
112/113
Referncias
Descrio do workflow de gerncia de configurao e mudanas do RUP Configuration Management Today http://cmtoday.com Software Release Methodology, M.E.Bays, Prentice Hall, 1999.
113/113