software-evolution
Ferramentas, técnicas e métricas
[versão 1.1]
Gustavo Oliva, Mauricio Aniche, Marco Gerosa
{goliva, aniche, gerosa}@ime.usp.br
IME-USP
Versão atualizada do curso apresentado em:
CBSoft 2011 – São Paulo – SP – Brasil
Instrutores
2
Gustavo Oliva
Mestre em Ciência da
Computação pelo IME/USP
Evolução e manutenção de software Gerência de dependências em sistemas OO
Atuou como desenvolvedor na IBM Brasil por ~3 anos
Mauricio Aniche
Mestre em Ciência da
Computação pelo IME/USP
Test-Driven Development e
Design de Sistemas OO
Instrutor dos cursos de Java e Métodos Ágeis da
Caelum
Objetivos do Curso
3
Objetivo Geral
Discutir
evolução de software e técnicas para extração e visualização de dados
Objetivos Específicos
Discutir
ferramentas
Discutir técnicas
Discutir métricas
Agenda
4
Motivação
Conceitos Básicos
Temas Atuais de Pesquisa
Métricas e Visualização
XFlow e rEvolution
Agenda
5
Motivação
Conceitos Básicos
Temas Atuais de Pesquisa
Métricas e Visualização
XFlow e rEvolution
O mundo real…
6
… é complicado!
FindBugs v1.3.0 (Novembro/2007)
Todo software útil…
7
Muda continuamente
Tende a tornar-se mais complexo
Tende a crescer
Motivação
8
A evolução do software é difícil de compreender
Grande
quantidade de dados históricos
A interação entre aspectos técnicos e sociais do processo de desenvolvimento de software é difícil de desvendar Uma análise compreensiva da evolução requer mecânismos sofisticados, como visualizações sob várias perspectivas e cálculo de métricas
Evolução de Software
9
Evolução de software se preocupa principalmente com as mudanças do sistema em relação a diferentes versões ou releases do mesmo
Em Maio de 2010, o Google Scholar reportou que, em 2009, 70 publicações