gerência de configuração
TRANSCRIPT
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