faculdade 7 de setembro – sistemas de informação engenharia de software – prof. ciro coelho...

Post on 17-Apr-2015

111 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related