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



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

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

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

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

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

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

Introdução ao Controle de Versões. Leonardo Murta

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

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

Gerência de Configuração de Software

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

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

Sistema de Controle de Versão - CVS

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

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

PROJETO CEMEA. Um trabalho educacional

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

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

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

Gerenciamento de Configuração de Software

TUTORIAL PRÁTICO SOBRE Git. Versão 1.1

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

O primeiro passo é habilitar acesso externo através de web service a configuração é bem simples e não exige maiores explicações.

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

Engenharia de Software I

Manual de Utilização do Tortoise SVN. Fábrica de Software. Algar Tecnologia Unidade BH

ITIL V3 (aula 2) AGENDA: GERENCIAMENTO DE MUDANÇA GERENCIAMENTO DE LIBERAÇÃO GERENCIAMENTO DE CONFIGURAÇÃO

Engenharia de Requisitos

Controle de Versão com CVS

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

APLICATIVO PARA ATUALIZAÇÃO EMPRESARIAL

Tutorial SVN Básico Engenharia de Software. Denise Notini Nogueira

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

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

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

Gerenciamento de software como ativo de automação industrial

AULA 06 CRIAÇÃO DE USUÁRIOS

SAIBA MAIS SOBRE O LINUX E DESCUBRA QUAL DISTRIBUIÇÃO É MELHOR PARA VOCÊ! CURSO

Capítulo X. Gerenciar Mudanças dos Requisitos. Aluizio Saiter, M. Sc.

Processo Controle de Documentos e Registros

Curso Avançado Sistema EMBI

GARANTIA DA QUALIDADE DE SOFTWARE

E&L Protocolo, Documentos Eletrônicos e Processos Perguntas Frequentes

SISTEMAS OPERACIONAIS LIVRES. Professor Carlos Muniz

Anote aqui as informações necessárias:

Manual do usuário. v1.0

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

Portal do Senac: Área Exclusiva para Alunos Manual de Navegação e Operação

Criando Quiz com BrOffice.impress

3 Estudo de Ferramentas

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

Engenharia de Software III

? O SQL SERVER é um sistema de gerenciamento de banco de dados relacional que foi desenvolvido inicialmente pela Microsoft em parceria com a Sybase.

Requisitos. Professor Gabriel Baptista ( gabriel.baptista@uninove.br ) ( )

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

QualisTec. Plano de Gerência de Configuração. Projeto: Simul-e. Versão 1.1. Página 1 de 16. Plano de Gerência de Configuração

Rational Quality Manager. Nome: Raphael Castellano Campus: AKXE Matrícula:

Noções de. Microsoft SQL Server. Microsoft SQL Server

LILDBI-Web. Objetivo: Aplicar as funcionalidades do LILDBI-Web para alimentação de bases de dados bibliográficas. Conteúdos desta aula

Universidade Paulista

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

Controle de Versão com GIT

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

1. Introdução pág.3 2. Apresentação do sistema Joomla! pág.4 3. Acessando a administração do site pág.4 4. Artigos 4.1. Criando um Artigo 4.2.

Diferenças da versão 6.3 para a 6.4

Manual de configuração do sistema

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

MOD9 Processos de Transição de Serviços

SUMÁRIO Acesso ao sistema... 2 Atendente... 3

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1

OneDrive: saiba como usar a nuvem da Microsoft

OCOMON PRIMEIROS PASSOS

FAQ Perguntas Frequentes

Procedimentos para Reinstalação do Sisloc

SSE 3.0 Guia Rápido Parametrizando o SISTEMA DE SECRETARIA Nesta Edição Configurando a Conexão com o Banco de Dados

Prova de Conhecimento para Consultores de Implementação MPS.BR INSTRUÇÕES

Levantamento, Análise e Gestão Requisitos. Aula 12

O e-docs foi testado e homologado pela Microsoft via certificadora internacional Verisign.

Gerenciamento de Transações

Em 2012, a Prosoft planejou o lançamento da Versão 5 dos seus produtos.

Outlook Apresentação

O aplicativo de desktop Novell Filr é compatível com as seguintes versões do sistema operacional Windows:

Manual do Painel Administrativo

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:

Plano de Gerência de Configuração

SISTEMAS OPERACIONAIS LIVRES. Professor Carlos Muniz

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

Planejando o aplicativo

Você acessa seu DISCO Virtual do mesmo modo como faz para seu HD, através de:

VISUAL LIGHTBOX FERRAMENTA WEB DESIGN FABIANO KEIJI TAGUCHI

Visão geral híbrida de Serviços Corporativos de Conectividade do SharePoint 2013

Manual AGENDA DE BACKUP

OBJETIVO MATERIAIS NECESSÁRIOS DESCRIÇÃO DAS PRINCIPAIS ATIVIDADES

Guia do Administrador de Licenças de Usuários Autorizados do IBM SPSS Modeler

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

Gerenciamento de Contatos

Manual do Usuário Atualização Março 2015

Versionamento Ágil com Git

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

Transcrição:

Agenda Gerência de Configuração de Software Vamos entender o Problema? Quais os problemas? Gerência de Configuração Marcos Dósea dosea@ufs.br Entender os problemas... Quais os problemas? Problema 1) Duplicidade de Trabalho Problema 2) Trabalhos sobrepostos Problema 3) Perda de trabalho Problema 4) Histórico de Mudanças Problema 5) Versão inconsistente P1) Duplicidade de Trabalho O mesmo trabalho é realizado por mais de um desenvolvedor. Ex: Classe GerenciaCalculosCusto Torna-se mais difícil de controlar quando a solução é armazenada de forma distinta. Ex: pastas calculos e pasta custo Quem foi o maluco que mandou vocês realizarem o trabalho? P2) Trabalhos Sobrepostos Usando um repositório compartilhado é gravada apenas as alterações do último desenvolvedor. Ex: Classe GerenciaCalculosCusto Problema pode ser maior quando a implementação correta é sobreposta pela implementação errada. 1

P3) Perda de Trabalho Imagine agora se houve implementações diferentes entre dois desenvolvedores. Um dos trabalhos será perdido. Terá o trabalho garantindo apenas aquele que salvar por último os seus trabalhos. P4) Histórico de Mudanças Quem implementou o método errado? Quem foi o responsável por dar 20% de desconto no preço de atacado? Quem foi o responsável por dar 10% de desconto no preço de atacado? Quem foi o maluco que ordenou que vocês fizessem isso? Quero que retorne com a implementação anterior da classe! P5) Versão Inconsistente Como resolver esses problemas? A evolução das classes deixa a sistema insconsistente até que uma nova bateria de testes seja realizada. E se ocorrer um erro grave? Como recuperar a última versão estável do sistema e realizar uma correção urgente, sem atrapalhar a evolução do sistema? Solução Trivial Solução Trivial Repositório Compartilhado Desenvolvedor A Desenvolvedor B Programa de A A1 A2 A3 Componente Compartilhado Programa de B B1 B2 B3 2

A Solução Gerência de Configuração É a arte de identificar, organizar e controlar mudanças no software que está sendo construído. O objetivo é maximizar a produtividade pela minimização de erros (Pressman, 2002). Gerência de Configuração Onde a GCM será utilizada? É o desenvolvimento e uso de padrões e procedimentos para o gerenciamento de sistemas de software em desenvolvimento. Define como registrar mudanças e relacioná-las a diferentes versões do sistema (Sommerville, 2007). Modelo de Negócio Requisitos Artefatos de Gerenciamento Modelos Análise Processo de Desenvolvimento de Software Testes Modelos Projeto Código Fonte Onde a GCM será utilizada? Por que GCM? Modelo de Negócio Requisitos Artefatos de Gerenciamento Modelos Análise Processo de Desenvolvimento Mudanças de Software Testes Modelos Projeto Código Fonte Evolução do software => MUDANÇAS 75% do custo total do ciclo de vida do software é com manutenção. 20% do tempo para consertar erros. 80% do tempo para modificações nos requisitos: Requisitos funcionais Regras de negócio Reengenharia da aplicação. 3

Gerência de Configuração Gerência do Configuração no MPS.Br Considerada muitas vezes como etapa do gerenciamento de qualidade: Sistema liberado é verificado pela equipe de GQ. Essencial usar padrões para certificação da qualidade. Ex: Padrão para Plano de GC seguindo a norma IEEE 828-1998. Gerência de Configuração Gerenciamento de Mudanças Gerenciamento de Versões Gerenciamento de Builds Gerência de Configuração Gerenciamento de Mudanças P1) Duplicidade de Trabalho Gerenciamento de Versões Gerenciamento de Builds Gerenciamento de Mudanças Controla o processo de solicitação de mudanças, análise de custo e benefício das mudanças, aprovação e rastreabilidade de quais componentes foram alterados. Gerenciamento de Mudanças Change Request Form (CRF) Exemplo: 4

Algumas Ferramentas Redmine Redmine Bugzilla Jira Trac IBM Rational ClearQuest Bugzilla Processo de Gerenciamento de Mudanças Exemplo Estados de uma Solicitação de Mudança Exemplo Vamos solicitar uma Mudança? http://code.google.com/p/projeto-es-ufs/ 5

Atividade de Sala Crie uma mudança para seu parceiro: Defeito reportado pelo desenvolvedor Defeito reportado pelo usuário Nova funcionalidade Simule o atendimento dessas mudanças. Gerência de Configuração Gerenciamento de Mudanças Gerenciamento de Versões Gerenciamento de Builds Gerenciamento de Versões Processo de identificar e manter a rastreabilidade das versões de um sistema, objetivando recuperar, quando solicitado, uma versão que implementa um determinando conjunto de funcionalidades. O Repositório É a base para utilização de um sistema de controle de versão. Cada cliente possui uma cópia de trabalho do repositório. Alguns Repositórios CVS Subversion (SVN) Mercurial IBM Rational ClearCase Microsoft Visual Source Safe. VisualSVN Server O Repositório 6

VisualSVN Server O Repositório Explorar as configurações do VisualSVN Gerenciamento de Versões Passo 1) Definir o Repositório Local (físico e lógico) onde os itens de um sistema são guardados Pode conter diversas versões do sistema Utiliza mecanismos de controle de acesso Definir o Repositório Layout do Repositório trunk: linha principal do desenvolvimento branches: cópias divergentes da linha base do desenvolvimento. tags: fotografias de versões estáveis do sistema. Repositório Repositório Definir o Repositório Exemplo: code.google.com com SVN Definir o Repositório Exemplo: Visual SVN 7

Definir o Repositório Exemplo: Visual SVN Definir o Repositório Exemplo: Visual SVN Defina um repositório do seu grupo Utilize a função browse do TortoiseSVN para acessar os arquivos do repositório criado pelo colega. Gerência de Configuração Gerenciamento de Mudanças Gerenciamento de Versões Gerenciamento de Builds Gerenciamento de Versões Processo de identificar e manter a rastreabilidade das versões de um sistema, objetivando recuperar, quando solicitado, uma versão que implementa um determinando conjunto de funcionalidades. O Repositório É a base para utilização de um sistema de controle de versão. Cada cliente possui uma cópia de trabalho do repositório. 8

Conceitos Básicos Item de Configuração Conjunto de itens de hardware/software vistos como uma entidade única para fins de gerência de configuração. Conceitos Básicos Configuração do Software Toda informação produzida como parte do processo de desenvolvimento de software. Dados Código Fonte Dados Documentos Código Fonte Documentos Como Operar com o Repositório? Check-in e Check-out Passo 2) Executar Operações do Cliente Ckeck-in - Merge Ckeck-out - Marcar Tag Lock - Branches Desenvolvedor Repositório Como Operar com o Repositório? Operação 1) Check-out Recupera a (última) versão de um item de configuração guardada no repositório. Escrita: obtém o lock do item e cria uma cópia para edição no cliente. Leitura: cria uma cópia apenas para leitura no cliente. Check-out Como Operar com o Repositório? Operação 2) Check-in Ação de inserir/atualizar um item de configuração no repositório Verifica o lock do item de configuração, e caso seja possível, incrementa a versão do item. Check-in cliente Repositório cliente Repositório 9

Gerenciamento de Versões Operação 2) Check-in Cada check-in no repositório cria uma nova revisão (baseline) do mesmo. Faça o Check-out do seu repositório. Qual a revisão que você está trabalhando? Crie 1 arquivo na pasta trunk e faça o checkin. Faça check-out e visualize a revisão. Crie agora mais dois novos arquivo na pasta trunk e faça o check-in. Visualize agora as revisões dos três arquivos criados. Baselines Revisão é um tipo de baseline item fluxo de desenvolvimento Como Operar com o Repositório? Operação 3) Lock Resolve a Atualização Simultânea Garante que apenas o usuário que detém o lock pode alterar o arquivo Problema: serializa o trabalho dos desenvolvedores tempo Como Operar com o Repositório? Operação 4) Merge Unificação de diferentes versões de um mesmo item de configuração Integração dos itens de configuração de um branch com os itens de configuração do fluxo principal Mesmo com o uso de ferramentas, em vários casos há necessidade de intervenção humana Repositório Tradicional Relembrando o problema... 10

Soluções dos Repositórios Política Pessimista (Lock-Modify-Unlock) Política Otimista (Copy-Modify-Merge) Política Pessimista Enfatiza o check-out reservado Bloqueia o(s) item(ns) de configuração Inibe o paralelismo Política Pessimista Usando o TortoiseSVN Atividade de Sala Faça o bloqueio de um arquivo armazenado no repositório. Solicite ao seu colega que tente alterar esse arquivo e depois gravar no repositório. Ele conseguiu? Não esqueça de desbloquear o arquivo. Política Pessimista Problemas Pode causar problemas administrativos, quando um lock não é liberado. Pode causar serialização de trabalho desnecessária, por exemplo, editar o mesmo arquivo mas em locais diferentes. Causa um falso senso de segurança, por exemplos, arquivos dependentes que são editados por desenvolvedores distintos podem não trabalhar juntos. 11

Soluções dos Repositórios Política Pessimista (Lock-Modify-Unlock) Política Otimista (Copy-Modify-Merge) Política Otimista Assume que a quantidade de conflitos é naturalmente baixa. É mais fácil e produtivo tratar cada conflito individualmente. Um conflito ocorre quando a mesma linha ou região do arquivo é modificada. A junção (merge) é automática na maioria dos casos e manual quando ocorrem conflitos. Política Otimista Crie um arquivo com um texto qualquer na linha 1 e 3. Grave o arquivo no repositório. Altere o arquivo e insira um texto na linha 5 e ao mesmo tempo peça a seu colega para baixar o arquivo do repositório e colocar um texto na linha 4 Tentem gravar o arquivo no repositório. O que aconteceu? Baixem a nova versão do arquivo. Agora insira textos diferentes na linha 2, cada um na sua cópia de trabalho. Tentem gravar o arquivo. O que aconteceu? Qual política utilizar? Política Pessimista Artefatos não textuais (imagem, vídeo, etc) Artefatos onde a junção manual é complexa. Política Otimista Nas demais situações. 12

Ciclo de Trabalho Típico 1) Atualizar cópia de trabalho 2) Realizar as mudanças 3) Revisar as mudanças 4) Consertar os erros 5) Resolver Conflitos 6) Publicar mudanças (commit) Usando o sistema de controle de versão implemente as classes passadas na primeira aula. Política Pessimista Política Otimista Ciclo de Trabalho Típico 1) Atualizar cópia de trabalho 2) Realizar as mudanças 3) Revisar as mudanças 4) Consertar os erros 5) Resolver Conflitos 6) Publicar mudanças (commit) Criem o arquivo GerenciadorAluno.java Crie os métodos: void inserir(aluno a); void consultar(aluno a); Ao mesmo tempo peça ao colega para criar os métodos: void remover(string matricula) void alterar(aluno a) Gravem no repositório. 13

Excluindo e Renomeando Exclusão com o TortoiseSVN A exclusão de um arquivo/pasta da cópia de trabalho não implica na exclusão do mesmo no repositório. O mesmo acontece para renomeação. O SVN possui um comando delete e rename que devem ser executados no arquivo. Em seguida deve ser feita a gravação (commit) no repositório. Renomear com o TortoiseSVN Dever de Sala Faça a exclusão de um arquivo do repositório. Renomeie um arquivo do repositório. Ignorando Arquivos Ignorando com o TortoiseSVN Alguns arquivos podem ser marcados para serem ignorados pelo sistema de versionamento. Isso é comum para arquivos de compilação ou arquivos temporários. 14

Dever de Sala Baselines Crie um arquivo na cópia de trabalho Marque esse arquivo para ser ignorado pelo sistema de versionamento. Baselines São marcos no versionamento dos artefatos. Representam conjuntos de itens de configuração que foram formalmente aprovados. Baselines são marcadas a partir de revisões do repositório. Uma baseline é identificada através de uma tag. Baselines Versão do Sistema: É uma instância do sistema que difere, de alguma maneira, de outras instâncias. Release do Sistema: Versão do sistema distribuída aos clientes. Gerenciamento de Versões Tags no TortoiseSVN Operação 5) Marcar Tag São rótulos associados a um snapshot do repositório num determinado momento. Um tag referencia um ou mais arquivos em um ou mais diretórios Usadas normalmente para denominar uma versão do projeto ou release. Sistema de Biblioteca 1.0 1.1 2.0 15

Tags no TortoiseSVN Marque uma tag da versão atual do projeto. Faça novas alterações na mainline. Marque uma nova tag do projeto. Branches É uma linha de desenvolvimento independente de outras linhas mas que compartilha um histórico. Deve ser criado quando múltiplas necessidades precisam ser atendidas. Branches Fazer um branche é simplesmente criar uma cópia de uma revisão. Apesar de manter o histórico o branche pode evoluir de forma indepentente. Gerenciamento de Versões Braches no TortoiseSVN Operação 6) Criar Branch Criação de um fluxo alternativo para atualização de versões de itens de configuração Devem existir regras bem definidas para criação de branches Por que e quando devem ser criados? Quais os passos? Quando retornar ao fluxo principal? 16

Braches no TortoiseSVN Atividade de Sala Crie um branche da sua linha de desenvolvimento principal. Reintegrando um Branche Reintegrando Branches É possível reintegrar branches à sua linha principal através de uma operação de merge. Pode ser necessário quando uma grande alteração não deve atrapalhar a linha principal do desenvolvimento. Reintegrando Branches Reintegrando Branches 17

Atualizando um Branche Atualizando Branches Para que as modificações de um branche não fiquem muito distantes da linha principal pode-se fazer sua atualização. A atualização de um branche também é feita através da operação de merge. Atualiazando Branches Atualiazando Branches Criar um novo branche a partir do trunk. Criar um novo arquivo no trunk. Criar um novo arquivo no branche. Alterar um mesmo arquivo existente no trunk e no branche criado. Atualizar o branche a partir do trunk. Reintegrar o branche ao trunk. Referências Sommerville, Ian. Engenharia de Software. 8a edição. Addison Wesley. Pressman R. Engenharia de Software. 6a edição. McGraw-Hill. Cristine Dantas. Gerência de Configuração de Software. Revista de Engenharia de Software. Edição 2. Disponível no link. Acesso em Março 2011. 18