Gerência de Configuraçãoleomurta/courses/es2/aula5.pdf · 2020-02-03 · – Redmine – Trac...

Post on 18-Mar-2020

4 views 0 download

Transcript of Gerência de Configuraçãoleomurta/courses/es2/aula5.pdf · 2020-02-03 · – Redmine – Trac...

GerênciadeConfiguração

LeonardoGrestaPaulinoMurtaleomurta@ic.uff.br

Introdução•  AEngenhariadeSoBware...

– AbordagemdisciplinadaparaodesenvolvimentodesoBware

– Grandediversidadedemetodologias

•  Pontoemcomumnasmetodologias:–  refinamentossucessivosdeartefatos

LeonardoMurta GerênciadeConfiguração 2

hIp://www.colegiosaofrancisco.com.br

Masondeficamessesartefatos?

LeonardoMurta GerênciadeConfiguração 3

TarefasdeEngenhariade

SoBware

Artefatonovo

Repositório

Artefatomodificado

Artefato

Oquesãorepositórios?•  Repositórios

– Lugarseguroondeversõesdeartefatossãodepositadas

– Permitemarmazenamento,buscaerecuperação

– Servemcomoumpontodereferência

– Apóiamnoaumentodamemóriaorganizacional

LeonardoMurta GerênciadeConfiguração 4

GerênciadeConfiguração

Desenvolvimento Liberação Implantação Produção

LeonardoMurta GerênciadeConfiguração 5

GerênciadeConfiguração

GerênciadeconfiguraçãodesoBwareéumadisciplinaparaocontroledaevoluçãodesistemasdeso3ware(SusanDart,1991)

LeonardoMurta GerênciadeConfiguração 6

Histórico•  Anos50

–  GCparaproduçãodeaviõesdeguerraenavesespaciais•  Anos60e70

–  SurgimentodeGCS(S=SoBware)–  Focoaindaemaplicaçõesmilitareseaeroespaciais

•  Anos80e90–  Mudançadefoco(MILàEIA,IEEE,ISO,etc.)–  Surgimentodasprimeirasnormasinternacionais–  Assimilaçãopororganizaçõesnãomilitares

SistemadeGerênciadeConfiguração

LeonardoMurta GerênciadeConfiguração 7

Versão1

Versão2

Versão3

Versão4

Versão5

SistemadeGerênciadeConfiguração

LeonardoMurta GerênciadeConfiguração 8

Versão1

Versão2

Versão3

Versão4

Versão5

SistemadeGerênciadeConfiguração

LeonardoMurta GerênciadeConfiguração 9

Versão1

Versão2

Versão3

Versão4

Versão5

SistemadeGerênciadeConfiguração

LeonardoMurta GerênciadeConfiguração 10

Artefatos

ControledeVersões

ConstruçãoeRelease

ControledeModificações

Solicitações

LeonardoMurta GerênciadeConfiguração 11

SistemaxFunçõesdeGC

Ambiente de Desenvolvimento de Software

Identificação Controle Contabilização Avaliação Liberação

Controle de Modificações

Controle de Versões

Gerenciamento de Construção

Sistemas:

Processos:

Espaço de trabalho:

Perspectiva de integração

Perspectiva gerencial

Perspectiva de desenvolvimento

Exercício1.  Descrevaas5funçõesdegerênciade

configuração,citandoexemplos

2.  Estudeumaferramentadegerenciamentodeconstruçãoerelease(make,ant,maven,etc.)

3.  Oqueéintegraçãoconhnua?Dêalgumexemplousandoumaferramenta(CruiseControl,ApacheConinuum,Hudson,etc.)

LeonardoMurta GerênciadeConfiguração 12

SistemadeGerênciadeConfiguração

LeonardoMurta GerênciadeConfiguração 13

Artefatos

ControledeVersões

ConstruçãoeRelease

ControledeModificações

Solicitações

TiposdeVersão

LeonardoMurta GerênciadeConfiguração 14

Versão

Revisão Variante Cooperação(Rascunho)

(Conradi and Westfechtel 1998)

Revisões

LeonardoMurta GerênciadeConfiguração 15

Gerações do iMac (1998 – 2013)

Variantes

LeonardoMurta GerênciadeConfiguração 16

Hatchback

Coupe

Sedan

Honda Civic

Cooperação(versõesrascunho)

LeonardoMurta GerênciadeConfiguração 17

Espaço de trabalho do João

Espaço de trabalho da Maria

Espaço de trabalho do Pedro

Versão base

Versõesderascunhopodemsercombinadas(operaçãodemerge)

LeonardoMurta GerênciadeConfiguração 18

João Maria Pedro

Revisões

Conflitospodemocorrerduranteomerge

LeonardoMurta GerênciadeConfiguração 19

João Paulo

Revisões

Outrasduasoperaçõesimportantes…

…paraguardar,transferirecompreenderversões.LeonardoMurta GerênciadeConfiguração 20

Diff =

Patch =

Versõesnomundoreal•  Infinidadederevisõesevariantesjuntas(semcontarversõesrascunho)

LeonardoMurta GerênciadeConfiguração 21

Histórico do Git

Masafinal,paraqueservemversões?

•  Sincronizarequipes•  Reproduzirconfiguraçõespassadas•  Explorarpossibilidades•  Segregardesenvolvedores•  Customizarprodutos(LPS)•  Rastrearaintroduçãodebugs(bisect)•  EntenderaevoluçãodesoBware(MSR)•  Auditarmudanças(annotate)•  Etc.

LeonardoMurta GerênciadeConfiguração 22

Controledeversões

LeonardoMurta GerênciadeConfiguração 23

Armazenamento?Colaboração?Consulta?

Topologia?Artefato?

Artefato

LeonardoMurta GerênciadeConfiguração 24

Diretório Arquivo

ElementoFS

ArquivoBinário ArquivoTexto Linha

Topologia

LeonardoMurta GerênciadeConfiguração 25

Repositório

EspaçodeTrabalho

Centralizado Distribuído

chec

k-in

/ co

mm

it

check-out / update Repositório

EspaçodeTrabalhoch

eck-

in

check-out / update

Repositório

EspaçodeTrabalho

clone / pull

push

Armazenamento

LeonardoMurta GerênciadeConfiguração 26

v.3

v.2

v.1

Completo

delta1à2

v.1

Forward

delta2à3

delta3à2

v.3

Reverse

delta2à1

In-line

v.1 v.2/3

v.1/2 v.3

Colaboração

LeonardoMurta GerênciadeConfiguração 27

m.3

m.2

m.1

Pessimista

junção

m.1

Otimista Otimista com Percepção

m.2m.3

junção

m.1

m.2m.3

Consulta

LeonardoMurta GerênciadeConfiguração 28

Repositório(versão1)Artefato1(versão1)Artefato2(versão1)Artefato3(versão1)

Repositório(versão2)Artefato1(versão2)Artefato2(versão1)Artefato3(versão1)

Repositório(versão0)Repositório(versão3)Artefato1(versão2)Artefato2(versão3)Artefato3(versão1)Artefato4(versão3)

Repositório(versão4)Artefato1(versão4)Artefato2(versão3)Artefato3(versão4)Artefato4(versão3)

Artefato1Versão1Versão2Versão4

Artefato2Versão1Versão3

Artefato3Versão1Versão4

Artefato4Versão3

Consultaporartefato1ªmodificação

2ªmodificação4ªmodificação3ªmodificação

Consulta

LeonardoMurta GerênciadeConfiguração 29

Repositório(versão1)Artefato1(versão1)Artefato2(versão1)Artefato3(versão1)

Repositório(versão2)Artefato1(versão2)Artefato2(versão1)Artefato3(versão1)

Repositório(versão0)

1ªmodificação

2ªmodificação

Repositório(versão3)Artefato1(versão2)Artefato2(versão3)Artefato3(versão1)Artefato4(versão3)

Repositório(versão4)Artefato1(versão4)Artefato2(versão3)Artefato3(versão4)Artefato4(versão3)

4ªmodificação3ªmodificação

1ªmodificaçãoArtefato1adicionadoArtefato2adicionadoArtefato3adicionado

2ªmodificaçãoArtefato1modificado

3ªmodificaçãoArtefato2modificadoArtefato4adicionado

Consultapormodificação

4ªmodificaçãoArtefato1modificadoArtefato3modificado

Tratamentodevariantesemramos(branches)

•  Versõesquenãoseguemalinhaprincipaldedesenvolvimento

•  Fornecemisolamentoparaoprocessodedesenvolvimento–  Ramosusualmentesãomigradosparaalinhaprincipaldedesenvolvimento

–  Amigraçãopodesercomplicadanocasodeisolamentolongo•  Caracterísicasdosramossecomparadosaespaçosdetrabalho–  Sãocomparilhadosporoutraspessoas(espaçosdetrabalhosãoisolados)

–  Residemnoservidor(espaçosdetrabalhoresidemnocliente)–  Sãohistóricos(espaçosdetrabalhosãomomentâneos)

LeonardoMurta GerênciadeConfiguração 30

LeonardoMurta GerênciadeConfiguração 31

EstratégiabásicadeRamificação•  Manutençãoemsérie

–  Ramoprincipal:evolução–  Ramosauxiliares:correções

•  Foco–  Desenvolvimentoin-house–  Clienteúnico(e.g.:aplicaçõesWeb)

•  Dificuldadedemanutençãodeváriasliberaçõesemparalelo

Sistema

Rel. 1 1.0 1.1 1.2

Rel. 2 2.0 2.1

Verif. Verif.

1.0 RC 2.0 RC Evolução Evolução Desenv.

Correção Correção Correção

Merge•  Espaçosdetrabalho•  Ramos

LeonardoMurta GerênciadeConfiguração 32

ABCDEFGHI

JKLDEF

ABCouJKL?DEFGHIounada?

2-waymerge

Merge•  Espaçosdetrabalho•  Ramos

LeonardoMurta GerênciadeConfiguração 33

ABCDEFGHI

JKLDEF

ABCDEF

JKLDEFGHI

3-waymerge

GerênciadeConfiguração 34

Exemplo(mergenoEclipse)

LeonardoMurta

Principaissistemasdecontroledeversãoopen-source

LeonardoMurta GerênciadeConfiguração 35

SistemadeGerênciadeConfiguração

LeonardoMurta GerênciadeConfiguração 36

Artefatos

ControledeVersões

ConstruçãoeRelease

ControledeModificações

Solicitações

Baseline•  ConfiguraçãorevisadaeaprovadaqueservecomobaseparaumapróximaetapadedesenvolvimentoequesomentepodesermodificadaviaprocessoformaldeGCS

•  Sãoestabelecidasaofinaldecadafasededesenvolvimento– Análise(funcional)–  Projeto(allocated)–  Implementação(product)

•  Momentodecriar:balanceamentoentrecontroleeburocracia

LeonardoMurta GerênciadeConfiguração 37

Baseline(níveisdecontrole)

LeonardoMurta GerênciadeConfiguração 38

Coordenaçãoc/auditoria Controle

Prébaseline:• Informal• Semrequisição• Semaprovação• Semverificação• Ágil• Ad-hoc

Pósbaseline:• Formal• Comrequisição• Comaprovação• Comverificação• Burocráico• PlanejadoeControlado

Níveldecontrole

Baseline(níveisdecontrole)

Req. Análise Projeto Análise Projeto Análise Projeto 1 Inform. - Formal Inform. Formal Formal 2 - - Inform. - Formal Inform.

LeonardoMurta GerênciadeConfiguração 39

Requisito1 Análise ProjetoBaseline1:

• An.Req.1

Requisito2 Análise Projeto

Tempo

Baseline2:• An.Req.1• Pr.Req.1• An.Req.2

Controledemodificações•  Tarefas

– Solicitaçãodemodificação– Classificaçãodamodificação– Análisedamodificação– Avaliaçãodamodificação–  Implementaçãodamodificação– Verificaçãodamodificação– Geraçãodebaseline

LeonardoMurta GerênciadeConfiguração 40

LeonardoMurta GerênciadeConfiguração 41

Controledemodificações

[Leon,2000]Requisiçãodemodificação

LeonardoMurta GerênciadeConfiguração 42

Controledemodificações

[White,2000]JaneladecriaçãodeformuláriosdoClearQuest

LeonardoMurta GerênciadeConfiguração 43

Controledemodificações•  OcritériodeclassificaçãodamodificaçãodeveestarexplicitadonoplanodeGC

•  Aclassificaçãovisapriorizarmodificaçõesmaisimportantes(críicas,fatais,nãofatais,cosméicas)

•  Aanálisevisarelatarosimpactosemcusto,cronograma,funcionalidades,etc.daimplementaçãodamodificação

•  Casoaanáliseconcluaquenãoexistechancedeaprovaramodificação(casosextremos),podeocorrerrejeiçãoantesdaavaliaçãoparapouparcustosnoprocesso

LeonardoMurta GerênciadeConfiguração 44

Controledemodificações

[Leon,2000]Análisedemodificação

LeonardoMurta GerênciadeConfiguração 45

Controledemodificações•  Aavaliaçãouilizaráarequisiçãodemodificaçãoeolaudoda

análiseparatomaradecisão

–  Arequisiçãopodeseraceita,rejeitadaouadiada•  Aimplementaçãodeveserseguidaportestesdeunidade•  Duranteaverificação,devemseraplicadostestesdesistema•  Apósageraçãodanovabaseline,deveserdecididoseelaserá

consideradaumanovaliberação

Controledemodificações•  Casoespecial:Correçõesemergenciais

– Nocasodecorreçõesemergenciais,podemsercriadosramossemanecessidadedoprocessoformal

– Emalgummomentoessesramosdeverãosofrerjunçãoparaalinhaprincipaldedesenvolvimento

– Esseprocedimentodeveestarexplicitadonoprocesso!

LeonardoMurta GerênciadeConfiguração 46

Controledemodificações•  Casoespecial:Defeitos

– Algunssistemastratamdefeitosdeformadiferentedasdemaisrequisições

– Acorreçãodedefeitoséumtratamentosintomáico– Éimportantedescobrirorealmoivoparaoacontecimentododefeitoparapossibilitaraprevençãodedefeitosfuturos

– Aanálisedecausaéúilparadescobrirfalhasnoprocessodedesenvolvimento(e.g.faltadetreinamento,padrõesinadequados,ferramentasinadequadas)

LeonardoMurta GerênciadeConfiguração 47

LeonardoMurta GerênciadeConfiguração 48

Contabilizaçãodasituação•  Tarefas

–  Armazenamentodasinformaçõesgeradas

–  Propagaçãodessasinformaçõesaosinteressadosatravésderelatórios

•  Metáforadecontabancáriaparaitemdeconfiguração

•  Permitequemétricassejamuilizadascomointuitodemelhoriadoprocessoeesimaivadecustosfuturos

•  Fornecerelatóriosgerenciaisad-hoc

LeonardoMurta GerênciadeConfiguração 49

Contabilizaçãodasituação

Resultado do relatório no modo tabular no Bugzilla

LeonardoMurta GerênciadeConfiguração 50

Contabilizaçãodasituação

Resultado da consulta sobre séries no Bugzilla

LeonardoMurta GerênciadeConfiguração 51

Exemplodeferramentasdecontroledemodificações

•  Livre–  Bugzilla–  Manis–  Redmine–  Trac

•  Comercial–  ClearQuest(IBMRaional)–  JIRA(Atlassian)–  StarTeam(Borland)–  Synergy/Change(Telelogic)–  TeamTrack(Serena)–  TeamFoundaionServer(MicrosoB)

SistemadeGerênciadeConfiguração

LeonardoMurta GerênciadeConfiguração 52

Artefatos

ControledeVersões

ConstruçãoeRelease

ControledeModificações

Solicitações

LeonardoMurta GerênciadeConfiguração 53

Auditoriadaconfiguração

•  Deveocorreraomenosantesdeumaliberação(release)

•  Tarefas–  Verificaçãofuncional,assegurandoqueabaselinecumpreoquefoiespecificado

–  Verificação�sica,assegurandoqueabaselineécompleta(todosositensdeconfiguraçãoespecificados)

•  Auditoriasservemparagaranirqueosprocedimentosepadrõesforamaplicados

LeonardoMurta GerênciadeConfiguração 54

Auditoriadaconfiguração•  Aauditoriafuncionalocorreatravésdarevisãodosplanos,dados,

metodologiaeresultadodosteste,paraverificarsesãosaisfatórios

•  AauditoriaAsicaexaminaaestruturadetodosositensdeconfiguraçãoquecompõemabaseline

•  Aauditoria�sicaéefetuadaapósaauditoriafuncional

•  PodemocorrerauditoriasnoprópriosistemadeGCpelosmantenedoresdoplanodeGC,paraverificarseaspolíicaseprocedimentosestãosendocumpridos

LeonardoMurta GerênciadeConfiguração 55

Gerenciamentodereleases•  Descriçãodecomoconstruir,liberareentregarosistema

–  Linguagemnatural(conhecimento)

–  Linguagemcomputacional(automação)

–  Manterosdescritoresedocumentossobgerênciadeconfiguração!

•  Definiçãodassituaçõesondeoprocessopodesertemporariamentedesviado

•  Cuidado:Releasesmuitocurtaspodemlevaracírculo-viciosodedefeitos...

Gerenciamentodereleases

Releases Curtas +

Testes manuais +

Equipe pequena Baixa cobertura

dos testes

Defeitos no produto final

Necessidade de novas releases

Solicitações de correção dos defeitos

LeonardoMurta GerênciadeConfiguração 56

LeonardoMurta GerênciadeConfiguração 57

Exemplodeferramentasdecontroledeconstruçãoeliberação

•  Livre– Ant– NAnt– Make– Maven– Rake

•  Comercial– ClearMake(IBMRaional)– MSBuild(MicrosoB)– Synergy/CMObjectMake(Telelogic)

PrincipaisReferênciasBibliográficas•  AlexisLeon,“AGuidetoSoBwareConfiguraionManagement”,ArtechHousePublishers,2000.

•  AnneHass,“ConfiguraionManagementPrinciplesandPracices”,Boston,MA,PearsonEducaion,Inc.

•  Conradi,R.andWes�echtel,B.VersionModelsforSoBwareConfiguraionManagement.ACMCompuingSurveys,v.30,n.2,p.232-282,1998.

•  Dart,S.,1991,“ConceptsinConfiguraionManagementSystems”,InternaionalWorkshoponSoBwareConfiguraionManagement(SCM),Trondheim,Norway(June),pp.1-18.

•  Pressman,R.S.(1997).“SoBwareEngineering:APraciioner'sApproach”,McGraw-Hill.

LeonardoMurta GerênciadeConfiguração 58

GerênciadeConfiguração

LeonardoGrestaPaulinoMurtaleomurta@ic.uff.br