Análise de Desempenho dos
sistemas de controle de
versão SVN e Git
Felipe Buarque, Felype Santiago, Liliane Sheyla
Justificativa
Alguém já sobrescreveu o código de outra
pessoa por acidente e acabou perdendo
as alterações?
 Você sabe quem e em que momento e em
que parte um artefato foi alterado?
 Tem dificuldade em recuperar o código de
uma versão anterior que está em
produção?

Uso de Sistema de controle de
versão

Gerenciar artefatos produzidos por uma
equipe de desenvolvimento de software

Abordagem Centralizada ou distribuída?
Sistema de Controle de
Versão Centralizado






Armazenamento centralizado
Histórico Universal de Revisões
Trabalho cooperativo
Ramificações
Análise de diferenças entre
versões
SVN(Subversion)
Sistema de Controle de
Versão Distribuído





Rapidez
Autonomia
Redução de custos com o
servidor
Confiabilidade
Git; Mercurial
Problema

Visando maior produtividade e eficiência
na usabilidade dos controles de versão no
decorrer do projeto, é mais vantajoso que
uma equipe que utiliza um controle de
versão centralizado (SVN) migrar para um
distribuído(Git) ou permanecer com um
centralizado?
Objetivo da Pesquisa

Analisar a utilização das ferramentas
SVN e Git, com o propósito de definir
qual o sistema de controle de versão é
mais eficiente em relação a sua
usabilidade.
Especificação da Amostra
32 amostras: Alunos da Disciplina de
Engenharia de Software Experimental e
convidados.
 2 Grupos
 Divisão em 2 grupos aleatoriamente
 Mais de 1 ano de experiência
 Treinamento para ambos os times

Análise exploratória

Verificar normalidade dos dados
 Teste de Aderência
 Análise do Histogramas
 Análise dos Boxplots
 Análise dos gráficos do Quartis
Teste de Aderência
H0: Os dados não seguem uma distribuição
normal
H1: Os dados seguem uma distribuicao normal
Análise dos Histogramas
Análise dos Boxplots
Análise dos Gráficos dos
Quartis
Metodologia
Formulação das Hipóteses
 Projeto do Experimento
 Análise Estatística

Métricas
Medir usabilidade definida na ISO 9241-11
 Observar a interação do usuário com a
ferramenta de controle de versão

 TCA - Tempo de Configuração de Ambiente
 TCB - Tempo de criação de branch
 TIB - Tempo de Integração de branch
 TIL - Tempo de Integrar as mudanças Locais ao
Tronco
Formulação da hipóteses

Hipótese Alternativa (H01...4): Os tempos
definidos pelas métricas são iguais
utilizando-se SVN ou Git como sistema de
controle de versão.
Em complemento, hipóteses alternativas são
definidas para serem aceitas quando a hipótese
nula correspondente for negada.
Formulação da hipóteses

Hipótese Alternativa (H11...4): Os tempos
definidos pelas métricas utilizando-se SVN
como controle de versão são menores do
que os tempos coletados utilizando-se Git.
Formulação da hipóteses

Hipótese Alternativa (H11...4): Os tempos
definidos pelas métricas utilizando-se SVN
como controle de versão são maiores do
que os tempos coletados utilizando-se Git.
Projeto do Experimento








Experimento com um fator e dois tratamentos
Dois grupos de 16 pessoas cada um
Tags do software Jajuk
As atividades a serem executadas descritas
Tempos armazenados em planilha eletrônica
Eclipse
Plugin Subclipse/Repositório Google Code
Plugin eGit/Repositório Gitorius
Estatística

t-teste
Análise dos Resultados
Análise dos Resultados
Conclusões

Usabilidade da ferramenta Git se faz mais
eficiente do que a ferramenta SVN, pois a
mesma apresenta melhor desempenho no
que se diz respeito à realização das
atividades de criação de branch,
integração de branch e integração de
mudanças locais ao tronco, enquanto que
o SVN só foi mais eficiente na realização
da atividade de configuração do ambiente
Download

Hipótese Alternativa