Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho...
Transcript of Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho...
Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Engenharia de Software
Gerência de Configuração e Mudanças
Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Isso acontece?• Como assim? Você não tem como
recuperar aquela versão do sistema do mês passado?
• Onde está aquele relatório 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 Informação Engenharia de Software – Prof. Ciro Coelho
Isso acontece?• A funcionalidade mudou? Quem mandou
mudar? Ah, o cliente... Por que ninguém me avisou?
• Mas vai dar um trabalhão pra mudar esse negócio!!
• Não, não, não salva agora não!!! Vai sobrescrever meu arquivo!
• Ops, a mudança não deu certo. Como é que isso estava antes mesmo?
Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Isso acontece?- Já fiz aquela mudança que você pediu.
- Mas eu não pedi mudança nenhuma.
- Bem, alguém deve ter pedido
Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Definições• Gerência de Configuração é a disciplina
que trata – da realização de mudanças de forma
planejada e sistemática– do controle formal da integridade de artefatos
e atividades
Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Benefícios• Estabilidade
• Confiabilidade
• Tomada de decisões mais seguras
• Padronização
Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Mitos• GC é reativo
• GC é um gargalo
• GC é custoso
• GC atrasa a resolução de problemas (liberação de patches)
Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Sem Gerência de Configuração
• Atrasos no projeto
• Falta de visibilidade das mudanças
• Altos custos de manutenção
• Surpresas desagradáveis
• Falta de qualidade nos serviços
• Eterna dependência dos “donos” do sistema
Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Gerenciamento de MudançasConceitos
• Baseline– Uma versão estável e aprovada do sistema
• Change Request (CR) / Requisição de Mudanças– Um pedido formal para que uma mudança em uma
baseline seja realizada
• Configuration Control Board (CCB)– Grupo que analisa a viabilidade, prioridade e
necessidade das mudanças solicitadas, autoriza a criação de baselines etc.
Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Processo de Mudanças
Pergunta fundamental: a mudança afeta baselines?
Sim: tratamento formal
Não: tratamento informal (não é sinônimo de bagunça!!)
Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Requisição informal de mudança
Requisição formal de mudança
Análise informal de impacto
Análise formal de impacto
Aprovação do CCB
Comunicação informal da mudança
Comunicação formal da mudança
Realização da mudança
Alteração em baseline
Sem alteração em baseline
Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Ferramentas para gerenciamento de mudanças
• Bugzilla
• Mantis
• Request Tracker
• Clear Quest
• Jira
• EasyTrack
• Planilha eletrônica
Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Problemas tratados pelo Controle de Versões
• Atualizações simultâneas– Várias pessoas atualizando os mesmos
artefatos
• Notificações limitadas– Modificações são realizadas, mas as pessoas
afetadas não são comunicadas
• Múltiplas versões– Lidar com várias versões de artefatos e do
próprio sistema
Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Controle de versões• Item de configuração: produto ou conjunto de
produtos de trabalho gerenciado pelo processo de Gerência de Configuração
• Repositório central: repositório, normalmente localizado em um servidor, onde as mudanças efetuadas nos repositórios locais são consolidadas
• Repositório local: repositório, normalmente localizado nos clientes, onde as mudanças são realizadas antes de serem enviadas ao repositório central
Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Controle de versões• Módulo: conjunto de itens de configuração. Em
geral, corresponde ao diretório mais externo da “árvore” de diretórios do projeto e possui submódulos que correspondem aos subdiretórios
• Import: adição de um módulo ao repositório central
• Checkout: fazer o “download” de um módulo do repositório central para o repositório local
Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Controle de versões• Commit: atualizar o repositório central com os
arquivos modificados no repositório local• Update: atualizar o repositório local com a
versão mais recente do repositório central• Tag: um “label” que identifica um conjunto de
itens de configuração com suas respectivas versões. Uma “fotografia” do repositório em um dado momento
Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Controle de versões• Tronco, tronco principal: principal “galho” da
“árvore” de versões., principal linha de desenvolvimento
• Branch: um “galho”, uma linha alternativa de desenvolvimento
• Merge: consolidação de duas versões diferentes do mesmo arquivo, preservando as alterações feitas em cada uma das versões
• Conflito: possível conseqüência de um merge, quando não é possível preservar as alterações feitas em ambos os arquivos
Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Controle de versões
Consolidação Centralizada
Modificações Distribuídas
Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Controle de Versões
Servidor
(Repositório Central)
Cliente
(Repositório Local)
Novo item
Cliente Import
Checkout
Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Controle de Versões
Servidor
(Repositório Central)
Cliente
(Repositório Local)
Update
Commit
Atualização de item
Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Aplicação 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?Atenção:Não confundir versão do item com versão do produto
Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Dicas• Updates e commits constantes. Cópias locais
muito desatualizadas causam um número grande de conflitos.
• Resolver conflitos com a participação de todos os interessados.
• Não criar muitos branches. Em especial, não criar muitos níveis de branches.
• Não “comitar” código instável.
Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Ferramentas de controle de versões
• CVS
• VSS
• PVCS
• SubVersion
• ClearCase
• Confusão de diretórios, backups...
Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Responsabilidades do Gerente de Configuração
• Configurar, manter e dar suporte ao uso de ferramentas de configuração
• Criar e manter estrutura de diretórios e controle de acesso
• Criar e manter um processo de “build”, de preferência automatizado
• Criar e manter branches e tags• Estabelecer baselines• Preparar e liberar releases• Fazer auditorias de configuração