Você está na página 1de 16

UNIVERSIDADE FEDERAL DE SANTA CATARINA

Resumo da tese
Visualization of Version Control Information

Lucio Moratelli Prado

Florianpolis, julho de 2006.


ndice

1. Introduo..........................................................................................3

1.1. Detalhamento do Problema............................................................................3

1.2. Objetivos.........................................................................................................5

2. Software Configuration Management (SCM).....................................7

2.1. Sistema de Controle de Verso (VCS - Version Control System)................10

2.1.1. Termos........................................................................................................................... 10

2.1.2. Atividades Comuns........................................................................................................ 11

2.1.3. Algumas Ferramentas de Controle de Verso Existentes..............................................13


1. Introduo

1.1. Detalhamento do Problema

Controle de verso uma importante atividade relacionada a muitas fases

do ciclo de vida do desenvolvimento de software. Muitos sistemas de controle de

verso tm sido desenvolvidos para gerenciar o histrico das verses de software

e atividades humanas associadas com a inteno de produzir software de maior

qualidade e suportar trabalho em equipe.

Entretanto, a vasta informao desses sistemas de controle de verso no

bem apresentada e cria-se uma barreira para entender e explorar as

informaes disponveis. Essa barreira degrada a colaborao dos membros da

equipe e a habilidade de se entender o histrico do software.

Um dos aspectos importantes do sistema de controle de verso suportar

trabalho em equipe, que tem sido o estilo de desenvolvimento de software

predominante. Normalmente, um projeto de software dividido em pequenos

componentes e cada um dos membros da equipe toma conta de componentes

diferentes. Entretanto, esses componentes podem ser modificados por pessoas

diferentes nos processos de desenvolvimento e manuteno. Os trabalhadores da

equipe podem ter interesse em saber o que aconteceu com um arquivo quando

ele comeou a trabalhar com ele. De acordo com o resultado da pesquisa, esses

interesses podem ser resumidos nos seguintes:

- O que aconteceu desde a ltima vez que eu trabalhei neste projeto?


- Quem fez essa mudana?

- Onde ela foi colocada?

- Porque essa mudana foi feita?

- Como um arquivo foi mudado?

Outro aspecto importante do sistema de controle de verso suportar o

gerenciamento das verses de software. As pessoas esto interessadas no

somente na verso corrente do projeto mas tambm em verses antigas dele. Por

exemplo, atravs da comparao entre a verso corrente e uma velha verso,

pode-se entender como o projeto ou um arquivo mudou. E mais, ter uma viso do

histrico das verses do projeto valioso para o gerenciamento do projeto.

Gerentes de projeto podem tomar decises sobre novos planejamentos da

estrutura do software para novas verses. Conseqentemente, considera-se o

problema do histrico como uma questo que merece ateno.

Para fins de abreviao, convencionou-se usar 5W+2H para representar:

o qu (what), quem (who), quando (when), porque (why), como (how) e

histrico (history). Essas questes podem ser relacionadas a todas as entradas

do projeto e a cada arquivo, apresentando diferentes perspectivas da equipe.

Programadores trabalhando em equipe encontram essas questes no seu dia-a-

dia de trabalho. Acredita-se que as respostas para essas perguntas so essenciais

para a equipe trabalhar eficientemente.

Atravs da investigao de ferramentas de controle de verso populares

constatou-se que estas a maioria dessas questes podem ser respondidas


analisando-se o repositrio de dados dos sistemas de controle de verso. Os

registros das atividades de desenvolvimento de software so gravados em

repositrios, e podem ser acessados atravs de vrias interfaces providenciadas

pelos sistemas de controle de verso.

Porm, descobriu-se que os usurios tm dificuldades para entender e

explorar esse espao de informao. Por exemplo, a maneira tradicional de

explorar e solicitar dados dos sistemas de controle de verso atravs de

interface de linha de comando. A interface de linha de comando tem um custo

cognitivo muito alto para os seres humanos porque se faz necessrio lembrar de

uma variedade de comandos e o resultado das consultas em texto plano difcil

de se entender. Alm da linha de comando, as novas verses das ferramentas de

controle de verso tambm tm que habilitam explorar as informaes atravs de

GUIs (Graphical User Interface). Tais interfaces provem a maioria das

funcionalidades do controle de verso atravs do simples clique do mouse e uso

de menus, porm o resultado das consultar continua sendo em texto plano. Alm

disso, consultas mais elaboradas no so suportadas (por exemplo, quem est

trabalhando em quais arquivos).

1.2. Objetivos

Considerando as questes colocadas acima, pode-se perguntar: esse o

melhor caminho para os usurios entenderem e explorarem as informaes de

controle de verso, procurar facilmente respostas para as questes 5W+2H e

entender as respostas intuitivamente? Muitos estudos tm mostrado que tcnicas


de visualizao podem ajudar os usurios a entender e explorar vrios espaos de

informao. Ns achamos que tcnicas de visualizao podem ser aplicadas no

domnio do controle de verso e ajudar as tarefas de compreenso e explorao.

O objetivo dessa tese experimentar um novo mtodo para integrar tcnicas de

visualizao com um sistema de controle de verses para melhorar a colaborao

da equipe e o gerenciamento do projeto atravs do fcil entendimento e

explorao da informao dos sistemas de controle de verso. Um prottipo, Xia,

foi desenvolvido e implementado para esta finalidade. Escolheu-se o mais popular

sistema de controle de veres, o CVS e o Plug-in de CVS do Eclipse como a

interface de resuperao de dados. Alm disso, integrou-se uma ferramenta de

visualizao, chamada ShriMP, com o Eclipse para mostrar as informaes de

controle de verso dos repositrios do CVS.

Finalmente, foi conduzido um caso de uso para testar a funcionalidade e

usabilidade do Xia. Tarefas relacionadas com o as perguntas 5W+2H so

apresentadas no estudo. Feedbacks positivos e negativos foram coletados atravs

da observao e questionrios, conduzindo idias para futuras implementaes

das ferramentas e mais questes de pesquisas para serem exploradas.


2. Software Configuration Management (SCM)

Os conceitos de SCM so normalmente associados com as suas

funcionalidades e atividades. Sistemas diferentes de SCM implementam vrios

dos conceitos descritos no IEEE Standard for Software Configuration

Management Plans. As atividades de SCM so tradicionalmente agrupadas em

quatro categorias: identificao de configurao, controle de configurao,

contabilidade de estado e auditoria e revises. Essas quatro funes so descritas

no in IEEE Standard 828-1990 como segue:

Identificao: identificar, nomear e descrever as caractersticas fsicas e

funcionais do cdigo fonte, especificaes, projeto, e elementos de dados a serem

controlados pelo projeto.

Controle: requisitar, avaliar, aprovar ou desaprovar e implementar mudanas.

Contabilidade de Estado: gravar e solicitar o estado dos itens de configurao do

projeto (por exemplo, verso aprovada inicial, estado das mudanas solicitadas,

implementao das mudanas aprovadas).

Auditorias e Revises: determinar que extenso do item atual de configurao

reflete as caractersticas fsicas e funcionais solicitadas.


Com o crescimento e desenvolvimento de vrias ferramentas de SCM, o

Software Engineering Institute (SEI) da universidade de Carnegie Mellon reviu as

ferramentas de SCM e evoluiu a definio de SCM adicionando trs outras

funes, so elas:

Manufatura: gerenciar a construo e construir o produto de uma maneira tima.

Gerncia de Processo: assegurar o uso dos procedimentos, polticas e modelo

de clico de vida da organizao.

Trabalho em Equipe: controlar o trabalho e as interaes de mltiplos usurios

em um produto.

Essas trs funes complementam a definio do padro IEEE para tornar

a definio de SCM mais detalhada e completa. Elas tambm esto de

conformidade com o entendimento reconhecido de SCM, que diz que SCM no

somente um processo, mas tambm uma disciplina de gerenciamento. Entretanto,

no existem regras fixas para implementar as funcionalidades de SCM, a maioria

dos sistemas implementa somente uma parte de todas as funcionalidades e outros

uma nova combinao de funcionalidades, que nica para suas tarefas

especficas. Como o objetivo do SCM fazer software de qualidade e no existe

um padro universal que constitui um sistema de SCM, todos os sistemas que

fornecem funcionalidades parciais, mas, pretendem fornecer um SCM com todas


as funcionalidades para conseguir alta qualidade de software so considerados

sistemas de SCM pela comunidade de engenharia de software.

A despeito da variedade de implementaes de SCM, diversos conceitos

bsicos tm sido adotados no projeto e implementao de todos os sistemas de

SCM. Esses conceitos bsicos incluem itens de configurao, verso, release e

baseline.

Item de Configurao de Software (SCI Software Configuration Item): uma

agregao de software que designada para gerenciamento de configurao e

tratada como uma simples entidade no processo de SCM. Normalmente, SCIs

incluem especificaes, segmentos de cdigo fonte, bibliotecas de cdigo,

documentaes, e manuais de usurio e desenvolvedor.

Verso: Um termo genrico usado para descrever um release inicial de um SCI.

Diferentes sistemas de controle de verso tm diferentes interpretaes para este

termo. Por exemplo, no CVS, verso corresponde a um arquivo. Verses de

projetos so produzidas atravs de um tagging em um grupo de arquivos num

momento particular.

Release: A notificao e distribuio de uma verso aprovada.

Baseline: um conjunto de itens de software formalmente designados e

reparados em um tempo especifico durante o ciclo de vida do software. Ns

podemos dizer que um baseline uma verso especfica usada como ponto de
referncia para desenvolvimento futuro. Porm, uma baseline diferente de uma

verso. Tipicamente, um baseline representa um marco conceitual no processo de

desenvolvimento de software.

2.1. Sistema de Controle de Verso (VCS - Version Control

System)

Controle de verso uma funo importante de SCM. Como descrito

acima, um sistema que implementa parcialmente o padro SCM considerado um

sistema SCM, conseqentemente, um sistema de controle de verso

considerado um sistema de SCM. Controle de verso envolve o armazenamento

de itens de configurao, o armazenamento de mudanas, a gerncia dessas

mudanas, e a funo mais importante, a facilitao e gerenciamento do

desenvolvimento colaborativo de software, que permite que vrios integrantes da

equipe trabalhem no mesmo conjunto de cdigo, enviem suas mudanas, e se

comuniquem com os outros integrantes.

2.1.1. Termos

Existem alguns termos comuns que so compartilhados pelos vrios

sistemas de controle de verso independentemente dos conceitos bsicos de

SCM descritos na seo 2.


Reviso: Uma mudana cometida no histrico de um item de configurao. Existe

uma linha tnue entre a definio de reviso e verso, e as pessoas tendem a

confundi-las. De fato, diferentes ferramentas de controle de verso usam a

terminologia em caminhos ligeiramente diferentes, como mencionado na seo 2.

No CVS, uma reviso de um arquivo pode pertencer a mais que uma verso de

um projeto, desde que a reviso de um arquivo possa ser tagged vrias vezes.

Repositrio: uma biblioteca centralizada de arquivos que esto sob o controle de

vero. A noo de repositrio foi inicialmente proposta com o Revision Control

System (RCS) que foi desenvolvido por Walter F. Tichy. Todas as informaes de

CM sobre arquivos e o contedo desses arquivos so mantidas no repositrio.

Workspace: o espao no qual os programadores executam as tarefas de

desenvolvimento.

Working Copy: a cpia dos arquivos do repositrio no espao do usurio pode

ser mudada por esse usurio.

2.1.2. Atividades Comuns

A finalidade de uma ferramenta de controle de verso suportar as

funcionalidades de SCM. Embora sistemas de controle de verso diferentes

implementem modelos de controle de verso diferentes, existem algumas


caractersticas comuns entre eles. Segue um resumo das atividades comuns

associadas com os Sistemas de Controle de Verso.

Conexo de Dados: como mencionado acima, a noo de um repositrio

extensamente usada em sistemas de controle de verso. Um repositrio pode ser

um sistema de arquivos local ou um servidor remoto, e providencia rvore de

verso para gerenciar verses diferentes de arquivos. Por exemplo, verias

ferramentas de controle de verso usam arquitetura de cliente/servidor e os

clientes podem pegar qualquer informaes sobre qualquer arquivo acessando o

repositrio.

Check-in/Check-out: os usurios submetem suas mudanas atravs de check-

in, os artefatos de software de seus workspaces pessoais so enviados para o

repositrio compartilhado, e recuperam artefatos de software do repositrio

atravs do check-out.

Versioning: depois de tudo submetido, a ferramenta de controle de verso atribui

um novo nmero de reviso para os arquivos modificados, e grava as informaes

relacionadas, como tempo, usurio, etc.

Operao de Diff: quase todas as ferramentas de controle de verso

providenciam mecanismos para os usurios comparar as diferenas entre duas

revises de arquivos selecionados. Uma operao de diff ideal permitiria a

comparao entre uma cpia de trabalho de um usurio e qualquer reviso no


repositrio, como tambm, uma comparao entre duas revises quaisquer.

Algumas ferramentas providenciam somente parte desta funcionalidade, enquanto

outras providenciam mecanismos mais sofisticados.

Operao de Get: este mecanismo fornecido para os usurios recuperarem

qual reviso antiga dos arquivos ou verses de um projeto. Ela usada quando os

usurios procuram verses antigas melhores que a corrente e querem reverter

para uma dessas verses.

Operao de Report: esta operao usada para gerar vrios relatrios teis

sobre os artefatos de software, como o histrico de um artefato, anotaes, etc.

2.1.3. Algumas Ferramentas de Controle de Verso Existentes

Para selecionar um sistema de controle de verso para o nosso prottipo,

ns investigamos diversos sistemas de controle de verso populares. Ns

descobrimos que alguns deles so bem projetados e implementados, e tem um

nmero considervel de usurios.

Rational ClearCase

Usa um nico modelo para a finalidade de configurao e gerenciamento.

Os conceitos bsicos do UCM so atividade e artefato. Uma atividade uma

parte de um trabalho a ser realizada no projeto. Um artefato um item,

normalmente, um arquivo que est sob o controle de verso. Seu modelo de


controle de verso atribui verso a todos os artefatos no ciclo de vida do

desenvolvimento de software. O artefato pode ser um simples arquivo, um

diretrio, um subdiretrio e todos os tipos de objetos do sistema de arquivos. Esta

sua diferena, a maioria dos outros VCS somente suporta controle de verso de

arquivos.

Perforce

Possui uma interface com o usurio amigvel, no Perforce Windows cliente

chamado P4Win, uma interface padro Microsoft usada para mostrar as

informaes relacionadas a todas as tarefas de SCM. Os trabalhos em andamento

so mostrados e um mecanismo de arraste-e-solte disponibilizado para o

usurio realizar suas tarefas. Ele no apenas disponibiliza uma viso do diretrio

de trabalho, como outro CVS, mas tambm uma viso do repositrio como um

todo. Outra vantagem do P4Win que ele providencia uma viso da lista de

tarefas do usurio, que excelente para pessoas que trabalham em equipe para

verificar os estados do andamento de trabalho de seus colegas.

Revision Control System (RCS)

Permite controle de verso simples e bsico dos arquivos que esto no

repositrio. Os arquivos so armazenados no repositrio na forma de rvore. Cada

arquivo tem todas as suas revises em uma rvore ancestral. A raiz da rvore a

reviso mais antiga deste arquivo, e as revises sucessivas so ligadas aos seus

ancestrais. RCS tm seu prprio esquema para atribuir nmeros de revises para

os arquivos. No RCS, somente os arquivos correntes so armazenados no


repositrio, que conhece somente as diferenas entre as revises armazenadas, o

que economiza muito espao em disco, mas aumenta o tempo de acesso.

Concurrent Versions System (CVS)

um sistema de controle de verso de cdigo fonte aberto. O CVS usa o

formato para armazenamento de arquivo do RCS, entretanto, ele mais

sofisticado e suporta muitas outras funes, a maior diferena que o CVS

suporta um ambiente de desenvolvimento concorrente, enquanto que o RCS

somente suporta um simples usurio. Esta funo importante hoje em dia

porque a programao em equipe o estilo de programao que esta

prevalecendo na comunidade de engenharia de software. Porm, as vantagens do

CVS tambm introduzem desvantagens. Devido a suas poderosas funes, ele

requer maior administrao e o grande nmero de comandos produz uma curva

de aprendizagem ngreme para os novatos. Existem alguns termos definidos

especialmente no CVS. Uma tag o nome atribudo a uma coleo de revises de

arquivos em um momento particular de um histrico de verso. Uma verso de um

projeto no CVS normalmente determinada por uma tag. Outro conceito o

conceito de branch. Um CVS branch corta o desenvolvimento de um projeto em

histrias paralelas e as mudanas feitas em um branch no afetam o outro.

Atravs da investigao dessas ferramentas de controle de verso, ns

observamos que a maioria delas so integradas com outros sistemas de software,

especialmente software Integrated Development Environments (IDE) e isto prova,


mais uma vez, que o papel dos SCM servir de suporte no desenvolvimento de

software de qualidade.

Você também pode gostar