Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento...

39
Introdução à Gerência de Configuração Leonardo Gresta Paulino Murta [email protected]

Transcript of Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento...

Page 1: Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento de GCS (S = Software) –Foco ainda em aplicações militares e aeroespaciais •Anos

Introdução àGerência de Configuração

Leonardo Gresta Paulino Murta

[email protected]

Page 2: Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento de GCS (S = Software) –Foco ainda em aplicações militares e aeroespaciais •Anos

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

Page 3: Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento de GCS (S = Software) –Foco ainda em aplicações militares e aeroespaciais •Anos

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

Page 4: Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento de GCS (S = Software) –Foco ainda em aplicações militares e aeroespaciais •Anos

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

Page 5: Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento de GCS (S = Software) –Foco ainda em aplicações militares e aeroespaciais •Anos

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

Page 6: Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento de GCS (S = Software) –Foco ainda em aplicações militares e aeroespaciais •Anos

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

Page 7: Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento de GCS (S = Software) –Foco ainda em aplicações militares e aeroespaciais •Anos

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

Page 8: Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento de GCS (S = Software) –Foco ainda em aplicações militares e aeroespaciais •Anos

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

Page 9: Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento de GCS (S = Software) –Foco ainda em aplicações militares e aeroespaciais •Anos

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

Page 10: Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento de GCS (S = Software) –Foco ainda em aplicações militares e aeroespaciais •Anos

Controle de versões

Leonardo Murta Introdução à Gerência de Configuração 10

Armazenamento?

Colaboração?

Consulta?

Topologia?

ICGranularidade?

Page 11: Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento de GCS (S = Software) –Foco ainda em aplicações militares e aeroespaciais •Anos

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

Page 12: Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento de GCS (S = Software) –Foco ainda em aplicações militares e aeroespaciais •Anos

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

Page 13: Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento de GCS (S = Software) –Foco ainda em aplicações militares e aeroespaciais •Anos

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

Page 14: Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento de GCS (S = Software) –Foco ainda em aplicações militares e aeroespaciais •Anos

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

Page 15: Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento de GCS (S = Software) –Foco ainda em aplicações militares e aeroespaciais •Anos

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

Page 16: Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento de GCS (S = Software) –Foco ainda em aplicações militares e aeroespaciais •Anos

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

Page 17: Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento de GCS (S = Software) –Foco ainda em aplicações militares e aeroespaciais •Anos

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

Page 18: Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento de GCS (S = Software) –Foco ainda em aplicações militares e aeroespaciais •Anos

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

Page 19: Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento de GCS (S = Software) –Foco ainda em aplicações militares e aeroespaciais •Anos

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

Page 20: Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento de GCS (S = Software) –Foco ainda em aplicações militares e aeroespaciais •Anos

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

Page 21: Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento de GCS (S = Software) –Foco ainda em aplicações militares e aeroespaciais •Anos

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

Page 22: Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento de GCS (S = Software) –Foco ainda em aplicações militares e aeroespaciais •Anos

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

Page 23: Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento de GCS (S = Software) –Foco ainda em aplicações militares e aeroespaciais •Anos

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

Page 24: Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento de GCS (S = Software) –Foco ainda em aplicações militares e aeroespaciais •Anos

Leonardo Murta Introdução à Gerência de Configuração 24

Controle de modificações

[Leon, 2000] Requisição de modificação

Page 25: Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento de GCS (S = Software) –Foco ainda em aplicações militares e aeroespaciais •Anos

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

Page 26: Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento de GCS (S = Software) –Foco ainda em aplicações militares e aeroespaciais •Anos

Leonardo Murta Introdução à Gerência de Configuração 26

Controle de modificações

[Leon, 2000] Análise de modificação

Page 27: Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento de GCS (S = Software) –Foco ainda em aplicações militares e aeroespaciais •Anos

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

Page 28: Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento de GCS (S = Software) –Foco ainda em aplicações militares e aeroespaciais •Anos

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

Page 29: Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento de GCS (S = Software) –Foco ainda em aplicações militares e aeroespaciais •Anos

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

Page 30: Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento de GCS (S = Software) –Foco ainda em aplicações militares e aeroespaciais •Anos

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

Page 31: Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento de GCS (S = Software) –Foco ainda em aplicações militares e aeroespaciais •Anos

Leonardo Murta Introdução à Gerência de Configuração 31

Contabilização da situação

Resultado da consulta sobre séries no Bugzilla

Page 32: Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento de GCS (S = Software) –Foco ainda em aplicações militares e aeroespaciais •Anos

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

Page 33: Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento de GCS (S = Software) –Foco ainda em aplicações militares e aeroespaciais •Anos

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

Page 34: Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento de GCS (S = Software) –Foco ainda em aplicações militares e aeroespaciais •Anos

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

Page 35: Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento de GCS (S = Software) –Foco ainda em aplicações militares e aeroespaciais •Anos

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

Page 36: Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento de GCS (S = Software) –Foco ainda em aplicações militares e aeroespaciais •Anos

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

Page 37: Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento de GCS (S = Software) –Foco ainda em aplicações militares e aeroespaciais •Anos

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...

Page 38: Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento de GCS (S = Software) –Foco ainda em aplicações militares e aeroespaciais •Anos

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

Page 39: Introdução à Gerência de Configuraçãoleomurta/courses/2010.2/labgc/aula2.pdf · –Surgimento de GCS (S = Software) –Foco ainda em aplicações militares e aeroespaciais •Anos

Introdução àGerência de Configuração

Leonardo Gresta Paulino Murta

[email protected]