GERÊNCIA DE CONFIGURAÇÃO Lílian Simão Oliveira.

Post on 17-Apr-2015

119 views 0 download

Transcript of GERÊNCIA DE CONFIGURAÇÃO Lílian Simão Oliveira.

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.