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