sbqs 2013 - apresentação ctdqs - ostra - daniel castellani

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

Upload: daniel-castellani

Post on 02-Jul-2015

218 views

Category:

Education


1 download

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.pdf

TRANSCRIPT

Page 1: SBQS 2013 - Apresentação CTDQS - Ostra - Daniel Castellani

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

Page 2: SBQS 2013 - Apresentação CTDQS - Ostra - Daniel Castellani

Ciclo de vida do software

Definição Desenvolvimento Manutenção

60% do tempo

90% do custo

2 Daniel Castellani -

[email protected] - CTDQS 2013

Page 3: SBQS 2013 - Apresentação CTDQS - Ostra - Daniel Castellani

Atributos de qualidade

Desenvolvimento

Manutenibilidade

Entendimento Flexibilidade

3 Daniel Castellani -

[email protected] - CTDQS 2013

Page 4: SBQS 2013 - Apresentação CTDQS - Ostra - Daniel Castellani

Motivação

• Monitorar a qualidade do produto para garanti-la

• Entender sobre quais fatores influenciam a qualidade

4 Daniel Castellani -

[email protected] - CTDQS 2013

Page 5: SBQS 2013 - Apresentação CTDQS - Ostra - Daniel Castellani

Disciplinas

Gerência de Configuração

Mineração de dados

Métricas de

Software

5 Daniel Castellani -

[email protected] - CTDQS 2013

Page 6: SBQS 2013 - Apresentação CTDQS - Ostra - Daniel Castellani

Gerência de Configuração

6

Commit

Revisão

Versionamento

Construção

Daniel Castellani - [email protected] - CTDQS 2013

Page 7: SBQS 2013 - Apresentação CTDQS - Ostra - Daniel Castellani

Métricas de Software

7

Métricas de Software

Processo Projeto Produto

Daniel Castellani - [email protected] - CTDQS 2013

Page 8: SBQS 2013 - Apresentação CTDQS - Ostra - Daniel Castellani

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

Page 9: SBQS 2013 - Apresentação CTDQS - Ostra - Daniel Castellani

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

Page 10: SBQS 2013 - Apresentação CTDQS - Ostra - Daniel Castellani

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

Page 11: SBQS 2013 - Apresentação CTDQS - Ostra - Daniel Castellani

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

Page 12: SBQS 2013 - Apresentação CTDQS - Ostra - Daniel Castellani

Abordagem: Visão Geral

12 Daniel Castellani -

[email protected] - CTDQS 2013

Page 13: SBQS 2013 - Apresentação CTDQS - Ostra - Daniel Castellani

Fase de Medição

13 Daniel Castellani -

[email protected] - CTDQS 2013

Page 14: SBQS 2013 - Apresentação CTDQS - Ostra - Daniel Castellani

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

Page 15: SBQS 2013 - Apresentação CTDQS - Ostra - Daniel Castellani

Delta

Versão 11 Versão 12

commit

260,000 +1.000

Modification

15 Daniel Castellani -

[email protected] - CTDQS 2013

261,000

Page 16: SBQS 2013 - Apresentação CTDQS - Ostra - Daniel Castellani

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

Page 17: SBQS 2013 - Apresentação CTDQS - Ostra - Daniel Castellani

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

Page 18: SBQS 2013 - Apresentação CTDQS - Ostra - Daniel Castellani

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

Page 19: SBQS 2013 - Apresentação CTDQS - Ostra - Daniel Castellani

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

Page 20: SBQS 2013 - Apresentação CTDQS - Ostra - Daniel Castellani

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

Page 21: SBQS 2013 - Apresentação CTDQS - Ostra - Daniel Castellani

Experimento 2: Monitoramento da Qualidade

• Projeto: IdUFF

1

2

3

22 Daniel Castellani -

[email protected] - CTDQS 2013

Page 22: SBQS 2013 - Apresentação CTDQS - Ostra - Daniel Castellani

Experimento 2: Monitoramento da Qualidade - Delta

1

3

2

23 Daniel Castellani -

[email protected] - CTDQS 2013

Page 23: SBQS 2013 - Apresentação CTDQS - Ostra - Daniel Castellani

1

3 2

Experimento 2: Monitoramento da Qualidade

1

3 2

24 Daniel Castellani -

[email protected] - CTDQS 2013

Page 24: SBQS 2013 - Apresentação CTDQS - Ostra - Daniel Castellani

Experimento 2: Monitoramento da Qualidade

1

3 2

25

1

3

2

Daniel Castellani - [email protected] - CTDQS 2013

Page 25: SBQS 2013 - Apresentação CTDQS - Ostra - Daniel Castellani

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

Page 26: SBQS 2013 - Apresentação CTDQS - Ostra - Daniel Castellani

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

Page 27: SBQS 2013 - Apresentação CTDQS - Ostra - Daniel Castellani

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

Page 28: SBQS 2013 - Apresentação CTDQS - Ostra - Daniel Castellani

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

Page 29: SBQS 2013 - Apresentação CTDQS - Ostra - Daniel Castellani

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

Page 30: SBQS 2013 - Apresentação CTDQS - Ostra - Daniel Castellani

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