Beruflich Dokumente
Kultur Dokumente
Gerncia de Configurao
Agenda
Introduo
O que GC?
Introduo
os interesses do cliente mudam, o entendimento dos usurios sobre suas necessidades muda, o ambiente no qual o sistema vai operar muda, a legislao muda, etc.
Tais mudanas exigem alguma forma para evitar o caos durante o processo de desenvolvimento.
4
Problemas Clssicos
O erro corrigido ontem, apareceu novamente hoje! =( A verso entregue ao cliente no foi a verso correta! O que voc est desenvolvendo agora, j est pronto... No estou vendo a sua correo Quais as novas funcionalidades, desde a ltima verso? Quem fez a correo na funcionalidade X? ...
5
Desenvolvedor C
Culturas diferentes Incompatibilidade de vocabulrios Equipes geograficamente distribudas Conhecimento tcnico Dificuldade de expresso Os sistemas produzidos no atendem aos requisitos Desperdcio da fora de trabalho
7
Consequncias
Programa de A A1 A2 A3
Componente Compartilhado
Programa de B B1 B2 B3
8
2.
3.
4.
Cenrio: O desenvolvedor A modifica o componente compartilhado Mais tarde, o desenvolvedor B realiza 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
9
Soluo:
Consequncia:
10
Programa de A
A1
A2
A3
Componente Compartilhado
Componente Compartilhado
Programa de B
B1
B2
B3
11
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
12
Soluo
Biblioteca central de componentes compartilhados Uso: Cada componente copiado para a biblioteca sempre que alterado
Consequncia:
13
Desenvolvedor A
Desenvolvedor B
Programa de A
A1
A2
A3
Programa de B
B1
B2
B3
14
Cenrio 1
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 havia corrigido O trabalho de A desperdiado
15
Cenrio 2
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
16
Cenrio 2 (continuao)
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
17
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 a sada dos componentes
18
um conjunto de atividades de apoio que permite a absoro controlada das mudanas inerentes ao desenvolvimento de software, mantendo a estabilidade na evoluo do projeto.
19
um conjunto de atividades projetadas para controlar as mudanas pela identificao dos produtos do trabalho que sero alterados, estabelecendo um relacionamento entre eles, definindo o mecanismo para o gerenciamento de diferentes verses destes produtos, controlando as mudanas impostas, e auditando e relatando as mudanas realizadas.
Pressman, Software Engineering: A Practitioner's Approach
20
O que mudou e quando? Por que mudou? Quem fez a mudana? Podemos reproduzir esta mudana? O sistema continua ntegro mesmo depois das mudanas?
21
22
Conceitos e Terminologia
Durante o desenvolvimento, todos os elementos produzidos que precisam sofrer controle de verses e de mudanas so os ICs Todo IC deve ser gerenciado - ex:
arquivo de cdigo fonte, documento de texto, projeto de uma placa eletrnica, um CD-ROM de instalao de um SO etc
24
Draft
Aceito
Manuteno
Mudanas em manuteno
25
2. Baseline
Uma 'imagem' de uma verso de cada artefato no repositrio do projeto de desenvolvimento de software Um marco de referncia (checkpoint) Caracterizado pela entrega de um ou mais itens de configurao Reprodutibilidade, rastreabilidade e elaborao de relatrios.
2. Baseline
27
2. Baseline
item fluxo de desenvolvimento
tempo
28
3. Repositrio
Local (fsico e lgico) onde os ICs so armazenados Pode conter diversas verses do sistema Utiliza mecanismos de controle de acesso
Dev. A Dev. B Dev. C
Repositrio
29
3. Repositrio
Lock
Resolve o problema de atualizao simultnea Garante que apenas o usurio que detm o lock pode alterar o arquivo Problema: serializa o desenvolvimento
30
3. Repositrio
Check-in / check-out
31
4. Tag
Rtulos que so associados a conjuntos de arquivos Um tag referencia um ou mais arquivos em um ou mais diretrios
1.1
1.2 release_1
1.3
1.4 release_2
Histrico de um arquivo
tag
32
5. Trunk/Branch
Branch
So ramificaes laterais de verses que se originam de uma reviso da linha principal de desenvolvimento (trunk)
33
5. Trunk/Branch
1.2.1.1 1.2.1.2 1.2.1.3
1.1
1.2
1.3
1.4
1.3.1.1
Trunk tronco principal de desenvolviment o
1.3.1.2
1.3.2.1
1.3.2.2
34
6. Merge
Unificao de diferentes verses de um mesmo item de configurao Integrao dos itens de configurao de um branch com os itens de configura o do fluxo principal Check-out atualizando a rea local Algumas ferramentas fornecem um mecanismo automtico para realizao de merges
35
6. Merge
Merge
1.2.1.1
1.2.1.2
1.1
1.2
release 1
1.3
1.4
release 2
36
Fazer merge do trunk com o branch periodicamente Isto torna o processo de merge mais gerencivel
37
7. 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 gera o dos builds deve ser bem definida na estruturao do ambiente
38
8. 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 Processo iterativo/incremental produz, em geral, mais de um release
39
Processo
Atividades de um processo de GC
40
Atividades do Processo
Planejamento
Definir ferramentas, equipamentos, estruturas de diretrios, repositrios e reas de backup Definir poltica para utilizao do ambiente Definir os papis e responsabilidades Definir os baselines que sero estabelecidos Definir o cronograma das atividades Definir as polticas, procedimentos e padres que guiaro as atividades
41
Atividades do Processo
Identificao de Configurao
Determinar os itens de configurao do software em desenvolvimento Controlar as mudanas no software (contnuo) Saber o status de todos os componentes em desenvolvimento, e saber quais so afetados por quais mudanas
42
Controle de Configurao
Atividades do Processo
Auditoria
Verificar se o que foi desenvolvido atende aos requisitos de uma determinada baseline Verificar se a rastreabilidade entre os itens de configurao est sendo mantida Assegurar que a integridade do escopo do projeto est sendo preservada
43
Processo
44
Mitos
GC papel exclusivo do Engenheiro de Configurao GC s precisa ser adotado por desenvolvedores GC serve apenas para a obteno de certificaes GC perda de tempo, codificao mais importante Somente cdigo precisa ser versionado Uso o CVS/SVN, e assim fao GC corretamente Etc.
45
Ferramentas (1)
Controle de Verso
Sistema para gerenciar as verses dos ICs (e diretrios) Permite: Controle do histrico (metadados e contedo) Trabalho concorrente e isolado (branches) Tagging e recuperao de verses Relatrio de Status (status accounting)
46
Ferramentas (1)
As mais utilizadas
Outras opes
47
Ferramentas (2)
Controle de Mudanas
Registro e Gerenciamento de mudanas no software Permite: Acompanhamento dos estados de cada requisio Controle de acesso Histrico de Alterao Automatizar o processo de submisso e gesto de SMs
48
Ferramentas (2)
As mais utilizadas
Outras opes
49
Ferramentas (3)
Gerao de Builds
Algumas opes
50
Benefcios de GC
Aumento de produtividade no desenvolvimento Reduo nos custos de manuteno Reduo de defeitos Maior rapidez na identificao e correo de problemas Releases mais controlados Reuso de itens de software
Automao de processo
Leitura Recomendada
Pressman Sommerville
52