Engenharia de Software Gerncia de Configurao e Mudanas Faculdade 7 de Setembro Sistemas de Informao Engenharia de Software Prof. Ciro Coelho Isso acontece? Como assim? Voc no tem como recuperar aquela verso do sistema do ms passado? Onde est aquele relatrio que eu criei ontem? Quem foi que mudou essa tela? Ei, aquele defeito que a gente tinha consertado apareceu de novo!! Faculdade 7 de Setembro Sistemas de Informao Engenharia de Software Prof. Ciro Coelho Isso acontece? A funcionalidade mudou? Quem mandou mudar? Ah, o cliente... Por que ningum me avisou? Mas vai dar um trabalho pra mudar esse negcio!! No, no, no salva agora no!!! Vai sobrescrever meu arquivo! Ops, a mudana no deu certo. Como que isso estava antes mesmo? Faculdade 7 de Setembro Sistemas de Informao Engenharia de Software Prof. Ciro Coelho Isso acontece? - J fiz aquela mudana que voc pediu. - Mas eu no pedi mudana nenhuma. - Bem, algum deve ter pedido Faculdade 7 de Setembro Sistemas de Informao Engenharia de Software Prof. Ciro Coelho Definies Gerncia de Configurao a disciplina que trata da realizao de mudanas de forma planejada e sistemtica do controle formal da integridade de artefatos e atividades
Faculdade 7 de Setembro Sistemas de Informao Engenharia de Software Prof. Ciro Coelho Benefcios Estabilidade Confiabilidade Tomada de decises mais seguras Padronizao Faculdade 7 de Setembro Sistemas de Informao Engenharia de Software Prof. Ciro Coelho Mitos GC reativo GC um gargalo GC custoso GC atrasa a resoluo de problemas (liberao de patches) Faculdade 7 de Setembro Sistemas de Informao Engenharia de Software Prof. Ciro Coelho Sem Gerncia de Configurao Atrasos no projeto Falta de visibilidade das mudanas Altos custos de manuteno Surpresas desagradveis Falta de qualidade nos servios Eterna dependncia dos donos do sistema Faculdade 7 de Setembro Sistemas de Informao Engenharia de Software Prof. Ciro Coelho Gerenciamento de Mudanas Conceitos Baseline Uma verso estvel e aprovada do sistema Change Request (CR) / Requisio de Mudanas Um pedido formal para que uma mudana em uma baseline seja realizada Configuration Control Board (CCB) Grupo que analisa a viabilidade, prioridade e necessidade das mudanas solicitadas, autoriza a criao de baselines etc. Faculdade 7 de Setembro Sistemas de Informao Engenharia de Software Prof. Ciro Coelho Processo de Mudanas Pergunta fundamental: a mudana afeta baselines? Sim: tratamento formal No: tratamento informal (no sinnimo de baguna!!) Faculdade 7 de Setembro Sistemas de Informao Engenharia de Software Prof. Ciro Coelho Requisio informal de mudana Requisio formal de mudana Anlise informal de impacto Anlise formal de impacto Aprovao do CCB Comunicao informal da mudana Comunicao formal da mudana Realizao da mudana Alterao em baseline Sem alterao em baseline Faculdade 7 de Setembro Sistemas de Informao Engenharia de Software Prof. Ciro Coelho Ferramentas para gerenciamento de mudanas Bugzilla Mantis Request Tracker Clear Quest Jira EasyTrack Planilha eletrnica Faculdade 7 de Setembro Sistemas de Informao Engenharia de Software Prof. Ciro Coelho Problemas tratados pelo Controle de Verses Atualizaes simultneas Vrias pessoas atualizando os mesmos artefatos Notificaes limitadas Modificaes so realizadas, mas as pessoas afetadas no so comunicadas Mltiplas verses Lidar com vrias verses de artefatos e do prprio sistema Faculdade 7 de Setembro Sistemas de Informao Engenharia de Software Prof. Ciro Coelho Controle de verses Item de configurao: produto ou conjunto de produtos de trabalho gerenciado pelo processo de Gerncia de Configurao Repositrio central: repositrio, normalmente localizado em um servidor, onde as mudanas efetuadas nos repositrios locais so consolidadas Repositrio local: repositrio, normalmente localizado nos clientes, onde as mudanas so realizadas antes de serem enviadas ao repositrio central Faculdade 7 de Setembro Sistemas de Informao Engenharia de Software Prof. Ciro Coelho Controle de verses Mdulo: conjunto de itens de configurao. Em geral, corresponde ao diretrio mais externo da rvore de diretrios do projeto e possui submdulos que correspondem aos subdiretrios Import: adio de um mdulo ao repositrio central Checkout: fazer o download de um mdulo do repositrio central para o repositrio local Faculdade 7 de Setembro Sistemas de Informao Engenharia de Software Prof. Ciro Coelho Controle de verses Commit: atualizar o repositrio central com os arquivos modificados no repositrio local Update: atualizar o repositrio local com a verso mais recente do repositrio central Tag: um label que identifica um conjunto de itens de configurao com suas respectivas verses. Uma fotografia do repositrio em um dado momento Faculdade 7 de Setembro Sistemas de Informao Engenharia de Software Prof. Ciro Coelho Controle de verses Tronco, tronco principal: principal galho da rvore de verses., principal linha de desenvolvimento Branch: um galho, uma linha alternativa de desenvolvimento Merge: consolidao de duas verses diferentes do mesmo arquivo, preservando as alteraes feitas em cada uma das verses Conflito: possvel conseqncia de um merge, quando no possvel preservar as alteraes feitas em ambos os arquivos Faculdade 7 de Setembro Sistemas de Informao Engenharia de Software Prof. Ciro Coelho Controle de verses Consolidao Centralizada Modificaes Distribudas Faculdade 7 de Setembro Sistemas de Informao Engenharia de Software Prof. Ciro Coelho Controle de Verses Servidor (Repositrio Central) Cliente (Repositrio Local) Novo item Cliente Import Checkout Faculdade 7 de Setembro Sistemas de Informao Engenharia de Software Prof. Ciro Coelho Controle de Verses Servidor (Repositrio Central) Cliente (Repositrio Local) Update Commit Atualizao de item Faculdade 7 de Setembro Sistemas de Informao Engenharia de Software Prof. Ciro Coelho Aplicao dos conceitos 1.1 1.2 1.3 1.4 1.5 1.2.1 1.2.2 1.2.3 branch tag Versao_4_0 merge conflito? Ateno: No confundir verso do item com verso do produto Faculdade 7 de Setembro Sistemas de Informao Engenharia de Software Prof. Ciro Coelho Dicas Updates e commits constantes. Cpias locais muito desatualizadas causam um nmero grande de conflitos. Resolver conflitos com a participao de todos os interessados. No criar muitos branches. Em especial, no criar muitos nveis de branches. No comitar cdigo instvel. Faculdade 7 de Setembro Sistemas de Informao Engenharia de Software Prof. Ciro Coelho Ferramentas de controle de verses CVS VSS PVCS SubVersion ClearCase Confuso de diretrios, backups...
Faculdade 7 de Setembro Sistemas de Informao Engenharia de Software Prof. Ciro Coelho Responsabilidades do Gerente de Configurao Configurar, manter e dar suporte ao uso de ferramentas de configurao Criar e manter estrutura de diretrios e controle de acesso Criar e manter um processo de build, de preferncia automatizado Criar e manter branches e tags Estabelecer baselines Preparar e liberar releases Fazer auditorias de configurao