Introdução ao Controle de Versões. Leonardo Murta (leomurta@ic.uff.br)



Documentos relacionados
GERÊNCIA DE CONFIGURAÇÃO. Isac Aguiar isacaguiar.com.br

Gerência de Configuração. Leonardo Gresta Paulino Murta

Introdução à Gerência de Configuração. Leonardo Gresta Paulino Murta

Gerência de Configuração de Software Funções

Gerência de Configuração: Terminologia. Leonardo Gresta Paulino Murta

Gerência de Configuração de Software. Msc. Ernani Sales Implementador Oficial MPS.BR

Gerência de Configuração: Terminologia. Leonardo Gresta Paulino Murta

Gerência de Configuração. Profº Rômulo César

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

Agenda. Gerência de Configuração de Software. Atividade Sala. Quais os problemas? P1) Duplicidade de Trabalho. P2) Trabalhos Sobrepostos

Controle de Versão. Prof. Msc. Bruno Urbano Rodrigues.

Sistema de Controle de Versão - CVS

Repositórios de Componentes nas perspectivas de Gerência de Configuração de Software e Reutilização de Software

Gerência de Configuração. Professor: Dr. Eduardo Santana de Almeida Universidade Federal da Bahia

Controle de Versão de Software. Luiz Jácome Júnior

Gerenciamento de configuração. Gerenciamento de Configuração. Gerenciamento de configuração. Gerenciamento de configuração. Famílias de sistemas

ES06 Especialização em Engenharia de Software Prof.: Misael Santos Ago/2010

Introdução à Gerência de Configuração. Leonardo Gresta Paulino Murta

Gerência de Projetos e Manutenção de Software Aula 9 Gerência de Configuração e Mudanças Andréa Magalhães Magdaleno andrea@ic.uff.

PLATAFORMA DE DESENVOLVIMENTO PINHÃO PARANÁ MANUAL DE UTILIZAÇÃO DO CVS NO ECLIPSE

2. GERÊNCIA DE CONFIGURAÇÃO DE SOTWARE

Julio Cezar Fialho Freire de Carvalho 1, Aline Maria Malachini Miotto Amaral 2 1 INTRODUÇÃO

TUTORIAL PRÁTICO SOBRE Git. Versão 1.1

Gerência de Configuração. Leonardo Gresta Paulino Murta

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

ISO/IEC 12207: Gerência de Configuração

Controle de Versão com GIT

Gerência de Configuração: Ramificação e Integração. Leonardo Gresta Paulino Murta

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

Salvando modificações localmente (commit) Enviando modificações para o servidor (push) Sinalizando versão estável (tag)

Git. Leonardo Gresta Paulino Murta

J820. Integração Contínua. com CVS, CruiseControl, Cruise Control. argonavis.com.br. AntHill Gump e Helder da Rocha (helder@acm.

ESTUDO E IMPLEMENTAÇÃO DE UM SISTEMA PARA CONTROLE DE VERSÕES

Gerência de Configuração de Software

Mini-Curso Gerência de Configuração Visão prática

Instituto Federal da Bahia Análise e Desenvolvimento de Sistemas INF022 Tópicos Avançados Gerencia de Configuração

Gerência de Configuração. Técnicas e Práticas no Desenvolvimento do Software

Gestão de Modificações. Fabrício de Sousa

Controle de Versão com CVS

Desenvolvimento de so-ware com Git. Leonardo Gresta Paulino Murta

Gerenciamento de Configuração de Software

Uma Introdução aos Sistemas de Controle de Versão Distribuídos. Leonardo Gresta Paulino Murta

Git e contribuição para projetos Open Source. Bruno Orlandi

Engenharia de Software I

Prof. Júlio Valente Agosto/2015. CV Resumido

O USO DE SOFTWARE PARA CONTROLE DE VERSÕES COMO FERRAMENTA DE APOIO À PRODUÇÃO DE MATERIAIS INSTRUCIONAIS DA EDUCAÇÃO A DISTÂNCIA - EaD

Versionamento de Código. Núcleo de Desenvolvimento de Software

3.1 Baseado em operações

Git. Bruno de Pinho Sche.no

O uso do gestor de conteúdos plone no suporte a processos de software

Gerência de Configuração: Processos e Ferramentas. Leonardo Gresta Paulino Murta

Disciplina: Administração de Departamento de TI. Professor: Aldo Rocha. Aula XI - 15/09/2011

gestão eletrônica do sistema da qualidade: uma ferramenta para o Coordenador da Qualidade A gestão eletrônica QUALIDADE QUALIDADE PROJETOS SAC

Introdução à Qualidade de Software. Profº Aldo Rocha

GIT Controlo de versões

EVOLUÇÃO DE SOFTWARE

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

Integração Contínua com Rational Team Concert, Jenkins e SonarQube

Atividades da Engenharia de Software GERENCIAMENTO DA CONFIGURAÇÃO DE SOFTWARE. Atividades da Engenharia de Software. Processo de Desenvolvimento de

IMPLANTAÇÃO DO PROCESSO DE GERÊNCIA DE CONFIGURAÇÃO DE SOFTWARE SUPORTADO POR UM GUIA DE PROCESSO

UM CASE DE IMPLANTAÇÃO DA GERÊNCIA DE CONFIGURAÇÃO E MUDANÇA (NÍVEL F) DO MPS.BR UTILIZANDO PADRÕES ABERTO PARA O DESENVOLVIMENTO CORPORATIVO

Agenda. Aprendendo Git/GitHub. Definições. Git. História 31/05/2012. Vantagem de usar controle de versão

Gerência de Projetos e Manutenção de Software Aula 10 Gerência de Configuração e Mudanças Andréa Magalhães Magdaleno 2017.

Melhores práticas para desenvolvimento de software e gerenciamento de código

Gerenciamento de Configuração de Software

Paginas em Branco: O sistema possui a possibilidade de configuração, que remove automaticamente as páginas em branco.

Capítulo 25. Gerenciamento de Configuração. Engenharia de Software Prof. Flávio de Oliveira Silva, Ph.D.

Processo Controle de Documentos e Registros

Integração de Ferramentas de Apoio a Processos Outubro 2010 GUSTAVO VAZ NASCIMENTO

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

APLICATIVO PARA ATUALIZAÇÃO EMPRESARIAL

MUDANÇAS NA ISO 9001: A VERSÃO 2015

Plano de Gerência de Configuração

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart.

Projeto SCCM Implantação do ClearCase e ClearQuest UCM

ONE Service Desk. O Service Desk ONE fornece uma infraestrutura de serviços de suporte ITIL completa, contendo:

HISTÓRICO DAS REVISÕES N.ºREVISÃO DATA IDENTIFICAÇÃO DO DOCUMENTO 00 16/04/2007 Emissão inicial

Gerência da Configuração de Software. Teresa Maciel DEINFO/UFRPE

ADMINISTRAÇÃO DE ATIVOS DE TI GERENCIAMENTO DE CONFIGURAÇÃO

Como Utilizar o Escritório Virtual

Tipos de teste de software

Introdução à Engenharia ENG1000

Redmine. Simplificando a gestão de projetos

Fundamentos de Gestão de TI

FORMULÁRIO PARA CRIAÇÃO DE DISCIPLINA

Gerenciamento de software como ativo de automação industrial

Redmine. Simplificando a gestão de projetos

Figura 01 Kernel de um Sistema Operacional

MOD9 Processos de Transição de Serviços

Introdução ao Modelos de Duas Camadas Cliente Servidor

Solução Cadia Projects

Gerência de Configuração em Ambientes de Desenvolvimento de Software Orientados a Organização

Exame de Fundamentos da ITIL

Gestão de Desenvolvimento de Sistemas por Controle de Versão Utilizando SVN. Software para Controle de Versão SVN/Subversion

Arquitetura de Sistemas Distribuídos. Introdução a Sistemas Distribuídos

IBM WebSphere DataStage

Guia de Atualização PROJURIS WEB 4.5. Manual do Técnico Atualização - ProJuris Web 4.5. Manual do Técnico Atualização - ProJuris Web 4.

Transcrição:

Introdução ao Controle de Versões Leonardo Murta (leomurta@ic.uff.br)

Introdução A Engenharia de Software... Abordagem disciplinada para o desenvolvimento de software Grande diversidade de metodologias Leonardo Murta Introdução ao Controle de Versões 2

Introdução Ponto em comum nas metodologias: refinamentos sucessivos de artefatos http://www.colegiosaofrancisco.com.br Leonardo Murta Introdução ao Controle de Versões 3

Mas onde ficam esses artefatos? Tarefas de Engenharia de Software Artefato Artefato novo Artefato modificado Repositório Leonardo Murta Introdução ao Controle de Versões 4

O que são repositórios? Repositórios Lugar seguro onde artefatos são depositados Permitem armazenamento, busca e recuperação de artefatos Servem como um ponto de referência Apóiam no aumento da memória organizacional Leonardo Murta Introdução ao Controle de Versões 5

Gerência de Configuração Desenvolvimento Liberação Implantação Produção Gerência de Configuração Gerência de configuração de software é uma disciplina para o controle da evolução de sistemas de software (Susan Dart, 1991) Leonardo Murta Introdução ao Controle de Versões 6

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 ao Controle de Versões 7

Item de configuração Agregação de hardware e/ou software que será passível de gerência de configuração e tratado como um elemento único Tipos de ICs Produtos de trabalho do projeto Produtos de trabalho de processos Exemplos: plano de GC, requisitos, modelos, código-fonte, etc. Leonardo Murta Introdução ao Controle de Versões 8

Versão Instâncias de um mesmo item de configuração que diferem entre si em algo (tipos: revisões e variantes) IC 1.0 IC 1.1 IC 1.2 IC 1.3 IC 2.0 IC 1.4 IC 2.1 IC 1.1.1 IC 1.1.2 Leonardo Murta Introdução ao Controle de Versões 9

Configuração Um conjunto de versões de Itens de Configuração (IC), onde existe somente uma versão selecionada para cada IC do conjunto Uma configuração pode ser vista como a versão de um IC composto de outros ICs Exemplos Configuração do sistema Configuração do processo Configuração do módulo X Configuração dos requisitos do sistema Configuração do código fonte Leonardo Murta Introdução ao Controle de Versões 10

Etiqueta (tag) Mecanismo usado para identificar uma configuração As diversas versões de ICs marcadas com um rótulo constituem uma configuração do sistema Permite identificar níveis de qualidade dos ICs Sinônimo: rótulo (label) Etiqueta AloMundo.java BemVindo.java build.xml Usuario.java 1.0.0 1.1 1.1 1.1 1.1 1.0.1 1.2 1.2 1.2 1.2 1.3 1.3 Leonardo Murta Introdução ao Controle de Versões 11

Configuração x versão Versão IC IC composto IC primitivo Configuração Genericamente O sistema S é composto pelos arquivos X, Y e Z Concretamente A configuração 5 do sistema S é composta pela versão 2 do arquivo X, versão 4 do arquivo Y e versão 6 do arquivo Z Leonardo Murta Introdução ao Controle de Versões 12

Configuração x versão IC composto IC primitivo 1 IC primitivo 2 IC primitivo 3 Conf. 1 V.1 V.1 V.1 Conf. 2 V.2 V.2 V.2 V.3 V.3 Conf. 3 V.4 Leonardo Murta Introdução ao Controle de Versões 13

Sistema de Gerência de Configuração Versão 1 Versão 2 Versão 3 Versão 4 Versão 5 Leonardo Murta Introdução ao Controle de Versões 14

Sistema de Gerência de Configuração Versão 1 Versão 2 Versão 3 Versão 4 Versão 5 Leonardo Murta Introdução ao Controle de Versões 15

Sistema de Gerência de Configuração Versão 1 Versão 2 Versão 3 Versão 4 Versão 5 Leonardo Murta Introdução ao Controle de Versões 16

Sistema de Gerência de Configuração Solicitações Controle de Modificações Artefatos Controle de Versões Construção e Release Leonardo Murta Introdução ao Controle de Versões 17

Sistema de Gerência de Configuração Solicitações Controle de Modificações Artefatos Controle de Versões Construção e Release Leonardo Murta Introdução ao Controle de Versões 18

Controle de versões Topologia? Armazenamento? Colaboração? Consulta? Repositório Item de Configuração Leonardo Murta Introdução ao Controle de Versões 19

check-in check-in / commit push Topologia Espaço de Trabalho Repositório Espaço de Trabalho check-out / update Repositório Repositório Espaço de Trabalho clone / pull check-out / update Centralizado Distribuído Leonardo Murta Introdução ao Controle de Versões 20

Armazenamento v.3 v.2 delta 2 3 delta 1 2 v.3 v.1 v.2/3 v.1 v.1 delta 3 2 delta 2 1 v.1/2 v.3 Completo Forward Reverse In-line Leonardo Murta Introdução ao Controle de Versões 21

Colaboração m.3 m.2 junção junção m.1 m.1 m.1 m.2 m.3 m.2 m.3 Pessimista Otimista Misto Leonardo Murta Introdução ao Controle de Versões 22

Consulta Artefato Modificação 1 * Versão * 1 Artefato 5 Versão 1 Versão 2 Versão 4 Modificação 4 Artefato 2 Artefato 5 Artefato 7 Informações Identificação (número da modificação) Quem (autor) Quando (data) Onde (caminhos) Como (ação nos caminhos) O que (mensagem) Por que (número da solicitação de modificação) Leonardo Murta Introdução ao Controle de Versões 23

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 ao Controle de Versões 24

Ramos (exemplo 1) Manutenção em série Ramo principal: evolução Ramos auxiliares: correções Sistema Desenv. RC1 Evolução RC2 Evolução Rel. 1 Verif. Correção Correção 1.0 1.1 1.2 Rel. 2 Verif. Correção 2.0 2.1 Leonardo Murta Introdução ao Controle de Versões 25

Ramos (exemplo 2) Organização por requisições Ramo principal: integração Ramos auxiliares: requisições Permite que cada requisição seja identificada (change sets) Torna possível a remoção de uma requisição do produto Requisição 2 Integração RM1 RM2 RM3 Requisição 1 Requisição 3 Leonardo Murta Introdução ao Controle de Versões 26

Junção Processo de migração de Espaços de trabalho Ramos X Y Z A Y X Y Z A Y Z A Y <X> ou <A>? Y <Z> ou nada? X Y 2-way merge 3-way merge Leonardo Murta Introdução ao Controle de Versões 27

Conflitos Situação onde não é possível executar a junção de forma automática Tipos Físico (linha do arquivo) Lógico (sintaxe do arquivo) Semântico (conteúdo do arquivo) O suporte atual concentra no nível físico! Exemplos de conflitos físicos Alterações em paralelo de uma mesma linha Remoção e alteração em paralelo de uma mesma linha Adições de linhas em paralelo na mesma região do arquivo Leonardo Murta Introdução ao Controle de Versões 28

Exemplo (junção no Eclipse) Leonardo Murta Introdução ao Controle de Versões 29

Exemplo de ferramentas de controle de versões Livre Git Mercurial Subversion Comercial BitKeeper (BitMover) ClearCase (IBM Rational) Perforce PVCS (Serena) StarTeam (Borland) Synergy/CM (Telelogic) Team Foundation Server (Microsoft) Leonardo Murta Introdução ao Controle de Versões 30

Introdução ao Controle de Versões Leonardo Murta (leomurta@ic.uff.br)