Você está na página 1de 35

Gerenciamento

de congurao e mudana
Centro de Inform-ca - Universidade Federal de Pernambuco Sistemas de Informao Vinicius Cardoso Garcia vcg@cin.ufpe.br Slides originais elaborados por Ian Sommerville
O autor permite o uso e a modicao dos slides para ns did-cos

[if977] Engenharia de So:ware - SI - CIn - UFPE

Gerenciamento de congurao
Novas verses de sistemas de soGware so criadas quando eles:
Mudam para mquinas/OS diferentes; Oferecem funcionalidade diferente; So congurados para requisitos de usurios par-culares.

[if977] Engenharia de So:ware - SI - CIn - UFPE

Gerenciamento de congurao
O gerenciamento de congurao exerce controle sobre os artefatos produzidos pelo desenvolvimento de soGware:
Mudana de sistema uma a-vidade de equipe; O CM tem por obje-vo controlar os custos e o esforo envolvidos na realizao das mudanas em um sistema.

[if977] Engenharia de So:ware - SI - CIn - UFPE

Gerenciamento de congurao
Envolve o desenvolvimento e a aplicao de procedimentos e padres para gerenciar um produto de soGware em evoluo. O CM pode ser visto como parte de um processo mais geral de gerenciamento do projeto. Artefatos que esto sob gerenciamento de congurao so chamados de itens de congurao
4

[if977] Engenharia de So:ware - SI - CIn - UFPE

Famlias de Sistemas

Ian Sommerville, Engenharia de SoGware, 8. edio. Captulo 29

[if977] Engenharia de So:ware - SI - CIn - UFPE

Construo frequente do sistema


mais fcil encontrar problemas que surgem das interaes de componentes no incio do processo.
Em especial quando usa-se incrementos pequenos e builds frequentes

Isso encoraja o uso de testes automaIzados os desenvolvedores esto sob presso para no quebrar a construo. O processo de gerenciamento de mudanas precisa alcanar equilbrio:
Burocracia vs. Rastreabilidade
6

Planejamento de gerenciamento de congurao


Especicaes; Projetos; Programas; Dados de teste; Manuais de usurio.

[if977] Engenharia de So:ware - SI - CIn - UFPE

Todos os produtos do processo de soGware podem ser gerenciados:

Milhares de artefatos separados podem ser gerados para um sistema grande e complexo de soGware. necessrio denir quais esto sujeitos ao gerenciamento de congurao
7

Principais AIvidades do Gerenciamento de Congurao

[if977] Engenharia de So:ware - SI - CIn - UFPE

Controle de Verses Gerenciamento e Registro de Mudanas Organizao e Gerao dos Builds do Sistema

[if977] Engenharia de So:ware - SI - CIn - UFPE

Gerenciamento de mudanas
Sistemas de soGware esto sujeitos a solicitaes conhnuas de mudanas:
De usurios; De desenvolvedores; De foras de mercado.

O gerenciamento de mudanas est relacionado manuteno da rastreabilidade dessas mudanas, de modo que:

Reparos realmente corrijam falhas Novas falhas introduzidas por reparos possam ser iden-cadas rapidamente Seja fcil descobrir quais mudanas foram implementadas e quando
9

[if977] Engenharia de So:ware - SI - CIn - UFPE

Ian Sommerville, Engenharia de SoGware, 8. edio. Captulo 29

10

[if977] Engenharia de So:ware - SI - CIn - UFPE

O formulrio j d uma boa idia sobre como o processo de gerenciamento de mudanas funciona.

Ian Sommerville, Engenharia de SoGware, 8. edio. Captulo 29

11

[if977] Engenharia de So:ware - SI - CIn - UFPE

12

[if977] Engenharia de So:ware - SI - CIn - UFPE

Acompanhamento de mudanas
O maior problema no gerenciamento de mudanas o acompanhamento do status da mudana. Ferramentas de gerenciamento de mudanas fornecem meios para se acompanhar a situao de cada solicitao de mudana
Automa-camente enviam solicitaes de mudana para as pessoas certas no tempo certo.

So integrados a sistemas de e-mail, permi-ndo a distribuio eletrnica da solicitao de mudana.


Mesmo assim, comum que solicitaes de mudanas sejam sumariamente ignoradas

13

[if977] Engenharia de So:ware - SI - CIn - UFPE

Comit de controle de mudanas


As mudanas podem ser revisadas por um grupo externo, que
decide se elas so ou no adequadas em termos de custo, tempo e risco ponto de vista estratgico ou organizacional ao invs de um ponto de vista tcnico.

O grupo deve ser independente do responsvel de projeto pelo sistema. Esse grupo , algumas vezes, chamado de comit de controle de mudanas (CCB). O CCB pode conter representantes do cliente e do pessoal fornecedor.

14

[if977] Engenharia de So:ware - SI - CIn - UFPE

Procedncia histrica
um registro das mudanas realizadas em um documento ou um componente de cdigo. Deve registrar, em linhas gerais, a mudana feita, a lgica da mudana, quem fez a mudana e quando foi implementada. Pode ser includa como um comentrio no cdigo.
Se um es-lo de cabealho padro usado para a procedncia histrica, as ferramentas podem processar isso automa-camente.
15

Informao de cabealho de componente

[if977] Engenharia de So:ware - SI - CIn - UFPE

Ian Sommerville, Engenharia de SoGware, 8. edio. Captulo 29

16

Algumas Ferramentas de Gerenciamento de Mudanas


Bugzilla IBM Ra-onal ClearCase Man-s

[if977] Engenharia de So:ware - SI - CIn - UFPE

Tambm possvel usar um Wiki com esse m

17

[if977] Engenharia de So:ware - SI - CIn - UFPE

Gerenciamento de verses e releases


Elaborar um esquema de iden-cao para verses de sistema. Planejar quando uma nova verso de sistema ser produzida. Assegurar que procedimentos e ferramentas de gerenciamento das verses sejam adequadamente aplicados. Planejar e distribuir releases da nova verso do sistema.
18

[if977] Engenharia de So:ware - SI - CIn - UFPE

Verses/variantes/releases
Verso
uma instncia de um sistema que funcionalmente dis-nta, de alguma maneira, de outras instncias de um sistema. Uma verso de um sistema que tem apenas pequenas diferenas com relao a outras instncias (normalmente devido a diferenas no hardware/soGware alvo) Ex.: O Oce para MacOS uma variante do Oce para Windows uma instncia de um sistema distribuda para os usurios fora da equipe de desenvolvimento. Ex. Oce 2007
19

Variante

Release

[if977] Engenharia de So:ware - SI - CIn - UFPE

IdenIcao de verses
Os procedimentos para iden-cao de verses devem denir uma maneira no- ambgua de iden-car verses Existem trs tcnicas bsicas para iden-cao de componentes:
Numerao de verses; Iden-cao baseada em atributos;

20

[if977] Engenharia de So:ware - SI - CIn - UFPE

Numerao de verses
um esquema simples de numerao usa uma derivao linear
V1, V1.1, V1.2, V2.1, V2.2 etc.

A estrutura de derivao real uma rvore ou uma rede, e no uma seqncia. Os nomes no so signica-vos. Um esquema de hierarquia de atribuio de nomes conduz a poucos erros na iden-cao de verses.
21

Um Exemplo: Nmeros de Verses no Linux


A.B.C[.D]

[if977] Engenharia de So:ware - SI - CIn - UFPE

A verso do kernel (apenas duas mudanas: em 1994 e em 1996) B reviso importante do kernel C mudanas menores: novos drivers e novas funcionalidades individuais D atualizaes de segurana e correes de bugs

Exemplo de verso: 2.6.27.1

22

[if977] Engenharia de So:ware - SI - CIn - UFPE

IdenIcao baseada em atributos


Os atributos podem ser associados a uma verso com a combinao de atributos que a iden-cam.
Exemplos de atributos so Data, Criador, Linguagem de Programao, Cliente, Status, etc.

mais exvel do que um esquema explcito de atribuio de nomes para recuperao de verses; Na pr-ca, uma verso tambm necessita de um nome que facilite a referncia
23

[if977] Engenharia de So:ware - SI - CIn - UFPE

Consultas baseadas em atributos


Iden-cao baseada em atributos pode apoiar consultas
Ex. a mais recente verso em Java, etc.

A consulta seleciona uma verso dependendo dos valores de atributos


Ex.: (linguagem =Java, plataforma = XP, data = Jan 2003).

24

[if977] Engenharia de So:ware - SI - CIn - UFPE

Branching e Merging
Um elemento fundamental do gerenciamento de congurao
O livro no fala sobre!

Compromisso entre produIvidade e risco Branching: Consiste em usar diferentes ramos de desenvolvimento para aumentar o paralelismo
Cada ramo chamada de branch Cdigo no compar-lhado entre branches

Merging: a combinao de uma desses ramos com o ramo principal


Diferenas entre os branches combinados precisam ser resolvidas
25

Algumas Razes para se Criar um Branch


Implementar uma solicitao de mudana Implementar uma funcionalidade pontual Paralelizar o desenvolvimento dos componentes do sistema

[if977] Engenharia de So:ware - SI - CIn - UFPE

Tambm aplicvel ao desenvolvimento paralelo de diferentes verses do sistema Atribuio de tarefas a diferentes partes da equipe de desenvolvimento

26

Branch-per-Release e Code-PromoIon- Branches

[if977] Engenharia de So:ware - SI - CIn - UFPE

27

Branch-per-Component e Branch-per- Technology

[if977] Engenharia de So:ware - SI - CIn - UFPE

28

[if977] Engenharia de So:ware - SI - CIn - UFPE

AnI-Padres de Branching e Merging


Merge-Paranoia Merge-Mania Big-Bang-Merge Branch-Mania Cascading Branches

Vejam A Branching & Merging Primer, de Chris Birmele


Parte do material desta aula foi -rada desse tutorial
29

Funcionalidades de um Sistema de Controle de Verses


Manuteno de um repositrio de itens de congurao
Com suporte ao checkin e ao checkout distribudos

[if977] Engenharia de So:ware - SI - CIn - UFPE

Criao e manuteno de ml-plas verses


Armazenamento de informaes sobre cada verso

Criao e merging de branches Capacidade de realizar consultas sobre verses dos sistemas, com base em seus atributos

30

[if977] Engenharia de So:ware - SI - CIn - UFPE

Construo (build) de sistemas


o processo de compilao e ligao de componentes de soGware em um sistema executvel.
Pode incluir a execuo de testes

Sistemas diferentes so construdos a par-r de combinaes diferentes de componentes. Esse processo , atualmente, sempre apoiado por ferramentas automa-zadas que so dirigidas por scripts de construo.
31

[if977] Engenharia de So:ware - SI - CIn - UFPE

Construo de sistemas
A construo de um sistema grande computacionalmente dispendiosa e pode levar vrias horas. Centenas de arquivos podem estar envolvidos. As ferramentas de construo de sistemas podem fornecer:
Uma linguagem de especicao de dependncia e um interpretador associado; Seleo de ferramentas e apoio instanciao; Compilao distribuda;
32

[if977] Engenharia de So:ware - SI - CIn - UFPE

Dependncias entre componentes

Ian Sommerville, Engenharia de SoGware, 8. edio. Captulo 29

33

Algumas Ferramentas de Controle de Verses e Gerao de Builds


CVS (+ WinCVS) SVN Git IBM Ra-onal ClearCase

[if977] Engenharia de So:ware - SI - CIn - UFPE

Ant GNU Make

34

[if977] Engenharia de So:ware - SI - CIn - UFPE

Leituras recomendadas
SOMMERVILLE, I. Engenharia de SoGware. 9. Ed. So Paulo: Pearson Educa-on, 2011
Captulo 29

Branching and Merging Primer (Chris Birmele)


hp://bit.ly/GBwF5B

35