Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho...

24
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

Transcript of Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho...

Page 1: 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

Engenharia de Software

Gerência de Configuração e Mudanças

Page 2: 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!!

Page 3: 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?• 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?

Page 4: 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?- Já fiz aquela mudança que você pediu.

- Mas eu não pedi mudança nenhuma.

- Bem, alguém deve ter pedido

Page 5: 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

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

Page 6: 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

Benefícios• Estabilidade

• Confiabilidade

• Tomada de decisões mais seguras

• Padronização

Page 7: 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

Mitos• GC é reativo

• GC é um gargalo

• GC é custoso

• GC atrasa a resolução de problemas (liberação de patches)

Page 8: 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

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

Page 9: 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

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.

Page 10: 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

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!!)

Page 11: 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

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

Page 12: 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

Ferramentas para gerenciamento de mudanças

• Bugzilla

• Mantis

• Request Tracker

• Clear Quest

• Jira

• EasyTrack

• Planilha eletrônica

Page 13: 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

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

Page 14: 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

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

Page 15: 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

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

Page 16: 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

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

Page 17: 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

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

Page 18: 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

Controle de versões

Consolidação Centralizada

Modificações Distribuídas

Page 19: 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

Controle de Versões

Servidor

(Repositório Central)

Cliente

(Repositório Local)

Novo item

Cliente Import

Checkout

Page 20: 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

Controle de Versões

Servidor

(Repositório Central)

Cliente

(Repositório Local)

Update

Commit

Atualização de item

Page 21: 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

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

Page 22: 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

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.

Page 23: 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

Ferramentas de controle de versões

• CVS

• VSS

• PVCS

• SubVersion

• ClearCase

• Confusão de diretórios, backups...

Page 24: 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

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