Você está na página 1de 3

Disciplina: Gerncia de Projetos

Professor: Leonardo Murta



IV Lista de exerccios
1 De acordo com as sentenas abaixo, defina quais so verdadeiras e quais so falsas,
justificando sua resposta:
a) O armazenamento num repositrio baseado em forward delta til quando o
desenvolvimento depende da recuperao constante de verses iniciais do sistema.

R: Verdadeiro. A poltica de armazenamento baseado em forward delta armazena a
primeira verso integralmente no repositrio, e seus deltas em seguida, at a verso
mais atual.
b) Numa estratgia de ramificao baseada em customizaes somente o ramo de
integrao manipulado (dica: ver slides sobre estratgias de ramificao do curso de
GC).
R: Falso. Tanto os ramos de customizao quando o de integrao so manipulados.
Entretanto, quando se tem uma nova verso no ramo de integrao, as alteraes
presentes nesta verso so passadas aos ramos de customizao, que por consequncia
tero novas verses. Os ramos de customizao podem ter novas verses sem que o
ramo de integrao tenha sido atualizado, quando bugs nestas customizaes so
corrigidos ou novas funcionalidades especficas a estas atualizaes so implementadas.
c) O processo de auditoria realizado aps a liberao do produto, visando analisar se
este foi corretamente implantado.
R: Falso. O processo de auditoria realizado para verificar se o software atende as
especificaes e no possui erros, sendo realizado antes da entrega/liberao do
produto.
d) A poltica pessimista de controle de verso visa evitar conflitos fsicos em junes.
R: Verdadeiro. A poltica pessimista apresenta meios para que dois usurios no alteram
um mesmo item de configurao concorrentemente, evitando assim problemas que
podem ocorrer na juno de verses. Porm, vale enfatizar que esta poltica evita
somente conflitos fsicos (em arquivos).
2 Quais situaes podem ocorrer no momento da juno de duas verses de um
mesmo arquivo? Quais estratgias podem ser utilizadas para resolver estes problemas e
que aspectos devem ser considerados durante a juno?
R: Durante o processo de merge, podem ocorrer 2 situaes: os arquivos podem ter sido
modificados em partes distintas e os arquivos podem ter sido modificados em partes
iguais. No primeiro caso, uma simples unio dos arquivos resolver. Quando os
arquivos possuem conflito no mesmo trecho, o processo de juno torna-se mais
complicado, uma vez que precisamos analisar o contexto antes de realizar a juno.
Entretanto, a sintaxe e a semntica do arquivo devem ser consideradas ao juntar
arquivos. Algoritmos comumente utilizados no levam em conta estes aspectos, e
possvel que mesmo que a juno ocorra com sucesso, erros ocorram. Por este motivo
no se recomenda que a juno seja realizada unicamente por um sistema automatizado,
mas conferida por um ou mais membros da equipe.
3 Sabendo de seus conhecimentos em Gerncia de Configurao adquiridos na
disciplina de Engenharia de Software II, uma empresa de software o contratou para criar
um sistema de controle de verso prprio. Quais as caractersticas desta empresa devem
ser consideradas quando se projeta este sistema de controle de verso em quais aspectos
do sistema de controle de verso estas caractersticas influenciam?
R: No projeto deste sistema de controle de verso, caractersticas como a existncia de
equipes que trabalhem de forma distribuda (como filiais), a forma de trabalho da equipe
(se existem pessoas que trabalham em um mesmo arquivo frequentemente), o formato
dos projetos (se existe um projeto somente ou vrios projetos que sero armazenados no
mesmo repositrio), a frequncia com que verses antigas do projeto so acessadas e a
forma de realizar alteraes podem influenciar em caractersticas como topologia,
controle de concorrncia, forma de numerar verses, tipo de armazenamento e
organizao de ramos, respectivamente.
4 Pesquise uma ferramenta de controle de verso existente (exceto o Subversion) e
descreva qual a topologia utilizada, de que forma ela identifica verses, de que forma
ela armazena verses e se (e como) ela trabalha com ramos.
R:
A ttulo de exemplo, analisemos duas ferramentas: Git e Mercurial:
Git:
O Git um sistema de controle de verso baseado na topologia distribuda, onde cada
usurio possui um espao de trabalho junto com o repositrio local, sendo que este
ltimo pode ser puxado por outros usurios. O Git armazena verses completas, ou
snapshots do repositrio. Entretanto, ele cria links para os arquivos que no foram
alterados desde a ltima verso, de forma transparente ao usurio. Assincronamente, o
Git compacta o repositrio, criando delta entre os arquivos. O Git armazena um hash do
repositrio em cada verso, para identifica-lo. Git trabalha com ramos, criando
ponteiros que identificam estes ramos, os quais apontam para uma determinada reviso.
Para identificar com qual ramo estamos trabalhando, um ponteiro HEAD utilizado.

Mercurial:
O Mercurial um sistema de controle de verso com topologia distribuda. No
Mercurial, arquivos e informaes sobre estes e suas verses so armazenados
separadamente. A estrutura que agrega dados e arquivos de uma verso chamada de
revlog. Para armazenar verses de um arquivo, utilizado o mecanismo de reverse
delta. A verso mais atual completa, e o conjunto de alteraes para tornar uma verso
mais nova em uma ou mais verses antigas armazenado. Porm, ele tambm armazena
uma verso completa a cada nmero especfico de verses, de forma a agilizar a
recuperao de verses mais antigas. Para numerar verses, o Mercural armazena tanto
uma numerao sequencial para cada verso, computado no mbito local, quanto um
hash desta verso. Com relao a ramos, o Mercurial permite a criao de ramos, onde
nomes identificam estes ramos. Podem ser criados ramos diretamente (pelo comando
branch) ou indiretamente, quando clonamos um repositrio.