walls, pillars and beams: a 3d decomposition of quality anomalies (vissoft2016)

131
Walls, Pillars and Beams: A 3D Decomposition of Quality Anomalies , Leonel Merino, Mohammad Ghafari and Oscar Nierstrasz Software Composition Group @ University of Bern Yuriy Tymchuk

Upload: yuriy-tymchuk

Post on 14-Apr-2017

63 views

Category:

Science


0 download

TRANSCRIPT

Walls, Pillars and Beams: A 3D Decomposition of Quality Anomalies

, Leonel Merino, Mohammad Ghafari and Oscar NierstraszSoftware Composition Group @ University of Bern

Yuriy Tymchuk

Walls, Pillars and Beams: A 3D Decomposition of Quality Anomalies

, Leonel Merino, Mohammad Ghafari and Oscar NierstraszSoftware Composition Group @ University of Bern

@yuriy_tymchuk

An intensive conference…

Time to Relax!

Palmgrowing

Height

Time

Analyzing the Process of Palmgrowing

Height

Time

Analyzing the Process of Palmgrowing

Height

Analyzing the Process of Palmgrowing

Time

Analyzing the Process of Palmgrowing

Height

Time

Analyzing the Process of Palmgrowing

Height

Time

Analyzing the Process of Palmgrowing

Height

Time

Analyzing the Process of Palmgrowing

Height

Time

Analyzing the Process of Palmgrowing

Height

Time

Analyzing the Process of Palmgrowing

Height

Time

Analyzing the Process of Palmgrowing

Height

Time

Analyzing the Process of Palmgrowing

Height

Time

Analyzing the Process of Palmgrowing

Height

Time

Analyzing the Process of Palmgrowing

Height

Time

Analyzing the Process of Palmgrowing

Height

Time

Analyzing the Process of Palmgrowing

Height

Time

62.5

125

187.5

250

Analyzing the Process of

Palmgrowing

Height

Time

Pharo 5

Height

Time

62.5

125

187.5

250

Pharo 5240 packages

5.5K classes92K methods680 updates

Height

Time

Time

Pharo 5240 packages

5.5K classes92K methods680 updates

SmallLint

Height

Time

Pharo 5240 packages

5.5K classes92K methods680 updates

SmallLint8 groups

124 rules

250 updates*

car isNil ifTrue: [ ̂ car := Car new ]

CI & Live

isNil ifTrue:

Height

Time

Pharo 5240 packages

5.5K classes92K methods680 updates

SmallLint8 groups

124 rules

250 updates*Tricorder: Building a Program Analysis Ecosystem. C. Sadowski, J. Gogh, C. Jaspan, E. Soederberg, C. Winter. ICSE’15, pp. 598–608, IEEE, 2015

When QualityAssistant Meets Pharo. Y. Tymchuk , M. Ghafari, O. Nierstrasz. IWST’16, to-be-published, ACM, 2016 *

car isNil ifTrue: [ ̂ car := Car new ]

CI & Live

isNil ifTrue:

Height

Height

Time

Pharo 5240 packages

5.5K classes92K methods680 updates

SmallLint8 groups

124 rules

250 updates

isNil ifTrue: ifNil:

car isNil ifTrue: [ ̂ car := Car new ]

CI & Live*

Height

Time

Pharo 5240 packages

5.5K classes92K methods680 updates

SmallLint8 groups

124 rules

250 updates

isNil ifTrue: ifNil:

car isNil ifTrue: [ ̂ car := Car new ]

CI & Live*

Height

Time

Pharo 5240 packages

5.5K classes92K methods680 updates

SmallLint8 groups

124 rules

250 updates

car isNil ifTrue: [ ̂ car := Car new ]

CI & Live

isNil ifTrue: ifNil:

Height

Time

Pharo 5240 packages

5.5K classes92K methods680 updates

SmallLint8 groups

124 rules

250 updates

car isNil ifTrue: [ ̂ car := Car new ]

CritiqueCI & Live

isNil ifTrue: ifNil:

Height

Time

Pharo 5240 packages

5.5K classes92K methods680 updates

SmallLint8 groups

124 rules

250 updatesCI & Live

isNil ifTrue: ifNil:

Critiques

car isNil ifTrue: [ ̂ car := Car new ]

Height

Time

Pharo 5240 packages

5.5K classes92K methods680 updates

SmallLint8 groups

124 rules

250 updates Time

CI & Live

isNil ifTrue: ifNil:

car isNil ifTrue: [ ̂ car := Car new ]

Critiques

Height

Time

Pharo 5240 packages

5.5K classes92K methods680 updates

SmallLint8 groups

124 rules

250 updates Time

CI & Live

isNil ifTrue: ifNil:

car isNil ifTrue: [ ̂ car := Car new ]

Critiques

Pharo 5 SmallLint Time

Critiques

Height

Time

Palm - Pharo map

Analyzing the Process of Pharoevolution

680Versions

Critiques

Analyzing the Process of Pharoevolution

40K

30K

20K

10K

680Versions

Critiques

0

Analyzing the Process of Pharoevolution

40K

30K

20K

10K

680Versions

Critiques

0

Analyzing the Process of Pharoevolution

Number of Critiques Σ=19.5M

680Versions

Analyzing the Process of Pharoevolution

Number of Critiques Σ=19.5M Δ=64.5K

Bad Pharoevolution

Good Pharoevolution

5K Rule #xed

5K Rule #xed

2.5K Rule removed

5K Rule #xed3.5K Rule added

2.5K Rule removed

0.8K Code added5K Rule #xed

3.5K Rule added

2.5K Rule removed

5K Rule #xed3.5K Rule added

1K Violation solved

2.5K Rule removed

0.8K Code added

Why did this irregularity occur?

What are the irregularities in the system’s evolution?

A picture is worth a thousand words“

”English idiom

Every block of stone has a statue inside it and it is the task of the sculptor to discover it

”Michelangelo

Every piece of data has a visualization that tells a story about it and it is the task of the visualization builder to discover it

“”

Time (Versions)

Met

rics

(Rul

es)

Time (Versions)

Met

rics

(Rul

es)

Time (Versions)

Met

rics

(Rul

es)

Time (Versions)

Met

rics

(Rul

es)

Time (Versions)

Met

rics

(Rul

es)

Time (Versions)

Met

rics

(Rul

es)

Time (Versions)

Met

rics

(Rul

es)

Time (Versions)

Met

rics

(Rul

es)

Time (Versions)

Met

rics

(Rul

es)

Code (Packages)

Code (Packages)

Time (Versions)

Met

rics

(Rul

es)

Code (Packages)

Time (Versions)

Met

rics

(Rul

es)

Code (Packages)

Time (Versions)

Met

rics

(Rul

es)

Code (Packages)

Time (Versions)

Met

rics

(Rul

es)

Code (Packages)

Time (Versions)

Met

rics

(Rul

es)

Code (Packages)

Time (Versions)

Met

rics

(Rul

es)

Code (Packages)

Time (Versions)

Code (Packages)

Time (Versions)

Code (Packages)

Time (Versions)

Code (Packages)

Time (Versions)

Met

rics

(Rul

es)

After about 1 working day…

Packages

Versions

Rule

s

What are the irregularities in the system’s evolution?

What are the irregularities in the system’s evolution?

“Anti-Matrix”

Packages

Versions

Rule

s

Packages

Versions

Rule

s

Packages

Versions

Rule

s

Packages

Versions

Rule

s

Packages

Versions

Rule

s

Packages

Versions

Rule

s

Color Code

Critiques addedCritiques removed

Color Code

No change

Critiques addedCritiques removed

High changeHigh change

Why did this irregularity occur?

Yes, that’s exactly what we did!

Meet the Anomalies

Wall

WallSomething Went Completely Wrong

Beam

Beam

Added/Removed Rule

Fixed/Broken Rule

Violated Single Rule

Resolved Critiques

Beams on a Rule-Pillar

Beams on a Rule-Pillar

Refactoring?

Beams on a Rule-Pillar

Refactoring?

1 Non-Related Beam

Beams on a Rule-Pillar

Refactoring?

1 Non-Related Beam

2 Related Beams

Beams on a Rule-Pillar

Refactoring?

1 Non-Related Beam

1 Rule broken & Fixed

2 Related Beams

Beams on a Rule-Pillar

Refactoring?

1 Non-Related Beam

1 Rule broken & Fixed

2 Related Beams

Pillar

PillarPackage Addition/Removal

PillarPackage Addition/Removal

Rules on Package-Beam

Rules on Package-Beam

Waldo

Waldo

Waldo

Waldo

±2000 critiques

Waldo

WaldoWall Pillar Beam

Initial Visualization

Final Visualization

Final Visualization

Final Visualization

Walls 3×2

Final Visualization

Walls

added/removed!xed/broken

other (non-rule)Beams/Rules

3×2 8

7 17

Final Visualization

Walls

added/removed!xed/broken

other (non-rule)

added/removedmodi!ed

Beams/Rules

Pillars/Packages

3×2 8

17 7

42 3

The Original Bar Chart

The Original Bar ChartCleansed

The Cleansed Bar Chart(without essential critiques)

800

600

400

200

680Versions

Critiques

0

The Cleansed Bar Chart(without essential critiques)

Full Process

Visualize Analyze Clean

Full Process?

Visualize Clean

Can Statistics Solve This?

The Dataset Artifact

https://doi.org/10.5281/zenodo.56111

Raw

Precessed

Meta

Result

Extra

The Dataset Artifact

https://doi.org/10.5281/zenodo.56111

Raw

Precessed

Meta

Result

Extra

critiques per entity

critique deltas

rule/package changes; patch notes

anomalies

summaries & cleansed sets

(2.17GB)

Real Problem

Embodies Data

Tell Story

Wall, Pillar, BeamReveal Anomalies

Solves the Problem

3D Matrix Anti-Matrix

Meta Panes

Walls, Pillars and Beams: A 3D Decomposition of Quality Anomalies

, Leonel Merino, Mohammad Ghafari and Oscar NierstraszSoftware Composition Group @ University of Bern

@yuriy_tymchuk

S P O N S O R E D B Y