sbqs 2013 - apresentação ctdqs - ostra - daniel castellani
DESCRIPTION
Apresentação do Concurso de Teses e Dissertações em Qualidade de Software CTDQS 2013, durante o SBQS 2013 em Salvador. Título: Ostra um estudo do histórico da qualidade do software através de regras de associação de métricas Dissertação:https://www.dropbox.com/s/lcm0o34zvmoiw1l/Disserta%C3%A7%C3%A3o_Final_Oficial.pdf Artigo:https://www.dropbox.com/s/jtack2x9q1pba12/Artigo_CTDQS_2013_Ostra_Daniel_Castellani_Ribeiro.pdfTRANSCRIPT
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
Ciclo de vida do software
Definição Desenvolvimento Manutenção
60% do tempo
90% do custo
2 Daniel Castellani -
[email protected] - CTDQS 2013
Atributos de qualidade
Desenvolvimento
Manutenibilidade
Entendimento Flexibilidade
3 Daniel Castellani -
[email protected] - CTDQS 2013
Motivação
• Monitorar a qualidade do produto para garanti-la
• Entender sobre quais fatores influenciam a qualidade
4 Daniel Castellani -
[email protected] - CTDQS 2013
Disciplinas
Gerência de Configuração
Mineração de dados
Métricas de
Software
5 Daniel Castellani -
[email protected] - CTDQS 2013
Gerência de Configuração
6
Commit
Revisão
Versionamento
Construção
Daniel Castellani - [email protected] - CTDQS 2013
Métricas de Software
7
Métricas de Software
Processo Projeto Produto
Daniel Castellani - [email protected] - CTDQS 2013
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 - [email protected] - CTDQS 2013
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 - [email protected] - CTDQS 2013
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 -
[email protected] - CTDQS 2013
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 -
[email protected] - CTDQS 2013
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 -
[email protected] - CTDQS 2013
Delta
Versão 11 Versão 12
commit
260,000 +1.000
Modification
15 Daniel Castellani -
[email protected] - CTDQS 2013
261,000
Fase de Mineração
– Quem: • Desenvolvedor
– Quando • Hora
• Turno de trabalho
• Dia da semana
– Como • Quantidade de arquivos
• Métricas
16 Daniel Castellani -
[email protected] - CTDQS 2013
Fase de Apresentação
17
Fase de Apresentação
Gráficos do Histórico
Regras de Associação
Tabela de Comportamento
Daniel Castellani - [email protected] - CTDQS 2013
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 -
[email protected] - CTDQS 2013
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 -
[email protected] - CTDQS 2013
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 - [email protected] - CTDQS 2013
Experimento 2: Monitoramento da Qualidade
• Projeto: IdUFF
1
2
3
22 Daniel Castellani -
[email protected] - CTDQS 2013
Experimento 2: Monitoramento da Qualidade - Delta
1
3
2
23 Daniel Castellani -
[email protected] - CTDQS 2013
1
3 2
Experimento 2: Monitoramento da Qualidade
1
3 2
24 Daniel Castellani -
[email protected] - CTDQS 2013
Experimento 2: Monitoramento da Qualidade
1
3 2
25
1
3
2
Daniel Castellani - [email protected] - CTDQS 2013
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 -
[email protected] - CTDQS 2013
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 -
[email protected] - CTDQS 2013
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 -
[email protected] - CTDQS 2013
Contribuições Principais
• Abordagem
– Mineração
– Métricas
– Commits
• Tabela de Comportamento
• Protótipo
31
Versão 11 Versão 12
commit
Daniel Castellani - [email protected] - CTDQS 2013
Trabalhos Futuros
• Monitoramento da qualidade durante o desenvolvimento
• Padrões gerais da engenharia de software
• Predição de valores futuros
32
Daniel Castellani - [email protected] - CTDQS 2013
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