Gerência de Configuração

Post on 19-Aug-2015

16 views 0 download

Transcript of Gerência de Configuração

Gerência de

Configuração

Wagner Zaparoliwzaparoli@gmail.com

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

Problemas de Configuração

Gerência de Configuração 3

Problemas de Configuração

Gerência de Configuração 4

Problemas de Configuração

Gerência de Configuração 5

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

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?

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

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

Visão

Gerência de Configuração 10

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.

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.

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.

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.

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

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

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.

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

Controle de Versão - Centralizado

Gerência de Configuração 19

Repositório

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

Controle de Versão - Distribuído

Gerência de Configuração 20

Repositório

Área de Trabalho

Estação

Sincronismo - Centralizado

Gerência de Configuração 21

Repositório

Estação A Estação B

Check

out Checkout

Sincronismo - Centralizado

Gerência de Configuração 22

Repositório

Estação A Estação B

Comm

it Comm

it√ X

Sincronismo - Centralizado

Gerência de Configuração 23

Repositório

Estação A Estação B

Update

Sincronismo - Centralizado

Gerência de Configuração 24

Repositório

Estação A Estação B

Comm

it√

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

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

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

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

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

Gerência de

Configuração

Wagner Zaparoliwzaparoli@gmail.com