Você está na página 1de 6

ULBRA Universidade Luteranado Brasil Curso de Sistemas de Informao

O que Gerncia de Configurao?


n

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

Prof. MSc. Fernando Prass

Problema da Quebra de Comunicao


Desenvolvedor A Desenvolvedor B

Problema da Quebra de Comunicao (cont)


n n

Falhas de comunicao em equipes Ocorre pelas mais diversas razes:


Vocabulrios incompatveis Culturas de desenvolvimento

diferentes

Desenvolvedor C
n

Distncia geogrfica Dificuldade de expresso

Quando este problema acontece:


Os sistemas produzidos no atendem Fora de trabalho desperdiada

aos requisitos

Prof. MSc. Fernando Prass

Prof. MSc. Fernando Prass

Problema dos Dados Compartilhados


Desenvolvedor A Desenvolvedor B

Problema dos Dados Compartilhados - Cenrio


n n

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

Prof. MSc. Fernando Prass

Problema dos Dados Compartilhados - Soluo simplista


n

Problema da Manuteno Mltipla


Desenvolvedor A Desenvolvedor B

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

Verso de A do Componente Compartilhado


Prof. MSc. Fernando Prass 9

Verso de B do Componente Compartilhado


10

Prof. MSc. Fernando Prass

Problema da Manuteno Mltipla (cont.)


n n

Problema da Atualizao Simultnea


Biblioteca Central de Recursos Compartilhados

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

Evitado atravs de uma biblioteca central de componentes compartilhados


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

Verso de A do Componente Compartilhado

Verso de B do Componente Compartilhado

Programa de B B1 B2 B3
12

Prof. MSc. Fernando Prass

Problema da Atualizao Simultnea Cenrio 1


n

Problema da Atualizao Simultnea Cenrio 2


n n n n n

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

Conceito Bsico: Configurao


n

Um projeto de desenvolvimento de software produz os seguintes itens:


Programas

(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

Esses conjuntos de itens so chamados, coletivamente, de configurao do software


Prof. MSc. Fernando Prass 16

Conceito Bsico: Item de Configurao


n

Conceito Bsico: Baseline


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

Uma especificao ou produto que foi formalmente revisado e aceito

Serve como base para os passos posteriores do desenvolvimento

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

Conceito Bsico: Baseline (cont)


item fluxo de desenvolvimento

Razes para Criar um Baseline


Reproducibilidade: a habilidade de reproduzir uma verso anterior do sistema Rastreabilidade: Estabelece uma rela o predecessor-sucessor entre artefatos do projeto Gerao de Relatrios: A compara o dos contedos de dois baselines ajuda na depurao e cria o de documenta o Controle de Mudanas: referencial para compara es, discusses e negocia es
19 Prof. MSc. Fernando Prass 20

tempo
Prof. MSc. Fernando Prass

Conceito Bsico: Repositrio


Local (fsico e lgico) onde os itens de um sistema so guardados n Pode conter diversas verses do sistema n Utiliza mecanismos de controle de acesso
n

Conceito Bsico: Lock


Resolve a Atualizao Simultnea n Garante que apenas o usurio que detm o lock pode alterar o arquivo n Problema: serializa o trabalho dos desenvolvedores
n

Desenvolvedor

Reposit rio
21 Prof. MSc. Fernando Prass 22

Prof. MSc. Fernando Prass

Conceito Bsico: Check-Out


n

Check-In
n

Recupera a (ltima) verso de um item de configurao guardada no reposit rio


Escrita n Verifica que ningum det m o lock do item de configurao n Obtm o lock do item n Cria uma cpia, para edi o, no cliente Leitura n Verifica que algum j det m o lock n Cria uma cpia, apenas para leitura, no cliente

Ao de inserir/atualizar um item de configurao no repositrio


Verifica

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

Conceito Bsico: Build


n

Problemas na Gerao de Builds


Fazer os builds do sistema manualmente muito demorado n Pode ser difcil saber qual a verso correta de um arquivo n Os pedaos do sistema podem estar em diversos locais diferentes
n
Alguns

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

arquivos podem ser esquecidos


Prof. MSc. Fernando Prass 26

Conceito Bsico: Release


n n

Conceito Bsico: Branch


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.1 1.2

1.2.1.1 1 1.3 1.2.2.1 1

1.2.1.3 3 Linha principal 1.2.2.3 3


28

Processo iterativo/incremental produz, em geral, mais de um release


Prof. MSc. Fernando Prass 27

Branch 1.2.1

1.2.2.2 2

Prof. MSc. Fernando Prass

Conceito Bsico: Merge


n

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

Para controle de cdigo fonte:

Rational ClearCase, Borland StarTeam, Subversion (subversion.tigris.org), CVS (savannah.nongnu.org/projects/cvs), VisalSVN ( www.visualsvn.com), Tortoise (client)

Para controle de Bugs

Mantis ( www.mantisbugtracker.com), Bugzilla ( www.bugzilla.org)

Mesmo com o uso de ferramentas, em v rios casos h necessidade de interven o humana

Prof. MSc. Fernando Prass

29

Prof. MSc. Fernando Prass

30

Prof. MSc. Fernando Prass

31

Prof. MSc. Fernando Prass

32

Bibliografia
n

Configuration Management Today http://cmtoday.com

PRESSMAN, Roger S.. Engenharia de Software. So Paulo: Pearson, 2006.

SOMMERVILLE, Ian. Engenharia de Software. So Paulo: Pearson, 2004.


33

Prof. MSc. Fernando Prass

Você também pode gostar