Post on 10-Dec-2018
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 Misto
m.2 m.3
junção
m.1 m.2 m.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