Universidade Estadual de Maringá Departamento de Informática Ciência da Computação Processo de Engenharia de Software II Gerência de Configuração de Software Conceitos Rafael Leonardo Vivian {rlvivian.uem at gmail dot com}
Na última aula... Evolução do software Mudanças Modificações == perda do controle Gerência de Configuração de Software: - MENOS retrabalho e erros - MAIS produtividade e eficiência Rafael Leonardo Vivian Gerência de Configuração de Software: Conceitos 02
Roteiro Configuração Item de configuração Versionamento Label Baseline Release Branch Integração Rafael Leonardo Vivian Gerência de Configuração de Software: Conceitos 03
Configuração Estado em que um sistema se encontra em um determinado momento Lista de itens necessários para reproduzir um sistema Configurações podem ser produzidas para diferentes computadores, para diferentes sistemas operacionais, incorporando funções específicas de clientes Rafael Leonardo Vivian Gerência de Configuração de Software: Conceitos 04
Configuração Exemplos: - configuração do sistema - configuração do módulo X - configuração dos requisitos do sistema - configuração do código-fonte Rafael Leonardo Vivian Gerência de Configuração de Software: Conceitos 05
Item de Configuração Cada um dos elementos que são criados durante o desenvolvimento de software Em geral é: - um produto de software ou - um produto de desenvolvimento de software Rafael Leonardo Vivian Gerência de Configuração de Software: Conceitos 06
Item de Configuração Exemplos: - um documento de texto - uma especificação do sistema - um arquivo de código-fonte - um programa executável - um plano de projeto do software Rafael Leonardo Vivian Gerência de Configuração de Software: Conceitos 07
Versionamento... Rafael Leonardo Vivian Gerência de Configuração de Software: Conceitos 08
Versionamento Versões: - instâncias de um mesmo item de configuração que diferem entre si em algo - estado definido de um item em um dado momento - fotografia do item de configuração Preservação das versões de um artefato Sistemático e seguro Não limitado em número de versões Rafael Leonardo Vivian Gerência de Configuração de Software: Conceitos 09
Versionamento A cada alteração no artefato, uma nova versão do item é gerada Todas as versões são armazenadas e identificadas Recuperar versões anteriores de um item Versão de artefato e versão de sistema Rafael Leonardo Vivian Gerência de Configuração de Software: Conceitos 10
Label... Rafael Leonardo Vivian Gerência de Configuração de Software: Conceitos 11
Label Rótulo/etiqueta Mecanismo para identificar uma configuração Rafael Leonardo Vivian Gerência de Configuração de Software: Conceitos 12
Baseline... Rafael Leonardo Vivian Gerência de Configuração de Software: Conceitos 13
Baseline Conjunto de itens formalmente aprovados que servem como linha-base para as etapas seguintes do desenvolvimento É uma fotografia de um conjunto de itens de configuração em um determinado momento do processo de desenvolvimento A configuração do software em um determinado ponto do tempo Rafael Leonardo Vivian Gerência de Configuração de Software: Conceitos 14
Baseline Normalmente gerada ao final de uma fase do desenvolvimento Representa marcos de versionamento de artefatos: - final de especificação de requisitos - modelos documentados e revisados - final da implementação de um módulo - erros encontrados e corrigidos - implantação de uma versão do sistema Rafael Leonardo Vivian Gerência de Configuração de Software: Conceitos 15
Release... Rafael Leonardo Vivian Gerência de Configuração de Software: Conceitos 16
Release Conjunto de itens de configuração que são disponibilizados para um propósito específico Resultado da liberação de uma determinada configuração do produto para o ambiente externo ao desenvolvimento: - liberação para testes de sistema - liberação para homologação - liberação para entrega ao cliente Importante: todo release é uma versão, mas nem toda versão é um release Rafael Leonardo Vivian Gerência de Configuração de Software: Conceitos 17
Branch... Rafael Leonardo Vivian Gerência de Configuração de Software: Conceitos 18
Branch Implementação de novas funcionalidades em paralelo Isolada e independente das outras modificações Ramificação: - linha secundária de desenvolvimento - unida à linha principal (mainline) por meio da operação de junção (merge) Rafael Leonardo Vivian Gerência de Configuração de Software: Conceitos 19
Branch Junção: - efetuada para cada artefato da ramificação - considera todas as modificações desde o ancestral em comum Rafael Leonardo Vivian Gerência de Configuração de Software: Conceitos 20
Branch O que fazer quando a ramificação continua evoluindo depois da junção? Rafael Leonardo Vivian Gerência de Configuração de Software: Conceitos 21
Integração Processo de combinação de componentes de software Consiste em juntar partes do software conforme ficam prontas Rafael Leonardo Vivian Gerência de Configuração de Software: Conceitos 22
Exercício 1) Esquematize uma estratégia de branch (ramificação) considerando as seguintes necessidades: - manutenção de versões anteriores - customizações para diferentes clientes - subsistemas que usam bibliotecas comuns - dica: utilize os conceitos vistos anteriormente, tais como branch, junção, integração, label, release e versionamento e simule algumas operações Rafael Leonardo Vivian Gerência de Configuração de Software: Conceitos 23