Escolar Documentos
Profissional Documentos
Cultura Documentos
Engenharia de Software
Aula 05: Gerncia de Configuraes
Prof. MSc Fernando Prass fprass@gmail.com www.fp2.com.br/fernando
Gerncia de configurao (GC) o processo de identificar, organizar e controlar modificaes ao software sendo construdo A idia maximizar a produtividade minimizando os enganos
Prof. MSc. Fernando Prass 2
Objetivos de GC
n n
Benefcios
Aumento de produtividade no desenvolvimento n Menores Custos de Manuteno n Reduo de defeitos n Maior rapidez na identificao e correo de problemas
n
Definir o ambiente de desenvolvimento Definir polticas para controle de verses, garantindo a consistncia dos artefatos produzidos Definir procedimentos para solicitaes de mudanas Administrar o ambiente e auditar mudanas Facilitar a integrao das partes do sistema
Prof. MSc. Fernando Prass 3
n n
diferentes
Desenvolvedor C
n
aos requisitos
Programa de A A1 A2 A3
Componente Compartilhado
B1
Programa de B B2 B3
7
O desenvolvedor A modifica o componente compartilhado Mais tarde, o desenvolvedor B realiza algumas alteraes no mesmo Ao tentar compilar o componente, erros so apontados pelo compilador, mas nenhum deles ocorre na parte que B alterou O desenvolvedor B no tem a menor idia sobre a causa do problema
Prof. MSc. Fernando Prass 8
Soluo simplista:
cada
desenvolvedor trabalha em uma cpia local do componente resolve o Problema dos Dados Compartilhados, mas cria um novo problema
Programa de A A1 A2 A3
Componente Compartilhado
Componente Compartilhado
Programa de B B1 B2 B3
Ocorre quando cada desenvolvedor trabalha com uma cpia local do que seria o mesmo componente Dificuldade para saber:
Desenvolvedor A
Componente Compartilhado
Desenvolvedor B
Que funcionalidades foram implementadas em quais verses do componente Que defeitos foram corrigidos
Nesse esquema, cada componente copiado para a biblioteca sempre que alterado Resolve o Problema da Manuten o M ltipla, mas...
Prof. MSc. Fernando Prass 11
Programa de A A1 A2 A3
Programa de B B1 B2 B3
12
O desenvolvedor A encontra e corrige um defeito em sua verso do componente compartilhado Uma vez corrigido, o componente modificado copiado para a biblioteca central O desenvolvedor B encontra e corrige o mesmo defeito em sua verso do componente por no saber que A j tinha feito isso O trabalho de A desperdiado
Prof. MSc. Fernando Prass 13
O desenvolvedor A encontra e corrige um defeito em sua verso do componente compartilhado Uma vez corrigido, o componente modificado copiado para a biblioteca central O desenvolvedor B encontra e corrige um outro defeito em sua verso do componente, sem saber do defeito corrigido por A O desenvolvedor B copia sua verso do componente para a biblioteca central Alm de o trabalho de A ser desperdi ado, a verso do componente que se encontra na biblioteca central continua apresentando um defeito O desenvolvedor A julga o problema como resolvido
Prof. MSc. Fernando Prass 14
Como Resolver?
O problema da atualizao simultnea no pode ser resolvido simplesmente copiando componentes compartilhados para uma biblioteca central n Algum mecanismo de controle necessrio para gerenciar a entrada e sada dos componentes
n
Prof. MSc. Fernando Prass 15
(cdigo fonte, programas executveis, bibliotecas de componentes, etc.) Documentao (manuais do usurio, documento de requisitos, modelo de anlise e projeto, etc.) Dados (dados de teste e do projeto)
n
Um conjunto de itens de hardware e/ou software vistos como uma entidade nica para fins de gerncia de configura o Um item de configura o est sujeito a mudanas e essas devem obedecer s polticas estabelecidas Normalmente, um item de configura o estabelecido para cada pedao de software que pode ser projetado, implementado e testado de forma independente
Prof. MSc. Fernando Prass 17
n n n
A configurao do software em um ponto discreto no tempo S pode ser modificado atravs de procedimentos formais (solicitaes de mudana) Um artefato ou conjunto de artefatos s se torna um item de configura o depois que um baseline estabelecido
Prof. MSc. Fernando Prass 18
tempo
Prof. MSc. Fernando Prass
Desenvolvedor
Reposit rio
21 Prof. MSc. Fernando Prass 22
Check-In
n
o lock do item de configurao, caso o mesmo j exista Verifica e incrementa a verso do item Registra informaes das mudanas (autor, data, hora, comentrios) Inclui/atualiza o item
Desenvolvedor
Prof. MSc. Fernando Prass
Reposit rio
23
Desenvolvedor
Prof. MSc. Fernando Prass
Reposit rio
24
Representa uma verso ainda incompleta do sistema em desenvolvimento, mas com certa estabilidade Costuma apresentar limitaes conhecidas Espao para integrao de funcionalidades Inclue no s cdigo fonte, mas documentao, arquivos de configurao, base de dados, etc. A poltica de gera o dos builds deve ser bem definida na estruturao do ambiente
Prof. MSc. Fernando Prass 25
n n n
Identificao e empacotamento de artefatos entregues ao cliente (interno ou externo) ou ao mercado Um release implica no estabelecimento de um novo baseline, de produto Produto de software supostamente sem erros
So ramificaes laterais de verses que se originam de uma reviso da linha principal de desenvolvimento
Branch 1.2.1.3.1 1.2.1.2 2 1.4 1.5
1.2.1.3.1.1 1
Verso do sistema validada ap s os diversos tipos de teste Garantia de que todos os itens de configura o foram devidamente testados, avalidos, aceitos e esto dispon veis no novo baseline
Branch 1.2.1
1.2.2.2 2
Ferramentas
n
n n
Unificao de diferentes verses de um mesmo item de configurao Integrao dos itens de configurao de um branch com os itens de configura o do fluxo principal Check-out atualizando a rea local Algumas ferramentas fornecem um mecanismo automtico para realizao de merges
Rational ClearCase, Borland StarTeam, Subversion (subversion.tigris.org), CVS (savannah.nongnu.org/projects/cvs), VisalSVN ( www.visualsvn.com), Tortoise (client)
29
30
31
32
Bibliografia
n