Post on 17-Apr-2015
GERÊNCIA DE CONFIGURAÇÃO
Lílian Simão Oliveira
Itens de configuração
O que é um item de configuração?
“Os itens que compreendem toda a informação
produzida como parte do processo de software
são chamados coletivamente de configuração de
software.”
Configuração
Então, o que é configuração?
“É a designação geral para o conjunto de itens de
configuração de um projeto de software.”
Itens de Configuração de Software É a informação criada como parte do
processo de engenharia de software. (Pressman, 2006)
É a designação geral de qualquer artefato ou produto de software mantido sob gestão de configuração/mudança.
Itens de Configuração de Software Em geral é:
Um produto de software ou Um produto de desenvolvimento de
software Deve possuir uma identificação
única Regras de Nomenclatura devem ser
utilizadas
Itens de Configuração de Software Exemplos:
um plano de projeto um cronograma uma especificação de caso de uso um modelo ou parte de um modelo código-fonte um módulo executável ou componente, um arquivo de help um script de teste
Itens de Configuração
Muitas organizações colocam também ferramentas de software sob controle de configuração. Ex: Versões específicas de editores Compiladores Navegadores Outras ferramentas...
Gestão de Configuração de Software
Controla os itens de configuração
Versionamento
Versionamento é a disciplina através da qual são preservadas as versões de um artefato, de modo sistemático e seguro, não limitado em número de versões.
A cada alteração consolidada no repositório uma nova versão do item deve ser gerada.
Todas as versões devem ser armazenadas e identificadas.
Revisões = versões individuais de cada item.
Versionamento
Versão: Estado definido de um objeto num dado
momento. “Fotografia” do objeto.
Versionamento
Árvore de Versionamento
Versionamento
Deve ser possível recuperar versões anteriores de um item.
Além de artefatos, podemos versionar configurações completas ou parciais de um software
É, portanto, aceitável falar-se em: Versão de um artefato (documento,
cronograma, modelo, programa, etc) Versão de um sistema
Repositório
Repositório
Repositório
É o conjunto de mecanismos e estruturas de dados que permite a uma equipe de software gerir modificação de modo efetivo
É um local sob controle de acesso onde são armazenados os itens de configuração
Repositório
Deve permitir: Controle de acesso O versionamento dos elementos Representar marcos de projeto ou
versões de produção específicas Pistas de auditoria das modificações
O que, quando, quem e por que.
Ferramentas de Controle de Versão Existem diversas ferramentas de
mercado: Rational ClearCase CVS (Concurrent Versions System) Subversion (SVN) Git
Espaço de Trabalho (workspace)
Workspace
Um lugar onde o desenvolvedor possa trabalhar isoladamente sobre os seus artefatos enquanto ele finaliza uma tarefa sem interferências externas.
Utilizado para: Criação/edição de artefatos Operações de gerenciamento Consultas
Workspace
Funções:
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
pullimporta revisões feitas em outro repositório
pushenvia revisões locais para outro repositório
(1) Duas cópias de trabalho são criadas a partir do comando checkout. As duas iniciam no mesmo estado.
(2) Os dois desenvolvedores executam modificações nas suas cópias de trabalho, mas Aline publica antes no repositório.
(3) Roberto tenta publicar suas alterações, mas o controle de versão recusa justificando que as alterações foram baseadas em arquivos desatualizados. No caso, um ou mais arquivos alterados por Roberto já haviam sido alterados por Aline antes
(4) Na atualização da cópia de trabalho, o controle de versão já mescla automaticamente as revisões.
(5) Após conferir se a atualização e a mesclagem produziram o resultado desejado, Roberto envia as mudanças ao repositório. Enquanto isso, Aline já trabalha em outra tarefa, executando novas alterações.
Baseline
É uma configuração formalmente aprovada para servir de referência para o desenvolvimento posterior do sistema.
“Uma especificação ou produto que foi formalmente revisto e aprovado, o qual daí em diante serve como base para o desenvolvimento futuro e que pode ser modificado apenas por meio de procedimentos formais de controle de modificação.“ (IEEE Std no. 610.12-1990)
Baseline
Subversion (SVN)
1. The essential Subversion lifecycle is the following:
2. Check out a project (a directory path) from a repository.In that project directory, create or edit files and subdirectories.
3. Update your local copy from the repository, picking up changes your team members may have made since your last update.
4. Go to step 2. If you're ready to commit your changes, go to step 5.
5. Commit your changes to the repository. Go to step 2.
SVN – Alguns Conceitos
Trunk: É o repositório de trabalho dos desenvolvedores, nele fica armazenado a versão “suja” de desenvolvimento, onde a qualquer momento podem acontecer mudanças, caracteriza-se pela versão menos estável. Mas a partir do Trunk geramos Branches e também Tags detalhadas a seguir.
Branches: São ramificações do seu projeto, ou seja, antes de iniciar o desenvolvimento de um novo módulo, é recomendado que seja criado um Branche, para separar essas modificações até que elas estejam estáveis o suficiente para serem integradas ao Trunk, usando o recurso de Merge.
SVN – Alguns Conceitos
Tags: São na teoria versões estáveis do software, as tags podem ser originadas de um branche ou do trunk, a nomenclatura para as Tags seguem um padrão do tipo “1.2.3″, isso corresponde a:1.2.3: Versão reescrita na integra do projeto, entre uma versão 1.0 e 2.0 necessariamente deve ter sido reconstruído partes significativas do software.1.2.3: Corresponde a implementação de novos módulos.1.2.3: São versões de correção de bugs ou pequenos ajustes.