30
Gerência de Configuração Wagner Zaparoli [email protected]

Gerência de Configuração

Embed Size (px)

Citation preview

Page 1: Gerência de Configuração

Gerência de

Configuração

Wagner [email protected]

Page 2: Gerência de Configuração

Gerência de Configuração 2

Agenda

• Problemas de configuração

• Porque utilizar a gerência de configuração

• Conceitos

• Controle de Versão

• Sincronismo

Page 3: Gerência de Configuração

Problemas de Configuração

Gerência de Configuração 3

Page 4: Gerência de Configuração

Problemas de Configuração

Gerência de Configuração 4

Page 5: Gerência de Configuração

Problemas de Configuração

Gerência de Configuração 5

Page 6: Gerência de Configuração

Problemas de Configuração

Gerência de Configuração 6

Subscrição de códigos/documentos

Perda de alterações

Dificuldade em recuperar versão anterior ou em produção

Dificuldade em manter versões diferentes simultaneamente

Page 7: Gerência de Configuração

Por que utilizar?

Gerência de Configuração 7

Para minimizar os problemas decorrentes do processo de desenvolvimento, através de um controle sistemático sobre as

modificações.

1) Quais mudanças aconteceram no sistema?

2) Por que essas mudanças aconteceram?

3) O sistema continua íntegro mesmo depois das mudanças?

Page 8: Gerência de Configuração

O que é?

Gerência de Configuração 8

Configuração de um sistema é uma coleção de versões específicas de itens de configuração (hardware, firmware ou

software) que são combinados de acordo com procedimentos específicos de construção para servir a uma finalidade particular

Item de configuração é cada um dos elementos de informação que são criados durante o desenvolvimento de um produto de

software, identificados de maneira única e cuja evolução é passível de rastreamento

Page 9: Gerência de Configuração

O que é?

Gerência de Configuração 9

Gerência de configuração é um conjunto de atividades de apoio que permite a absorção controlada das mudanças inerentes ao

desenvolvimento de software, mantendo a estabilidade na evolução do projeto

É a disciplina que identifica a configuração de um sistema em diferentes pontos no tempo, mantendo a integridade e

rastreabilidade da configuração através do ciclo de vida do sistema

Page 10: Gerência de Configuração

Visão

Gerência de Configuração 10

Page 11: Gerência de Configuração

Visão

Gerência de Configuração 11

É a espinha dorsal de toda a gerência de configuração, apoiando as atividades de controle de mudança e integração contínua.

Alguns Serviços• Identificação, armazenamento e gerenciamento dos itens de configuração e de suas versões durante todo o ciclo de vida do software; • Histórico de todas as alterações efetuadas nos itens de configuração; • Criação de rótulos e ramificações no projeto; • Recuperação de uma configuração em um determinado momento desejado do tempo.

Page 12: Gerência de Configuração

Visão

Gerência de Configuração 12

Fornece um serviço complementar ao oferecido pelo sistema de controle de versão, cujo foco recai nos procedimentos pelos quais as mudanças de um ou mais itens de configuração são propostas, avaliadas, aceitas e aplicadas.

Oferece serviços para identificar, rastrear, analisar e controlar as mudanças nos itens de configuração.

Page 13: Gerência de Configuração

Visão

Gerência de Configuração 13

Tem por objetivo garantir que as mudanças no projeto sejam construídas, testadas e relatadas tão logo quanto possível depois de serem introduzidas.

A construção do software é feita pela recuperação da configuração correta no sistema de controle de. Esse processo é executado geralmente após cada mudança publicada no sistema de controle de versão ou em intervalos de tempo pré-definidos.

Page 14: Gerência de Configuração

O que é?

Gerência de Configuração 14

Baseline é uma configuração formalmente aprovada para servir de referência para o desenvolvimento posterior do sistema.

Repositório é o local (físico ou lógico) onde são armazenados os itens de um sistema.

Lock é a técnica que garante que apenas um usuário consiga atualizar um determinado item no tempo.

Tag é um rótulo que associa um conjunto de itens.

Banch é um caminho alternativo que permite atualização de versões de itens de configuração.

Merge é a técnica que unifica diferentes versões de um mesmo item de configuração.

Page 15: Gerência de Configuração

O que é?

Gerência de Configuração 15

Build é uma versão incompleta do sistema em desenvolvimento, mas com certa estabilidade

Release produto de software supostamente sem erros entregue ao cliente ou ao mercado

Page 16: Gerência de Configuração

Merge

Branch

Tag

Exemplo

Gerência de Configuração 16

1.0 1.1 1.2 1.3

Release 1

1.2.1 1.2.2

Page 17: Gerência de Configuração

Controle de Versão - Finalidades

Gerência de Configuração 17

Histórico: registra a evolução completa do projeto, contemplando cada alteração sobre os arquivos. Com essas informações sabe-se quem fez o que, quando e onde.

Colaboração: o controle de versão possibilita que vários desenvolvedores trabalhem em paralelo sobre os mesmo arquivos sem que um sobrescreva o código de outro.

Variações no Projeto: mantém linhas diferentes de evolução do mesmo projeto. Por exemplo, é possível manter uma versão 1.0 enquanto a equipe prepara uma versão 2.0.

Page 18: Gerência de Configuração

Controle de Versão - Operação

Gerência de Configuração 18

Repositório

Update

Commit

Gera uma nova revisão no repositório

Disponibiliza uma revisão na área de trabalho

Área de Trabalho

Page 19: Gerência de Configuração

Controle de Versão - Centralizado

Gerência de Configuração 19

Repositório

Área de TrabalhoÁrea de TrabalhoÁrea de Trabalho

Page 20: Gerência de Configuração

Controle de Versão - Distribuído

Gerência de Configuração 20

Repositório

Área de Trabalho

Estação

Page 21: Gerência de Configuração

Sincronismo - Centralizado

Gerência de Configuração 21

Repositório

Estação A Estação B

Check

out Checkout

Page 22: Gerência de Configuração

Sincronismo - Centralizado

Gerência de Configuração 22

Repositório

Estação A Estação B

Comm

it Comm

it√ X

Page 23: Gerência de Configuração

Sincronismo - Centralizado

Gerência de Configuração 23

Repositório

Estação A Estação B

Update

Page 24: Gerência de Configuração

Sincronismo - Centralizado

Gerência de Configuração 24

Repositório

Estação A Estação B

Comm

it√

Page 25: Gerência de Configuração

Sincronismo - Distribuído

Gerência de Configuração 25

Estação B

Repositório

Área de Trabalho

Estação A

Repositório

Área de Trabalho

Clone

Page 26: Gerência de Configuração

Sincronismo - Distribuído

Gerência de Configuração 26

Estação B

Repositório

Área de Trabalho

Estação A

Repositório

Área de Trabalho

Pull

Page 27: Gerência de Configuração

Sincronismo - Distribuído

Gerência de Configuração 27

Estação B

Repositório

Área de Trabalho

Estação A

Repositório

Área de Trabalho

Push

Page 28: Gerência de Configuração

Controle de Versões - Resumo

Gerência de Configuração 28

Centralizado Distribuído Descrição

Checkout CloneCriação da cópia de trabalho/repositório

Commit CommitEnvia alterações para o repositório, criando uma revisão

Update UpdateAtualiza a cópia/área de trabalho em uma revisão

PullImporta revisões feitas em outro repositório

PushEnvia revisões locais para outro repositório

Page 29: Gerência de Configuração

Sugestões Bibliográficas• W.A. Babich; Software Configuration Managemente; Adison-Wesley, 1986.

• Software Configuration Management Handbook, 2ª edition, Alexis Leon.

• Sanders, J.; Curran, E.; Software Quality; Addison-Wesley, 1994.

• Paulk M. et All; Techinical Report/CMU/SEI-93-TR-025; Key Pratices of the Capability Maturity

Model for Software, Version 1.1; Software Engineering Institute/CMU, 1993.

• Santos, A. D.; CMM – Capability Maturity Model; Apostila: Faculdade de Engenharia

Elétrica/UNICAMP, 2000.

• Paula Filho, W. P.; Engenharia de Software: Fundamentos, Métodos e Padrões; LTC Editora,

2001.

• Sommerville, I.; Software Engineering, 6th Edition, Adison-Wesley, 2001.

• Couto, A. B.; CMMI – Integração dos Modelos de Capacitação e Maturidade de Sistemas; Editora

Ciência Moderna, 2007.

• IEEE Computer Society; Swebok – Guide to the Software Engineering Body of Knowledge; USA,

2004.

• Project Management Institute; PMBOOK 2000 – Brazil Minas Gerais Chapter; 2002.

Gerência de Configuração 29

Page 30: Gerência de Configuração

Gerência de

Configuração

Wagner [email protected]