Sie sind auf Seite 1von 52

Linguagens Comerciais

Professor: Dr. Eduardo Santana de Almeida Universidade Federal da Bahia esa@dcc.ufba.br

Gerncia de Configurao

Agenda

Introduo

Problemas Clssicos Solues Clssicas Conceitos e Terminologia

O que GC?

Processos Ferramentas Benefcios


3

Introduo

Mudanas durante o desenvolvimento de software so inevitveis:


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

1. Problema da Quebra de Comunicao


Desenvolvedor A Desenvolvedor B

Desenvolvedor C

1. Problema da Quebra de Comunicao


Falhas de comunicao nos times de desenvolvimento Principais causas:


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

2. Problema dos Dados Compartilhados


Desenvolvedor A Desenvolvedor B

Programa de A A1 A2 A3

Componente Compartilhado

Programa de B B1 B2 B3
8

2. Problema dos Dados Compartilhados


1.

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

2. Problema dos Dados Compartilhados

Soluo:

Cada desenvolvedor trabalha em uma cpia local do componente

Consequncia:

Resolve o Problema dos Dados Compartilhados, porm cria um novo problema

10

3. Problema da Manuteno Mltipla


Desenvolvedor A Desenvolvedor B

Programa de A

A1

A2

A3

Componente Compartilhado

Componente Compartilhado

Programa de B

B1

B2

B3

Verso de A do Componente Compartilhado

Verso de B do Componente Compartilhado

11

3. Problema da Manuteno Mltipla

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

3. Problema da Manuteno Mltipla

Soluo

Biblioteca central de componentes compartilhados Uso: Cada componente copiado para a biblioteca sempre que alterado

Consequncia:

Cria um novo problema: Atualizao Simultnea

13

4. Problema da Atualizao Simultnea


Biblioteca Central de Recursos Compartilhados
Componente Compartilhado

Desenvolvedor A

Desenvolvedor B

Programa de A

A1

A2

A3

Verso de A do Componente Compartilhado

Verso de B do Componente Compartilhado

Programa de B

B1

B2

B3
14

4. Problema da Atualizao Simultnea

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

4. Problema da Atualizao Simultnea

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

4. Problema da Atualizao Simultnea

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

4. Problema da Atualizao Simultnea

Qual seria a Soluo?

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

O que Gerenciamento de Configurao (GC)?

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

O que Gerenciamento de Configurao (GC)?

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 Gerenciamento de Configurao (GC)?

Em outras palavras... GC objetiva responder as seguintes questes:

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

O que Gerenciamento de Configurao (GC)?

Quatro Funes bsicas


Identificao Documentao Controle Auditoria

22

Conceitos e Terminologia

Item de configurao Baseline Repositrio Tag Trunk/Branch Merge Build Release


23

1. Item de Configurao (IC)

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

1. Item de Configurao (IC)

Cada IC (artefato) tem um ciclo de vida

Concepo do artefato Reviso/aceitao (baseline) Release

Draft

Aceito

Manuteno

Mudanas feitas de forma informal

Mudanas via controle formal (CCB)

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.

Ex: version 1.0


26

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

Trunk tronco principal de desenvolviment o

36

Merge - Boa Prtica

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

Relatrio de Status (Status accounting)

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

Relao com demais disciplinas no ciclo de desenvolvimento (ex: RUP)

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

SVN Subversion CVS Concurrent Version System

Outras opes

OS: Mercurial, GIT, ... Comerciais: ClearCase, Visual Source Safe,

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

Mantis (php) Bugzilla (perl)

Outras opes

Trac (python) Atlassian Jira (j2ee)

49

Ferramentas (3)

Gerao de Builds

Automatizar o processo de gerao de builds

Algumas opes

Ant, Gnu Make, Maven, Shell/Batch Script,

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

artefatos, componentes Gerao de releases, construo de builds, testes


51

Automao de processo

Leitura Recomendada

Captulo Gerenciamento de Configurao


Pressman Sommerville

Lista de Exerccio Leitura Adicional

Software Configuration Management Handbook, by


Alexis Leon

52

Das könnte Ihnen auch gefallen