Anda di halaman 1dari 36

GERENCIAMENTO DE

CONFIGURAÇÃO
Profa. Simone Amorim
Email: simone.amorim@ifba.edu.br
Gerenciamento de Configuração
¨  Requisitos mudam com o tempo e devem ser incorporados as novas
versões

¨  É fácil perder a rastreabilidade de quais mudanças foram


incorporadas em qual versão do sistema

¨  Os sistemas de software estão em constante evolução


¨  Modificações em artefatos existentes chegam a consumir 75% do custo
total do seu ciclo de vida
¨  20% de todo o esforço de manutenção é usado para consertar erros de
implementação
¨  80% são utilizados na adaptação do software em função de
modificações em requisitos funcionais, regras de negócios e na
reengenharia da aplicação
Gerenciamento de Configuração

¨  A Gerência de Configuração de Software surgiu da


necessidade de controlar estas modificações

¨  Utiliza métodos e ferramentas para


¨  Maximizar a produtividade
¨  Minimizar os erros cometidos durante a evolução
Gerenciamento de Configuração

¨  É o desenvolvimento e uso de padrões e


procedimentos para o gerenciamento de sistemas
de software em desenvolvimento

¨  Controla e notifica as inúmeras correções, extensões


e adaptações aplicadas durante o ciclo de vida do
software
Gerenciamento de Configuração

¨  Assegurar um processo de desenvolvimento e


evolução sistemático e rastreável

¨  É indispensável quando equipes manipulam, muitas


vezes em conjunto, artefatos comuns
Gerenciamento de Configuração

¨  Versões incorporam


¨  Mudanças

¨  Correçõesde Defeitos


¨  Adaptações para diferentes Hardwares e Sistemas
Operacionais
¨  Várias versões são desenvolvidas ao mesmo tempo
¨  Problemas que podem ocorrer
n  Modifica a versão errada de um sistema
n  Entrega a versão errada ao cliente
n  Perde a rastreabilidade onde o código fonte está
armazenado
Gerenciamento de Configuração

¨  Imagine que uma organização desconhece o que seja


Gerência de Configuração

¨  Um desenvolvedor esteja modifica os artefatos C1, C2 e C3


em um diretório compartilhado na rede

¨  Simultaneamente, um segundo desenvolvedor modifica os


artefatos C4, C5 e também o artefato C3
Gerenciamento de Configuração

¨  O segundo desenvolvedor não notifica o primeiro


desenvolvedor sobre o impacto que a modificação do
artefato C3 pode causar no código

¨  O primeiro desenvolvedor, que está usando o mesmo espaço


de trabalho, não conseguirá identificar, de forma rápida, o
motivo que levou sua implementação a falhar
Gerenciamento de Configuração
Gerenciamento de Configuração

¨  A Gerência de Configuração de Software abrange


três sistemas principais:
¨  Controle de Modificações
¨  Controle de Versões
¨  Controle de Gerenciamento de Construção
Controle de Modificações
¨  Armazena todas as informações geradas durante o
andamento das solicitações de modificação

¨  Relata essas informações aos participantes interessados


e autorizados

¨  Exemplos de ferramentas de mercado


¨  Bugzilla
¨  Jira
¨  Trac
¨  IBM Rational ClearQuest
Controle de Versões
¨  Per mite que os ar tefatos sob Gerência de
Configuração evoluam de forma distribuída,
concorrente e disciplinada

¨  Evita perdas ou sobreposições durante o


desenvolvimento e a manutenção do artefato

¨  Exemplos de ferramentas de mercado


¨  CVS
¨  Subversion
¨  IBM Rational ClearCase
¨  Microsoft Visual Source Safe
Controle de Gerenciamento de
Construção
¨  Automatiza o processo de transformação dos diversos
artefatos do software que compõem um projeto em um
sistema executável propriamente dito
¨  Testa e empacota a aplicação java como um arquivo
jar
¨  Ocorre de forma aderente às normas, procedimentos,
políticas e padrões definidos para o projeto

¨  Exemplos de ferramentas de mercado


¨  Maven
¨  Apache Ant
Conceitos de GC
¨  Configuração
¨  Estado em que um sistema se encontra em um determinado
momento
¨  Lista de itens necessários para reproduzir um sistema
¨  Podem ser produzidas para diferentes computadores, para
diferentes sistemas operacionais, incorporando funções
específicas de clientes

¨  Item de Configuração


¨  São cada um dos elementos que são criados durante o
desenvolvimento de software
¨  Em geral é
n  um produto de software ou
n  um produto de desenvolvimento de software
Conceitos de GC
¨  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

¨  A cada alteração no artefato, uma nova versão do


item é gerada
¨  Todas as versões são armazenadas e identificadas

¨  É possível recuperar versões anteriores de um item

¨  Existem versão de artefato e versão de sistema


Conceitos de GC
¨  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
¨  Normalmente gerada ao final de uma fase do
desenvolvimento
Conceitos de GC
¨  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:
n  liberação para testes de sistema
n  liberação para homologação
n  liberação para entrega ao cliente

¨  Todo
release é uma versão, mas nem toda versão é um
release
Conceitos de GC
¨  Branch
¨  Implementação de novas funcionalidades em paralelo
¨  Isolada e independente das outras modificações

¨  Integração
¨  Processo de combinação de componentes de software
¨  Consiste em “juntar” partes do software conforme ficam
prontas
Baseline X Release
¨  A diferença entre baselines e releases é sutil

¨  As baselines representam conjuntos de itens de


configuração formalmente aprovados que servem de
base para as etapas seguintes de desenvolvimento

¨  Quando uma entrega formal é feita ao cliente, no final


de uma iteração, por exemplo, denominamos esta
entrega de Release

¨  Baselines e Releases são identificadas no repositório, na


grande maioria das vezes, pelo uso de etiquetas (tags)
Processo de GC
¨  O repositório é o local de armazenamento dos
artefatos que estão sob controle da Gerência de
Configuração de Software

¨  Check-out
¨  Operação que obtem os artefatos do repositório para
atualização pelo desenvolvedor

¨  Check-in
¨  Operação de retorno ao repositório
Processo de GC
¨  A cada operação de check-in realizada, a versão
do item de configuração é incrementada de uma
unidade
¨  Quando o item é adicionado pela primeira vez no

repositório, este item passa a ter a versão igual a 1


Processo de GC
¨  Para cada item de configuração armazenado, são
anexadas informações como
¨  Datas da criação ou alteração
¨  Comentários
¨  Versões
Funções da GC
1.  Identificação da configuração

2.  Controle da configuração

3.  Acompanhamento da situação da configuração

4.  Auditoria da configuração

5.  Gerenciamento de entrega


Funções da GC
¨  Identificação da configuração
¨  Seleciona os artefatos que serão itens de configuração
¨  Define uma nomenclatura, que possibilite a identificação
inequívoca dos itens de configuração, baselines e releases
¨  Descreve os itens, tanto física quanto funcionalmente

¨  A seleção dos artefatos leva em conta


1.  Se o artefato é crítico para o projeto
2.  A dependência entre artefatos
3.  O impacto que uma modificação do item tem no produto
4.  Se o artefato pode ser modificado por dois ou mais grupos
5.  Se é freqüentemente alterado devido a sua complexidade
6.  Se é gerado manualmente, automaticamente ou ambos
Funções da GC
¨  Controle da configuração
¨  Controlae acompanha a evolução dos itens de
configuração selecionados na função de identificação

¨  Acompanhamento da situação da configuração


¨  Armazena as informações geradas pelas demais
funções
¨  Permite que essas informações possam ser acessadas
em função de necessidades específicas, por exemplo
n  Melhoria do processo
n  Estimativa de custos futuros
n  Geração de relatórios gerenciais
Funções da GC
¨  Auditoria da configuração
¨  Asseguraque a release cumpre corretamente o que foi
especificado

¨  Gerenciamento de entrega


¨  Construção e liberação de uma release do produto
¨  Entregar com informações de como implantar o
software no ambiente final de execução
Planejamento de GC
Planejamento de GC
¨  O plano de gerencimento de configurações descreve
padrões e procedimentos que devem ser usados para o
gerenciamento
1.  Define o que será gerenciado e o esquema usado para
identificar essas entidades
2.  Estabelece quem é responsável pelos procedimentos de
GC e pela submisão dos itens de controlados pela equipe
de GC
3.  Define as políticas de GC
4.  Especifica as ferramentas e os processos para uso delas
5.  Descreve a estrutura do banco de dados de configuração
e as informações que devem ser mantidas neste banco
Banco de Dados de Configuração

¨  É utilizado para registrar todas as informações


relevantes sobre as configurações dos sistemas e os
itens de configuração
¨  Auxilia na avaliação do impacto das mudanças do
sistema
¨  Gera relatórios para a gerência sobre o processo de
CG
¨  Registra informações sobre
¨  Usuários de Componentes
¨  Clientes de Sistemas
¨  Plataformas de execução
¨  Mudanças propostas
Construção de Sistemas
¨  É um processo de compilação e ligação de
componentes de software num programa que executa
determinada configuração definida

¨  Deve considerar


¨  Todos os componentes que compõe um sistema foram
incluídos nas instruções de construção
¨  A versão apropriada de cada componente foi incluída nas
instruções de construção
¨  Todos os arquivos de dados necessários estão disponíveis

¨  A versão apropriada do compilador e de outras


ferramentas requeridas está disponível
Auditoria da GC
¨  Compreende atividades para garantir que as
alterações na configuração de software foram
efetuadas apropriadamente
Auditoria de CG
¨  Dois tipos de auditoria de configuração de software
que são obrigatórias
¨  Auditoria Funcional
n  Preocupa-se com aspectos internos dos arquivos
n  Faz uma verificação técnica formal nos itens de configuração
n  Essa verificação tenta descobrir omissões ou erros na
configuração, que degradam os padrões de construção do
software
¨  Auditoria Física
n  Determina características não consideradas durante a auditoria
funcional
n  Se foram seguidos os procedimentos de gerenciamento de
configuração
n  Se todos os itens de configuração relacionados foram atualizados
apropriadamente
Benefícios da GC
¨  Ganho de produtividade e eficiência
¨  Diminuição do retrabalho e dos erros

¨  A u m e n t o d a d i s c i p l i n a n o p ro c e s s o d e

desenvolvimento
¨  Aumento da memória organizacional

¨  Acesso às informações qualitativas e quantitativas


referentes ao processo de desenvolvimento, como
¨  Medida de esforço para efetuar uma alteração
¨  Freqüência de modificações por componente
Benefícios da GC
¨  Possibilidade de estabelecer uma trilha de
auditoria indicando por que, quando e por quem
um artefato foi alterado
¨  Auxílio à gerência de projetos

¨  Garantia de ambiente estável no qual o produto

deve ser desenvolvido


Exercícios
Referências
¨  Baseado nos slides dos Livros:
¨  Engenharia de Software: Conceitos e Práticas
Prof. Raul Sidnei Wazlawick
UFSC-CTC-INE
Elsevier, 2013
¨  Engenharia
de Software
Ian Sommerville
Pearson

¨  Engenharia de Software - Fundamentos, Métodos e Padrões


Wilson Paula
3ª edição. LTC, 11/2008
VitalBook file

Anda mungkin juga menyukai