Escolar Documentos
Profissional Documentos
Cultura Documentos
Configurao e
Mudanas
Prof. Gustavo Carvalho
ghcc@cin.ufpe.br
1
Vamos comear?
5
Falha de Comunicao
( 1 pessoa )
Nenhum canal
de comunicao
( 2 pessoas )
2 canais
de comunicao
( 3 pessoas )
6 canais
de comunicao
Principais razes:
Vocabulrios
incompatveis;
Culturas diferentes;
Conhecimentos tcnicos diferentes;
Distncia geogrfica;
Dificuldade de expresso e entendimento;
Conseqncias:
Os
Dados Compartilhados
Componente A1
Componente B1
Componente A2
Componente B2
Componente C
Desenvolvedor A
programando seu
mdulo
Desenvolvedor B
programando seu
mdulo
Componente
Compartilhado com
o Desenvolvedor B
Dados Compartilhados
Cenrio
O
Soluo
Cada
Consequncias...
10
Dados Compartilhados
Componente A1
Componente B1
Componente A2
Componente B2
Componente C
(verso de A)
Componente C
(verso de B)
Desenvolvedor A
programando seu
mdulo
Desenvolvedor B
programando seu
mdulo
11
Dados Compartilhados
Cenrio
Quando
Soluo
Criao
Conseqncias...
12
Manuteno Mltipla
Componente C
Componente A1
Componente B1
Componente A2
Componente B2
Componente C
Componente C
Desenvolvedor A
programando seu
mdulo
Desenvolvedor B
programando seu
mdulo
13
Manuteno Mltipla
Componente C
Componente A1
Componente B1
Componente A2
Componente B2
Componente C
(verso de A)
Componente C
Desenvolvedor A
programando seu
mdulo
Desenvolvedor B
programando seu
mdulo
14
Manuteno Mltipla
Componente C
(verso de A)
Componente A1
Componente B1
Componente A2
Componente B2
Componente C
(verso de A)
Componente C
Desenvolvedor A
programando seu
mdulo
Desenvolvedor B
programando seu
mdulo
15
Manuteno Mltipla
Componente C
(verso de A)
Componente A1
Componente B1
Componente A2
Componente B2
Componente C
(verso de A)
Componente C
(verso de B)
Desenvolvedor A
programando seu
mdulo
Desenvolvedor B
programando seu
mdulo
16
Manuteno Mltipla
Componente C
(verso de B)
Componente A1
Componente B1
Componente A2
Componente B2
Componente C
(verso de A)
Componente C
(verso de B)
Desenvolvedor A
programando seu
mdulo
Desenvolvedor B
programando seu
mdulo
17
Manuteno Mltipla
Componente C
(verso de B)
Componente A1
Componente B1
Componente A2
Componente B2
Componente C
(verso de A)
Componente C
(verso de B)
Desenvolvedor A
programando seu
mdulo
Desenvolvedor B
programando seu
mdulo
Se o erro consertado por A diferente do erro consertado por B, a correo de A foi sobreposta!
Se no, o trabalho de B foi duplicado!
18
Concluses
Mudanas no controladas, so geralmente
causas significativas para grandes mudanas
em cronograma e custo;
Uma infra-estrutura bsica para o
desenvolvimento concorrente imprescindvel;
necessria uma linguagem comum aos
times de desenvolvimento;
necessria uma coordenao entre equipes
para minimizar os esforos aleatrios;
19
Gerncia de Configurao
Em qualquer time, um certo grau de confuso inevitvel. O
objetivo minimizar a confuso de modo que mais trabalho
possa ser feito.
A arte de coordenar o desenvolvimento de software para
minimizar esse tipo particular de confuso chamada de
Gerncia de Configurao.
W.A. Babich, Software Configuration Management.
Addison-Wesley, 1986.
20
Gerncia de Configurao
o 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.
21
22
Benefcios
Reduo de defeitos;
Diminuio dos custos para manuteno;
Melhora no gerenciamento do projeto;
Rastreabilidade;
Reproducibilidade;
Confiabilidade;
Visibilidade
das mudanas;
23
Controle de
Verso
Controle de
Mudanas
Gerenciamento
de Builds
24
Conceitos Bsicos
25
Configurao de Software
Documentao
Dados
Workspace
27
Item de Configurao
Um conjunto de artefatos de software, que
representa uma entidade nica para gerncia
de configurao;
Um item de configurao est sujeito a
mudanas e essas devem obedecer s
polticas estabelecidas.
28
Codeline
Uma codeline a progresso de um conjunto
de arquivos referente s mudanas atribudas
ao software no decorrer do tempo. Cada
mudana cria uma nova reviso de um
determinado artefato.
As codelines armazenam todas as mudanas.
Arq.java
1.1
1.2
1.3
Codeline
Arq2.java
1.1
1.2
29
Codeline
30
Baseline
Um artefato s se torna um
item de configurao depois que ele
faz parte da baseline.
31
Baseline
Benefcios
Reproducibilidade:
Rastreabilidade
Controle
de Mudanas
Baseline
de Especificao de Requisitos
Documento de Caso de Uso
Cdigo Fonte
Documento de Projeto de Testes
33
Repositrio
Conjunto de ferramentas auxiliares para o
armazenamento fsico e lgico dos itens de
configurao e controle de suas mudanas;
Utiliza mecanismos de controle de acesso
Desenvolvedor
Repositrio
34
Checkout
Checkout
Desenvolvedor
Repositrio
35
Check-in
Check-in
Desenvolvedor
Repositrio
36
Tags
Rtulos que so associados a conjuntos de
arquivos
Uma tag referencia um ou mais arquivos em
um ou mais diretrios, mas em somente UMA
verso de cada arquivo.
Usa-se tags, por exemplo, para a
implementao das baselines;
37
Tags
Arq1.java
1.1
1.2
BASELINE-001
1.3
1.4
BASELINE-002
1.5
38
Branches
Criao de uma codeline alternativa.
Mecanismo utilizado para o desenvolvimento
concorrente e isolado;
Deve-se ter regras bem definidas para criao
de branches
Por
Branches
Arq1.java
1.1
1.2
BASELINE-001
1.3
branch_gustavo
1.4
1.4.1
1.5
BASELINE-002
1.4.2
40
Merge
Up-Merge
Merge
Arq1.java
1.1
1.2
BASELINE-001
1.3
1.4
branch_gustavo
1.4.1
1.4.2
Merge
BASELINE-002
1.5
1.6
42
Up-Merge
Arq1.java
1.3
1.4
branch_gustavo
1.4.1
Up-Merge
BASELINE-002
1.5
1.4.2
1.4.3
43
Build
Representa uma verso ainda incompleta do
sistema em desenvolvimento, mas com certa
estabilidade
Costumam apresentar limitaes conhecidas
Geralmente os testes formais so realizados
em builds estveis (baseline).
A poltica de gerao de builds deve ser bem
definida na estruturao do ambiente.
A gerao de builds deve ser automatizada e
realizada com uma frequncia adequada ao
projeto.
44
Release
Entrega, liberao.
Verso do sistema validada aps os diversos
tipos de teste.
Release nada mais que uma baseline
testada e aprovada.
Supostamente sem erros
Entregue ao cliente ou ao mercado
Processo iterativo/incremental produz, em
geral, mais de um release
45
Vimos que...
montona e demorada
Apenas para desenvolvedores
Apenas para Engenheiros de Configurao
Apenas para controlar cdigo fonte
Apenas para obter CMMi, Mps.Br, ISO, etc.
46
Concluses
Gerncia de Configurao um fluxo de
apoio ao projeto como um todo
Passos iniciais para a adoo de um
processo de software
Requer uma certa disciplina na manipulao
de itens de configurao
Deve-se ter apoio de ferramentas sempre que
possvel
47
Exerccio
Quais os objetivos e benefcios de se usar
Gerncia de Configurao?
Sobre os conceitos abaixo, defina:
Item
de Configurao
Tag
Branch
Merge
e Up-Merge
Release
48