1. O documento apresenta um estudo sobre monitoramento da qualidade de software através da mineração de métricas históricas de projetos usando regras de associação.
2. Foram analisados diversos projetos open source, extraindo métricas de cada commit e identificando padrões que influenciam atributos de qualidade.
3. Os resultados incluem regras que associam comportamentos de desenvolvedores, mudanças nas métricas e resultados de compilação, além de confirmação de padrões encontrados na literatura.
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
SBQS 2013 - Apresentação CTDQS - Ostra - Daniel Castellani
1. OSTRA: UM ESTUDO DO HISTÓRICO DA
QUALIDADE DO SOFTWARE ATRAVÉS DE
REGRAS DE ASSOCIAÇÃO DE MÉTRICAS
Daniel D. Castellani Ribeiro
Orientador: Leonardo Murta
Co-orientador: Alexandre Plastino
Concurso de Teses e Dissertações em Qualidade de Software – CTDQS 2013
2. Ciclo de vida do software
Definição Desenvolvimento Manutenção
60% do tempo
90% do custo
2
Daniel Castellani -
danielcastellani@id.uff.br - CTDQS 2013
4. Motivação
• Monitorar a qualidade do produto para
garanti-la
• Entender sobre quais fatores influenciam a
qualidade
4
Daniel Castellani -
danielcastellani@id.uff.br - CTDQS 2013
7. Métricas de Software
7
Métricas de
Software
Processo Projeto Produto
Daniel Castellani -
danielcastellani@id.uff.br - CTDQS 2013
8. QMOOD Modelo de qualidade para
Arquiteturas Orientadas a Objetos
6
11
11
Atributos de Qualidade
Propriedades
Métricas
Componentes
8
Efetividade
Entendimento
Extensibilidade
Flexibilidade
Funcionalidade
Reusabilidade
Daniel Castellani -
danielcastellani@id.uff.br - CTDQS 2013
9. Grande Quantidade de Dados
• Software
– 1500 commits
• Métricas
– 30
• Informação
– 45.000 medições
9
5.673
commits
30
métricas
170.190
medições
Daniel Castellani -
danielcastellani@id.uff.br - CTDQS 2013
10. Mineração de Dados:
Regras de Associação
• Medidas de Interesse
– Suporte
– Confiança
– Lift João ↓ Complexity
Segunda Não Compila
10
Daniel Castellani -
danielcastellani@id.uff.br - CTDQS 2013
11. Objetivos
1. Fornecer informações relevantes à tomada de
decisões gerenciais
2. Auxiliar o monitoramento da qualidade
3. Identificar padrões evolutivos
11
Daniel Castellani -
danielcastellani@id.uff.br - CTDQS 2013
14. Cerca de 30 Métricas
• Métricas Simples (Diretas)
– 11 de QMOOD
– Outras
• Complexidade Ciclomática de McCabe (TCC)
• LOC
• Número de Métodos (NOM)
• Métricas Compostas (Indiretas)
– 6 Atributos de Qualidade
– Densidade de Complexidade (= TCC / NOM)
14
Daniel Castellani -
danielcastellani@id.uff.br - CTDQS 2013
15. Delta
Versão 11 Versão 12
commit
260,000
+1.000
Modification
15
Daniel Castellani -
danielcastellani@id.uff.br - CTDQS 2013
261,000
16. Fase de Mineração
– Quem:
• Desenvolvedor
– Quando
• Hora
• Turno de trabalho
• Dia da semana
– Como
• Quantidade de arquivos
• Métricas
16
Daniel Castellani -
danielcastellani@id.uff.br - CTDQS 2013
17. Fase de Apresentação
17
Fase de
Apresentação
Gráficos do
Histórico
Regras de
Associação
Tabela de
Comportamento
Daniel Castellani -
danielcastellani@id.uff.br - CTDQS 2013
18. Experimento 1: Regras Sobre a
Evolução
• Questão de Pesquisa: A mineração de dados é
capaz de obter informações relevantes sobre a
evolução do projeto?
• Métricas: TCC, Reu, Ent, LOC e DSC.
• Metadados do commit: hora, desenv. e compila.
Projeto
Quantidade de
Desenvolvedores
Quant. de
Artefatos
Revisões
que
compilam
Revisões
que não
compilam
Total de
revisões
Ultima
revisão
medida
Maven
Javadoc
Plugin
21 795 248 81 329 1232525
Maven GWT
Plugin
6 463 252 60 312 14772
IdUFF 31 1068 1355 154 1509 22695
Publico-core 21 117 127 7 134 21633
19
Daniel Castellani -
danielcastellani@id.uff.br - CTDQS 2013
19. Regras Positivas do IdUFF
# Regra Sup. Conf. Lift Base
1
Se a quantidade de classes aumenta,
Então nove ou mais artefatos alterados.
0,14 0,72 3,11 B
2
Se a quantidade de linhas de código diminui,
Então o entendimento aumenta.
0,03 0,20 2,86 B
3
Se a reusabilidade diminui,
Então o entendimento aumenta.
0,02 0,17 2,43 B
4 *
Se a quantidade de classes aumenta,
Então a reusabilidade aumenta.
0,15 0,77 2,23 B
5
Se Tywin faz alterações,
Então três ou quatro artefatos alterados.
0,01 0,28 2,00 B
6
Se Stannis faz alterações,
Então nove ou mais artefatos alterados.
0,01 0,39 1,76 A
7
Se Robb faz alterações,
Então complexidade diminui.
0,01 0,43 1,43 A
8 *
Se Stannis faz alterações,
Então a complexidade diminui.
0,01 0,36 1,20 A
9 *
Se Tywin faz alterações,
Então compila.
0,03 1,0 1,11 A
10
Se Renly faz alterações,
Então compila.
0,02 1,0 1,11 A
20
8. Stannis é um desenvolvedor experiente que faz refatorações.
4. Foco em reusabilidade pela equipe bem sucedido.
9. Tywin sempre se preocupou em publicar código que funciona.
Daniel Castellani -
danielcastellani@id.uff.br - CTDQS 2013
20. Regras Negativas do IdUFF
# Regra Sup. Conf. Lift Base
1
Se a quantidade de classes diminui,
Então a reusabilidade diminui.
0,01 0,75 4,61 B
2 *
Se Jofrey faz alterações,
Então não compila.
0,01 0,32 3,22 A
3
Se Stannis faz alterações,
Então a quantidade de linhas de código diminui.
0,01 0,41 2,65 B
4
Se Tyrion faz alterações,
Então a complexidade aumenta.
0,00 1,0 2,30 B
5
Se o commit é na sexta-feira,
então a reusabilidade diminui.
0,02 0,3 2,05 B
6 *
Se a quantidade de classes aumenta,
Então o entendimento diminui.
0,18 0,94 2,04 B
7 *
Se o commit é na sexta-feira ,
Então não compila.
0,15 0,11 1,50 A
8
Se Renly faz alterações,
Então a complexidade aumenta.
0,01 0,5 1,33 A
9
Se Tommem faz alterações,
Então a complexidade aumenta.
0,03 0,45 1,21 A
10
Se o commit é no turno da noite,
Então não compila.
0,02 0,12 1,20 A
21
0,00%
8,33%
11,17% 10,65%
9,15%
11,79%
0,00%
7,30%
0,00%
5,00%
10,00%
15,00%
Domingo Segunda-feira Terça-feira Quarta-feira Quinta-feira Sexta-feira Sábado Geral
Taxa de Não Compilação
Daniel Castellani -
danielcastellani@id.uff.br - CTDQS 2013
21. Experimento 2: Monitoramento
da Qualidade
• Projeto: IdUFF
1
2
3
22
Daniel Castellani -
danielcastellani@id.uff.br - CTDQS 2013
25. Experimento 3: Padrões Gerais
• Comparação com a
literatura
• 16 projetos
• Questão de Pesquisa:
A mineração de dados
é capaz de obter
informações relevantes
sobre o relacionamento
entre métricas de
software?
Projeto
Quantidade de
Desenvolvedores
Quant. De
Artefatos
LOC
(Java)
Revisões
que
compilam
Total de
revisões
Ultima
revisão
medida
Acadêmico Pós
Graduação Core
9 221 10.413 102 142 4.196
IdUFF 31 1.068 151.621 1.355 1.509 22.695
Maven Changes
Plugin*
10 686 8.188 230 259 1.140.265
Maven GWT
Plugin*
6 463 10.816 252 312 14.772
Maven Javacc
Plugin*
6 759 6.575 129 136 10.774
Maven Javadoc
Plugin*
21 795 17.775 248 329 1.232.525
Maven Native
Plugin*
4 1.305 9.403 148 163 13.690
Maven Nbm
Plugin*
5 1.433 6.916 210 230 14.751
Maven PMD
Plugin*
14 806 2.610 104 110 1.159.144
Maven Project
Info Reports
Plugin*
13 32 8.770 160 240 1.152.589
Maven Shade
Plugin
12 84 6.650 102 104 1.300.217
Maven Versions
Plugin*
6 143 17.537 182 198 13.376
Monitoria Core 6 143 10.246 133 445 23.628
Oceano Core 6 418 29.181 214 228 1.075
Oceano Web 6 117 10.984 117 179 1.077
Publico Core 21 117 9.183 127 134 21.633
26
Daniel Castellani -
danielcastellani@id.uff.br - CTDQS 2013
26. Análise Geral
Comportamento Confirmações Negações
A manutenibilidade afeta positivamente a flexibilidade 15 0
A flexibilidade afeta positivamente a manutenibilidade 15 0
Comportamento Confirmações Negações
A flexibilidade afeta negativamente a integridade 0 15
29
Indicado por Wiegers (2003)
Encontrado
Daniel Castellani -
danielcastellani@id.uff.br - CTDQS 2013
27. Principais Ameaças à validade
• Quantidade de amostras
– Apenas indícios de padrões gerais
• Mapeamento de Wiegers
• Fórmulas dos Atributos de Qualidade
30
Daniel Castellani -
danielcastellani@id.uff.br - CTDQS 2013
28. Contribuições Principais
• Abordagem
– Mineração
– Métricas
– Commits
• Tabela de
Comportamento
• Protótipo
31
Versão 11 Versão 12
commit
Daniel Castellani -
danielcastellani@id.uff.br - CTDQS 2013
29. Trabalhos Futuros
• Monitoramento da qualidade durante o
desenvolvimento
• Padrões gerais da engenharia de software
• Predição de valores futuros
32
Daniel Castellani -
danielcastellani@id.uff.br - CTDQS 2013
30. OSTRA: UM ESTUDO DO HISTÓRICO DA
QUALIDADE DO SOFTWARE ATRAVÉS DE
REGRAS DE ASSOCIAÇÃO DE MÉTRICAS
Daniel D. Castellani Ribeiro
Orientador: Leonardo Murta
Co-orientador: Alexandre Plastino
Concurso de Teses e Dissertações em Qualidade de Software – CTDQS 2013