Desenvolvimento Global de Software
Mestrado de Informática / UFPB
Francilene Procópio Garcia, D.Sc.
[email protected]
Gestão de Configuração & Mudanças - Parte VI
Introdução

A gestão de configuração e de mudanças tem como metas:


o controle de mudanças ao longo do ciclo de vida do produto;
a manutenção de integridade dos artefatos do projeto de software
Gestão da Solicitação
de Mudanças (CRM)
Medições
Gestão de
Configuração (CM)
Gestão de Configuração e Mudanças

A gestão de configuração e de solicitação de mudanças envolvem:





As organizações virtuais devem definir quais métodos, processos e
ferramentas serão usados para CM e CRM, incluindo:





a identificação de itens configuráveis
a restrição de mudanças sobres esses itens
a auditagem de mudanças sobre esses itens
a definição e a gestão de configuração sobre esses itens
informações chaves sobre o desenvolvimento do produto
método de promoção (nível de qualidade e estabilidade do produto)
processos de manutenção e disponibilização
definição de um conjunto básico de artefatos potencialmente
reutilizáveis resultantes do processo
CM e CRM são partes essenciais e integradas ao processo de
desenvolvimento em uso pelas organizações parceiras
Relevância


A gestão de configuração e de solicitação de mudanças é essencial
para controlar os inúmeros artefatos produzidos por diferentes
pessoas (ou organizações) que atuam de forma cooperativa num
mesmo projeto
O fato de se controlar tais artefatos gerados evita a disseminação de
conflitos, em geral, causados por:



updates simultâneos (dois ou mais membros do grupo trabalham num
mesmo artefato, o último a faser mudanças destrói o trabalho dos demais.
Por outro lado, o update serial pode retardar o desenvolvimento. O
desafio é fazer o update simultâneo de forma integrada.)
notificação limitada (ao se resolver algum problema num dado artefato
compartilhado, a mudança deve ser notificada)
múltiplas versões (a obtenção evolutiva de releases pode implicar na
seguinte situação: uma release no cliente; outra release em teste; ou
ainda outra em desenvolvimento. Problemas/soluções em alguma das
versões devem ser propagados entre elas de forma controlada)
Benefícios de Sistemas de Gestão de
Configuração


Sistemas de CM são indicados em todo processo de desenvolvimento,
porém são críticos em projetos virtuais onde percebe-se o uso de
políticas específicas de desenvolvimento em diferentes ambientes
Alguns dos benefícios possíveis:







suporte aos métodos de desenvolvimento
manutenção da integridade do produto
garantia da correticidade e completude do produto configurado
provimento de uma ambiente estável para desenvolvimento do produto
definição de restrições acerca de mudanças possíveis sobre os artefatos
provimento de formas de auditagem de mudanças efetivadas (quem,
quando, onde)
De forma única, o sistema de CM “contabiliza” as versões criadas,
quem fez parte do processo, quais versões anteriores foram usadas,
entre outras informações relevantes
Métodos de Promoção


Na medida que um projeto avança, a qualidade e a estabilidade do
produto tende a melhorar. O método de promoção tem como objetivo a
indicação do nível de melhoria alcançado na forma de um atributo do
processo
Os níveis de promoção e seus atributos podem ser definidos para cada
projeto, incluindo por exemplo:





Integração testada
Sistema testado
Aceitação testada
Produção
Os níveis de promoção devem ser ordenados de forma a refletir uma
escala crescente de qualidade
Métodos de Promoção: Um exemplo


Suponha que o gerente de configuração necessite promover um certo
produto para um nível abaixo do atual
A razão poderia ser a descoberta de um bug crítico na versão recém
obtida em comparação com as anteriores

Neste caso, o nível de promoção do produto (versão) deve ser
visivelmente menor ou até mesmo algo como “rejeitada”

O método de promoção também pode definir um conjunto mínimo de
critérios para “promoção” de nível de uma nova versão produzida - tais
critérios poderão auxiliar a colocar um dado programa de testes em
prática por todos os envolvidos no desenvolvimento
Estrutura de Diretório do Produto


As organizações envolvidas no projeto vão demandar um local ou
“repositório” para armazenamento dos códigos fontes, artefatos de
projeto e implementação que definem cada versão obtida ou os
componentes do sistema
Uma estrutura de diretório de produto pode servir como uma forma de
organizar logicamente todos os artefatos envolvidos com uma dada
versão do produto
Os sub-sistemas e seus
componentes podem estar
localizados em servidores
remotos
Estrutura de Diretório do Produto:
Workspace



Um conceito importante na gestão da estrutura do produto, em projetos
virtuais, é a idéia do “workspace”
Um “workspace” define um local privado, onde desenvolvedores podem
criar e testar artefatos e código segundo um conjunto de padrões
acordados entre os participantes
Em cada organização virtual, o gerente de configurações deve criar o
respectivo “workspace”
Integração de workspaces
Integração de workspaces
Workspaces privados
Visões do Workspace

Existem dois tipos de visões em uso nos workspaces:


Snapshots: apresenta ao desenvolvedor um ambiente de trabalho estável e
isento de mudanças. Os snapshots são populados com visões de vários
repositórios do projeto. Quando um desenvolvedor deseja “enxergar”
mudanças realizadas por outros grupos, ele pode atualizar sua visão. Este
formato de trabalho é conhecido por “modelo pull”, orientando sempre pela
busca da informação desejada, ao invés de empurrar as mudanças
Visões dinâmicas: não armazenam nada localmente, dependem de
atualizações imediatas realizadas através da rede. São recomendadas nas
seguintes situações:



espaço restrito no ambiente do desenvolvedor
necessidade de compartilhamento de certos objetos (componentes reutilizáveis,
por exemplo)
membros de grupos virtuais necessitam trabalhar com as últimas versões d eum
código (ao realizarem testes de integração, por exemplo)
Gestão de Solicitação de Mudanças (CRM)


Traz recomendações acerca da infraestrutura necessária na
organização para avaliar o custo, cronograma e o impacto de
mudanças solicitadas num dado produto
Basicamente, a gestão de mudanças envolve o trabalho de dois
grupos:


o grupo de revisão de mudanças - determinam se uma dada solicitação
é válida. Em seguida, encaminham um conjunto de informações que
envolve o escopo da mudança, nível de prioridade, cronograma, risco,
recursos necessários, entre outras. Em geral, os membros são
gerentes de testes, gerentes de desenvolvimento e membros do grupo
de marketing
o grupo de controle de mudanças (CCB) - funciona como um comitê,
onde representantes de todos os parceiros têm assento
(desenvolvedores, clientes e usuários)
Fluxo típico de atividades em CRM
Estágios e transições típicos em CRM
Estágios em CRM: Estatísticas
Os atributos dos estágios
auxiliam na geração de
estatísticas chaves
(tempo, distribuição,
riscos) sobre as
mudanças
Medição do Processo


É muito importante em projetos virtuais para descrever o status do
produto com base em algum formato como tipo, número, taxa e
categorias de falhas encontradas e corrigidas no decorrer do
desenvolvimento do produto
Existem quatro tipos básicos de relatórios gerados:




Mudanças solicitadas
Software gerado
Descrição de versões e
Auditagens realizadas
1. Quanto tempo leva para que uma
solicitação de mudanças seja aberta?
2. Quantas solicitações de mudanças
existem por categoria de prioridade?
3. Qual é o número acumulado de falhas
achadas e corrigidas até o momento?
Relatórios baseados
em tempo
Relatórios baseados
em métricas
Relatórios baseados
em tempo e métricas
Descrição de Versões

Cada versão deve conter alguns detalhes sobre o
software:





lista de itens entregues (mídia e documentos)
lista do conteúdo do software (arquivos)
instruções para instalação
erros conhecidos prováveis
dados únicos do desenvolvimento críticos para evolução
do produto
Gestão Unificada de Mudanças



No ambiente da Rational, usa-se um add-on do Clear Case - o
ClearCase MultiSite para CM e CRM no desenvolvimento de
produtos em múltiplos locais distribuídos geograficamente
Busque na URL
http://www.rational.com/products/cc_multisite/index.jtmpl as
principais características do ClearCase MultiSite, indicando os
mecanismos e facilidades de como se gerencia um processo de
desenvolvimento distribuído geograficamente
Em seguida responda, alguma funcionalidade crítica estaria
faltando? Se sim, o que você sugere?