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
checkout
commit
update
Distribuído
Descrição
clone
criação da cópia de
trabalho/repositório
commit
envia alterações
para o repositório,
criando uma revisão
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

(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.
2.
3.
4.
5.
The essential Subversion lifecycle is the following:
Check out a project (a directory path) from a
repository.In that project directory, create or
edit files and subdirectories.
Update your local copy from the repository, picking
up changes your team members may have made
since your last update.
Go to step 2. If you're ready to commit your
changes, go to step 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.
Download

Gerência de Configuração