Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento...
Transcript of Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento...
Leonardo Murta Introdução à Gerência de Configuração 2
Definição
• Jacky Estublier
– GC é a disciplina que nos permite evoluir produtos de software de forma controlada, e, desta forma, contribui na satisfação de restrições de qualidade e de tempo
• IEEE Std 610
– GC é uma disciplina que aplica procedimentos técnicos e administrativospara identificar e documentar as características físicas e funcionais de um item de configuração, controlar as alterações nessas características, armazenar e relatar o processamento das modificações e o estágio da implementação e verificar a compatibilidade com os requisitos especificados
Leonardo Murta Introdução à Gerência de Configuração 3
Histórico
• Anos 50
– GC para produção de aviões de guerra e naves espaciais
• Anos 60 e 70
– Surgimento de GCS (S = Software)
– Foco ainda em aplicações militares e aeroespaciais
• Anos 80 e 90
– Mudança de foco (MIL EIA, IEEE, ISO, etc.)
– Surgimento das primeiras normas internacionais
– Assimilação por organizações não militares
Leonardo Murta Introdução à Gerência de Configuração 4
Sistema x Funções de GC
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
Sistema de Gerência de Configuração
Leonardo Murta Introdução à Gerência de Configuração 5
Versão 1
Versão 2
Versão 3
Versão 4
Versão 5
Sistema de Gerência de Configuração
Leonardo Murta Introdução à Gerência de Configuração 6
Versão 1
Versão 2
Versão 3
Versão 4
Versão 5
Sistema de Gerência de Configuração
Leonardo Murta Introdução à Gerência de Configuração 7
Versão 1
Versão 2
Versão 3
Versão 4
Versão 5
Sistema de Gerência de Configuração
Leonardo Murta Introdução à Gerência de Configuração 8
Artefatos
Controle de Versões
Construção e Release
Controle de Modificações
Solicitações
Sistema de Gerência de Configuração
Leonardo Murta Introdução à Gerência de Configuração 9
Artefatos
Controle de Versões
Construção e Release
Controle de Modificações
Solicitações
Controle de versões
Leonardo Murta Introdução à Gerência de Configuração 10
Armazenamento?
Colaboração?
Consulta?
Topologia?
ICGranularidade?
Leonardo Murta Introdução à Gerência de Configuração 11
Item de configuração
Sistema
Subsistema
Procedimento
Módulo
Gra
nu
larid
ad
eGrossa
Fina
Comando Parágrafo
Seção
DocumentoPrograma
Perspectiva: Desenvolvimento Gerencial
Linha
Arquivo
Diretório
Processo
Ne
ce
ssid
ad
e d
e fe
rram
en
tas
Menor
Maior
Topologia
Leonardo Murta Introdução à Gerência de Configuração 12
Repositório
Espaço deTrabalho
Centralizado Distribuído
ch
eck-i
n/
co
mm
it
ch
eck-o
ut/ u
pd
ate Repositório
Espaço deTrabalhoc
he
ck-i
n
ch
eck-o
ut/ u
pd
ate
Repositório
Espaço deTrabalho
clo
ne
/ pu
ll
pu
sh
Armazenamento
Leonardo Murta Introdução à Gerência de Configuração 13
v.3
v.2
v.1
Completo
delta 12
v.1
Forward
delta 23
delta 32
v.3
Reverse
delta 21
In-line
v.1 v.2/3
v.1/2 v.3
Colaboração
Leonardo Murta Introdução à Gerência de Configuração 14
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
Leonardo Murta Introdução à Gerência de Configuração 15
Repositório (versão 1)
Artefato1 (versão 1)Artefato2 (versão 1)Artefato3 (versão 1)
Repositório (versão 2)
Artefato1 (versão 2)Artefato2 (versão 1)Artefato3 (versão 1)
Repositório (versão 0)
Repositório (versão 3)
Artefato1 (versão 2)Artefato2 (versão 3)Artefato3 (versão 1)Artefato4 (versão 3)
Repositório (versão 4)
Artefato1 (versão 4)Artefato2 (versão 3)Artefato3 (versão 4)Artefato4 (versão 3)
Artefato1Versão 1Versão 2Versão 4
Artefato2Versão 1Versão 3
Artefato3Versão 1Versão 4
Artefato4Versão 3
Consulta por artefato
1ª modificação
2ª modificação
4ª modificação3ª modificação
Consulta
Leonardo Murta Introdução à Gerência de Configuração 16
Repositório (versão 1)
Artefato1 (versão 1)Artefato2 (versão 1)Artefato3 (versão 1)
Repositório (versão 2)
Artefato1 (versão 2)Artefato2 (versão 1)Artefato3 (versão 1)
Repositório (versão 0)
1ª modificação
2ª modificação
Repositório (versão 3)
Artefato1 (versão 2)Artefato2 (versão 3)Artefato3 (versão 1)Artefato4 (versão 3)
Repositório (versão 4)
Artefato1 (versão 4)Artefato2 (versão 3)Artefato3 (versão 4)Artefato4 (versão 3)
4ª modificação3ª modificação
1ª modificaçãoArtefato1 adicionadoArtefato2 adicionadoArtefato3 adicionado
2ª modificaçãoArtefato1 modificado
3ª modificaçãoArtefato2 modificadoArtefato4 adicionado
Consulta por modificação
4ª modificaçãoArtefato1 modificadoArtefato3 modificado
Ramos (branches)
• Versões que não seguem a linha principal de desenvolvimento
• Fornecem isolamento para o processo de desenvolvimento – Ramos usualmente são migrados à linha principal de
desenvolvimento– A migração pode ser complicada no caso de isolamento longo
• Características dos ramos se comparados a espaços de trabalho– compartilhados por outras pessoas (espaços de trabalho são
isolados)– residem no servidor (espaços de trabalho residem no cliente)– históricos (espaços de trabalho são momentâneos)– permanentes (espaços de trabalho temporários)
Leonardo Murta Introdução à Gerência de Configuração 17
Junção
• Processo de migração de
– Espaços de trabalho
– Ramos
Leonardo Murta Introdução à Gerência de Configuração 18
Linha 1Linha 2Linha 3
Linha 1’Linha 2
<Linha 1> ou <Linha 1’>?Linha 2<Linha 3> ou nada?
Linha 1Linha 2Linha 3
Linha 1’Linha 2
Linha 1’Linha 2Linha 3
Linha 1Linha 2
2-way merge 3-way merge
Sistema de Gerência de Configuração
Leonardo Murta Introdução à Gerência de Configuração 19
Artefatos
Controle de Versões
Construção e Release
Controle de Modificações
Solicitações
Baseline
• Configuração revisada e aprovada que serve como base para uma próxima etapa de desenvolvimento e que somente pode ser modificada via processo formal de GCS
• São estabelecidas ao final de cada fase de desenvolvimento– Análise (functional)– Projeto (allocated)– Implementação (product)
• Momento de criar: balanceamento entre controle e burocracia
Leonardo Murta Introdução à Gerência de Configuração 20
Baseline (níveis de controle)
Leonardo Murta Introdução à Gerência de Configuração 21
Coordenação c/ auditoria
Controle
Informal:•Pré baseline•Sem requisição•Sem aprovação•Sem verificação•Ágil•Ad-hoc
Formal:•Pós baseline•Com requisição•Com aprovação•Com verificação•Burocrático•Planejado
Nível de controle
Baseline (níveis de controle)
Req. Análise Projeto Análise Projeto Análise Projeto
1 Inform. - Formal Inform. Formal Formal
2 - - Inform. - Formal Inform.
Leonardo Murta Introdução à Gerência de Configuração 22
Requisito 1 Análise ProjetoBaseline 1:
•An. Req. 1
Requisito 2 Análise Projeto
Tempo
Baseline 2:•An. Req. 1•Pr. Req. 1•An. Req. 2
Controle de modificações
• Tarefas
– Solicitação de modificação
– Classificação da modificação
– Análise da modificação
– Avaliação da modificação
– Implementação da modificação
– Verificação da modificação
– Geração de baseline
Leonardo Murta Introdução à Gerência de Configuração 23
Leonardo Murta Introdução à Gerência de Configuração 24
Controle de modificações
[Leon, 2000] Requisição de modificação
Leonardo Murta Introdução à Gerência de Configuração 25
Controle de modificações
• O critério de classificação da modificação deve estar explicitado no plano de GC
• A classificação visa priorizar modificações mais importantes (críticas, fatais, não
fatais, cosméticas)
• A análise visa relatar os impactos em custo, cronograma, funcionalidades, etc.
da implementação da modificação
• Caso a análise conclua que não existe chance de aprovar a modificação (casos
extremos), pode ocorrer rejeição antes da avaliação para poupar custos no
processo
Leonardo Murta Introdução à Gerência de Configuração 26
Controle de modificações
[Leon, 2000] Análise de modificação
Leonardo Murta Introdução à Gerência de Configuração 27
Controle de modificações
• A avaliação utilizará a requisição de modificação e o laudo da
análise para tomar a decisão
– A requisição pode ser aceita, rejeitada ou adiada
• A implementação deve ser seguida por testes de unidade
• Durante a verificação, devem ser aplicados testes de sistema
• Após a geração da nova baseline, deve ser decidido se ela será considerada uma nova liberação
Controle de modificações
• Caso especial: Correções emergenciais
– No caso de correções emergenciais, podem ser criados ramos sem a necessidade do processo formal
– Em algum momento esses ramos deverão sofrer junção para a linha principal de desenvolvimento
– Esse procedimento deve estar explicitado no processo!
Leonardo Murta Introdução à Gerência de Configuração 28
Controle de modificações
• Caso especial: Defeitos– Alguns sistemas tratam defeitos de forma diferente
das demais requisições
– A correção de defeitos é um tratamento sintomático
– É importante descobrir o real motivo para o acontecimento do defeito para possibilitar a prevenção de defeitos futuros
– A análise de causa é útil para descobrir falhas no processo de desenvolvimento (e.g. falta de treinamento, padrões inadequados, ferramentas inadequadas)
Leonardo Murta Introdução à Gerência de Configuração 29
Leonardo Murta Introdução à Gerência de Configuração 30
Contabilização da situação
• Tarefas
– Armazenamento das informações geradas
– Propagação dessas informações aos interessados através de relatórios
• Metáfora de conta bancária para item de configuração
• Permite que métricas sejam utilizadas com o intuito de melhoria
do processo e estimativa de custos futuros
• Fornece relatórios gerenciais ad-hoc
Leonardo Murta Introdução à Gerência de Configuração 31
Contabilização da situação
Resultado da consulta sobre séries no Bugzilla
Sistema de Gerência de Configuração
Leonardo Murta Introdução à Gerência de Configuração 32
Artefatos
Controle de Versões
Construção e Release
Controle de Modificações
Solicitações
Leonardo Murta Introdução à Gerência de Configuração 33
Item derivado
• Item de configuração que pode ser obtido a partir de outro item de
configuração (item fonte)
• Exemplo
– Os itens de configuração que compõem o código-fonte são itens fonte
para o programa executável, que é item derivado
• Estratégias
– Versionamento do item derivado
– Documentação do processo de derivação (roteiro, ferramentas,
ambiente, etc.)
Leonardo Murta Introdução à Gerência de Configuração 34
Construção (building)
• Processo de compilação do sistema a partir dos
itens fonte para uma configuração alvo
• Utiliza arquivo de comandos que descreve como
deve ocorrer a construção
• Exemplo: makefile, build.xml, pom.xml
• Os arquivos de comandos também devem ser
considerados itens de configuração
Leonardo Murta Introdução à Gerência de Configuração 35
Auditoria da configuração
• Deve ocorrer ao menos antes de uma liberação (release)
• Tarefas
– Verificação funcional, assegurando que a baseline cumpre o que foi
especificado
– Verificação física, assegurando que a baseline é completa (todos os
itens de configuração especificados)
• Auditorias servem para garantir que os procedimentos e
padrões foram aplicados
Leonardo Murta Introdução à Gerência de Configuração 36
Auditoria da configuração
• A auditoria funcional ocorre através da revisão dos planos, dados,
metodologia e resultado dos teste, para verificar se são satisfatórios
• A auditoria física examina a estrutura de todos os itens de configuração
que compõem a baseline
• A auditoria física é efetuada após a auditoria funcional
• Podem ocorrer auditorias no próprio sistema de GC pelos mantenedores
do plano de GC, para verificar se as políticas e procedimentos estão
sendo cumpridos
Leonardo Murta Introdução à Gerência de Configuração 37
Gerenciamento de releases
• Descrição de como construir, liberar e entregar o sistema
– Linguagem natural (conhecimento)
– Linguagem computacional (automação)
– Manter os descritores e documentos sob gerência de configuração!
• Definição das situações onde o processo pode ser temporariamente
desviado
• Cuidado: Releases muito curtas podem levar a círculo-vicioso de
defeitos...
Gerenciamento de releases
Releases Curtas
+
Testes manuais
+
Equipe pequenaBaixa cobertura
dos testes
Defeitos no
produto final
Necessidade de
novas releases
Solicitações de
correção dos defeitos
Leonardo Murta Introdução à Gerência de Configuração 38