O documento discute os conceitos e práticas de gerência de configuração de software, incluindo problemas comuns de configuração, controle de versão, sincronismo e itens de configuração. Ele explica porque a gerência de configuração é importante para minimizar problemas durante o desenvolvimento de software e manter a integridade do sistema.
2. 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
6. 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
7. 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?
8. 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
9. 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
11. 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.
12. 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.
13. 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.
14. 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.
15. 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
17. 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.
18. 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
19. Controle de Versão - Centralizado
Gerência de Configuração 19
Repositório
Área de TrabalhoÁrea de TrabalhoÁrea de Trabalho
20. Controle de Versão - Distribuído
Gerência de Configuração 20
Repositório
Área de
Trabalho
Estação
25. 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
26. 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
27. 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
28. Controle de Versões - Resumo
Gerência de Configuração 28
Centralizado Distribuído Descrição
Checkout Clone
Criação da cópia de
trabalho/repositório
Commit Commit
Envia alterações para o
repositório, criando uma
revisão
Update Update
Atualiza a cópia/área de
trabalho em uma revisão
Pull
Importa revisões feitas
em outro repositório
Push
Envia revisões locais para
outro repositório
29. 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