2. The use of the crafts of typography,
graphic design, animation, and
cinematography with modern human-
computer interaction and computer
graphics technology to facilitate both the
human understanding and effective use of
computer software.
John Stasko et al.
Software Visualization
Programming as a Multimedia Experience
MIT University Press, 1998
4. the visualization of
t h e h i g h e r- l e v e l
algorithm visualization
abstractions which
describe software
software visualization
program visualization
5. the visualization of
t h e h i g h e r- l e v e l
algorithm visualization
abstractions which
describe software
software visualization
the visualization of
the actual program
program visualization code or data
structures in static or
dynamic form
21. Deciduous shrub, glabrous or nearly so, with
weak, trailing sub-glaucous, often purple-
tinted stems, either decumbent and forming
low bushes 50 - 100 cm high, or climbing
over other shrubs, rarely more erect
and reaching 2 m. Prickles hooked,
all +- equal. L’flets 2-3 pairs, 1-3.5
cm, ovate or ovate-elliptic, simply,
rarely double serrate, glabrous on
both sides or pubescent on the
veins (rarely all over) beneath,
rather thin; petiole usually
with some stalked glands;
stipules narrow, auricles
straight. Flowers 1-6, white
3-5 cm diam.; pedicels 2-4 cm
with stalked glands, rarely
smooth; buds short... etc. etc.
22. Deciduous shrub, glabrous or nearly so, with
weak, trailing sub-glaucous, often purple-
tinted stems, either decumbent and forming
low bushes 50 - 100 cm high, or climbing
over other shrubs, rarely more erect
and reaching 2 m. Prickles hooked,
all +- equal. L’flets 2-3 pairs, 1-3.5
cm, ovate or ovate-elliptic, simply,
rarely double serrate, glabrous on
both sides or pubescent on the
veins (rarely all over) beneath,
rather thin; petiole usually
with some stalked glands;
stipules narrow, auricles
straight. Flowers 1-6, white
3-5 cm diam.; pedicels 2-4 cm
with stalked glands, rarely
smooth; buds short... etc. etc.
23. It would be a great mistake to suppose
that the dominant role of visual
observation has now been overthrown by
more ‘analytical’ methods.
John Ziman
Reliable Knowledge
An Exploration of the Grounds
for Belief in Science
Cambridge University Press, 1978
28. Software Visualization
The use of the crafts of typography,
graphic design, animation, and
cinematography with modern human-
computer interaction and computer
graphics technology to facilitate both the
human understanding and effective use of
computer software.
Lanza, 2010
47. It was the twenty-eight of November. An
immense confused mass of men, horses,
vehicles besieged the narrow entrances to
the bridges and began to flow over them.
48. It was the twenty-eight of November. An
immense confused mass of men, horses,
vehicles besieged the narrow entrances to
the bridges and began to flow over them.
Those in front, pushed by the weight of those behind were
crushed, trampled on, or forced into the ice-filled water of the
Berezina.
The confusion was so great that when Napoleon himself wished
to cross, it was necessary to use force to clear a passage.
Some there were who, determined to pass at all costs, cut a
horrible way for themselves with their swords. Others opened
an even crueler road for their carriages, driving them pitilessly
through the helpless crowd, crushing men and women, in their
odious greed sacrificing their companions in misery.
50. We acquire more information
through vision than through
all the other senses combined.
Colin Ware
Information Visualization
Perception for Design
Morgan Kaufmann, 2004
51. Sensation Perception
(Physical Process) (Cognitive Process)
Stimulus Sensory Organ Perceptual Organ
Brain
52. The Eye
A camera with a maximum
resolution of 625 dpi in the foveal
zone of the retina.
53. The Eye
A camera with a maximum
resolution of 625 dpi in the foveal
zone of the retina.
The retina is coated with rods (for
dim light) and cones (for bright
light and colors).
54. The Eye
A camera with a maximum
resolution of 625 dpi in the foveal
zone of the retina.
The retina is coated with rods (for
dim light) and cones (for bright
light and colors).
Three types of cones, specialized
on the blue, green, and red range
of the color spectrum.
61. Category Form Color Spatial Motion Motion
Orientation Hue 2D position Flicker
Line length Intensity Direction
Line width
Size
Attribute
Shape
Curvature
Added marks
Enclosure
77. Type Attribute Quantitative?
Orientation No
Line Length Yes
Line Width Partially
Size Partially
Form
Shape No
Curvature No
Added Marks No
Enclosure No
Hue No
Color
Intensity Partially
Position 2D Position Yes
78. about software of
software software
visualization
79. Stephen Few Edward Tufte
Show Me the Numbers The Visual Display of Quantitative Information
Analytics Press, 2004 Morgan Kaufmann, 2004
80.
81. about software of
software
visualization software
117. City Metaphor
class building
package district
VISSOFT 2007
118. City Metaphor
class building
package district
VISSOFT 2007
119. City Metaphor
class building
package district
nesting level color
VISSOFT 2007
120. City Metaphor
number of methods (NOM) height
number of attributes (NOA) base size
number of lines of code (LOC) color
class building
package district
nesting level color
VISSOFT 2007
145. Design desiderata
1 Avoid comparing using a technique against not using it.
2 Involve participants from the industry.
3 Provide a not-so-short tutorial of the experimental tool to the participants.
4 Avoid, whenever possible, giving the tutorial right before the experiment.
5 Use the tutorial to cover both the research behind the approach and the tool.
6 Find a set of relevant tasks.
7 Choose real object systems that are relevant for the tasks.
8 Include more than one object system in the design.
9 Provide the same data to all participants.
10 Limit the amount of time allowed for solving each task.
11 Provide all the details needed to make the experiment replicable.
12 Report results on individual tasks.
13 Include tasks on which the expected result is not always to the advantage of the
tool being evaluated.
14 Take into account the possible wide range of experience level of the participants.
146. Design desiderata
1 Avoid comparing using a technique against not using it.
2 Involve participants from the industry.
3 Provide a not-so-short tutorial of the experimental tool to the participants.
4 Avoid, whenever possible, giving the tutorial right before the experiment.
5 Use the tutorial to cover both the research behind the approach and the tool.
6 Find a set of relevant tasks.
7 Choose real object systems that are relevant for the tasks.
8 Include more than one object system in the design.
9 Provide the same data to all participants.
10 Limit the amount of time allowed for solving each task.
11 Provide all the details needed to make the experiment replicable.
12 Report results on individual tasks.
13 Include tasks on which the expected result is not always to the advantage of the
tool being evaluated.
14 Take into account the possible wide range of experience level of the participants.
147. Finding a baseline
1. program comprehension
2. design quality assessment
3. system evolution analysis
148. Finding a baseline
1. program comprehension
2. design quality assessment
3. system evolution analysis
149. Finding a baseline
1. program comprehension
2. design quality assessment
3. system evolution analysis
152. Tasks
program comprehension 6
A1 Identity the convention used in the system to organize unit tests.
A2.1& What is the spread of term T in the name of the classes, their attributes and
A2.2 methods?
A3 Evaluate the change impact of class C, in terms of intensity and dispersion.
A4.1 Find the three classes with the highest number of methods.
Find the three classes with the highest average number of lines of code per
A4.2
method.
153. Tasks
program comprehension 6
A1 Identity the convention used in the system to organize unit tests.
A2.1& What is the spread of term T in the name of the classes, their attributes and
A2.2 methods?
A3 Evaluate the change impact of class C, in terms of intensity and dispersion.
A4.1 Find the three classes with the highest number of methods.
Find the three classes with the highest average number of lines of code per
A4.2
method.
B1.1 Identify the package with the highest percentage of god classes.
B1.2 Identify the god class with the largest number of methods.
Identify the dominant (affecting the highest number of classes) class-level
B2.1
design problem.
B2.2 Write an overview of the class-level design problems in the system.
design quality assessment 4
154. Tasks
program comprehension 6
5
A1 Identity the convention used in the system to organize unit tests.
A2.1& What is the spread of term T in the name of the classes, their attributes and
A2.2 methods?
A3 Evaluate the change impact of class C, in terms of intensity and dispersion.
A4.1 Find the three classes with the highest number of methods.
Find the three classes with the highest average number of lines of code per
A4.2
method.
B1.1 Identify the package with the highest percentage of god classes.
B1.2 Identify the god class with the largest number of methods.
Identify the dominant (affecting the highest number of classes) class-level
B2.1
design problem.
B2.2 Write an overview of the class-level design problems in the system.
design quality assessment 4
155. Tasks
quantitative 9
8
A1 Identity the convention used in the system to organize unit tests.
A2.1& What is the spread of term T in the name of the classes, their attributes and
A2.2 methods?
A3 Evaluate the change impact of class C, in terms of intensity and dispersion.
A4.1 Find the three classes with the highest number of methods.
Find the three classes with the highest average number of lines of code per
A4.2
method.
B1.1 Identify the package with the highest percentage of god classes.
B1.2 Identify the god class with the largest number of methods.
Identify the dominant (affecting the highest number of classes) class-level
B2.1
design problem.
B2.2 Write an overview of the class-level design problems in the system.
qualitative 1
157. Main research questions
1
Does the use of CodeCity increase the correctness
of the solutions to program comprehension tasks,
compared to non-visual exploration tools, regardless
of the object system size?
158. Main research questions
1
Does the use of CodeCity increase the correctness
of the solutions to program comprehension tasks,
compared to non-visual exploration tools, regardless
of the object system size?
2
Does the use of CodeCity reduce the time needed to
solve program comprehension tasks, compared to
non-visual exploration tools, regardless of the object
system size?
160. Variables of the experiment
correctness
dependent
completion time
CodeCity
tool Eclipse + Excel
independent medium
object system size large
beginner
experience level advanced
controlled academia
background industry
161. Variables of the experiment
correctness
dependent
completion time
CodeCity
tool Eclipse + Excel
independent medium
object system size large
beginner
experience level advanced
controlled academia
background industry
162. Variables of the experiment
correctness
dependent
completion time
CodeCity
tool Eclipse + Excel
independent medium
object system size large
beginner
experience level advanced
controlled academia
background industry
163. Variables of the experiment
correctness
dependent FindBugs
completion time 1,320 classes
93,310 LOC
CodeCity
tool Eclipse + Excel
independent medium
object system size large
beginner
experience level advanced Azureus
controlled academia 4,656 classes
background industry 454,387 LOC
164. Variables of the experiment
correctness
dependent
completion time
CodeCity
tool Eclipse + Excel
independent medium
object system size large
beginner
experience level advanced
controlled academia
background industry
165. Variables of the experiment
correctness
dependent
completion time
CodeCity
tool Eclipse + Excel
independent medium
object system size large
beginner
experience level advanced
controlled academia
background industry
167. The experiment’s design
between-subjects
randomized-block
CodeCity
T1 large
Tool
T2 medium
Size
Ecl+Excl
T3 large
T4 medium
168. The experiment’s design
background academia industry
experience beginner advanced beginner advanced
B1 B2 B3 B4
between-subjects
randomized-block
CodeCity
T1 large
Tool
T2 medium
Size
Ecl+Excl
T3 large
T4 medium
169. The experiment’s design
background academia industry
experience beginner advanced beginner advanced
B1 B2 B3 B4
between-subjects
randomized-block
CodeCity
T1 large
Tool
T2 medium
Size
Ecl+Excl
T3 large
T4 medium
173. Experimental runs
day 1
time
training session
(1 hour)
e1
experiment session
(2 hours)
c1
174. Experimental runs
day 1 day 2
time
training session
(1 hour)
e1 e2
experiment session
(2 hours)
c1 c2
175. Experimental runs
day 1 day 2 day 3
time
training session
(1 hour)
e1 e2 e3
experiment session
(2 hours)
c1 c2
176. Experimental runs
day 1 day 2 day 3 day 4
time
training session
(1 hour)
e1 e2 e3
experiment session
(2 hours)
c1 c2 c4
177. Testing the waters
2009
November December
18 24 25 2 9
Lugano
1 3 1
1 1 1 1
178. Timeline of the experiment
2009 2010
November December January February ... April
18 24 25 2 9 21 28 5 8 14 28 18 22 24 25 14
Lugano
1 3 1 1 1 1
1 1 1 1 3
Bologna
2 1 6
1 1 1 1
Antwerp
5
6
Bern
4 1
6
179. Timeline of the experiment
2009 2010
November December January February ... April
18 24 25 2 9 21 28 5 8 14 28 18 22 24 25 14
Lugano
1 3 1 1 1 1
1 1 1 1 3
remote
sessions
Bologna
2 1 6
1 1 1 1
Antwerp
5
6
remote
session
Bern
4 1
6
180. Treatments and subjects
academia industry
beginner advanced advanced
large 2 2 6 10
CodeCity
medium 3 2 7 12
large 2 3 3 8
Ecl+Excl
medium 2 5 4 11
9 12 20 41
187. Assessing correctness
1 T2: Findbugs, analyzed with CodeCity A3: Impact Analysis B1.2
A1 Multiple locations. The god class containing the largest number of methods in the system is
There are 40/41 [0.5pts] classes class MainFrame [0.8pts]
Dispersed. [1pt] defined in the following 3 packages [1/6pts for each]: defined in package edu.umd.cs.findbugs.gui2 [0.1pts]
which contains 119 [0.1pts] methods.
• edu.umd.cs.findbugs
A2.1
• edu.umd.cs.findbugs.bcel B2.1
Localized [0.5pts]
in package edu.umd.cs.findbugs.detect [0.5pts]. • edu.umd.cs.findbugs.detect The dominant class-level design problem is
DataClass [0.5pts]
A2.2 A4.1 which affects a number of 67 [0.5pts] classes.
Dispersed The 3 classes with the highest number of methods are [ 1 pts each correctly placed and 1 pts each misplaced]:
3 6
in the following (max. 5) packages [0.2pts for each]: 1. class AbstractFrameModelingVisitor
• edu.umd.cs.findbugs defined in package edu.umd.cs.findbugs.ba
contains 195 methods;
• edu.umd.cs.findbugs.anttask
2. class MainFrame
• edu.umd.cs.findbugs.ba defined in package edu.umd.cs.findbugs.gui2
contains 119 methods;
• edu.umd.cs.findbugs.ba.deref
3. class BugInstance
• edu.umd.cs.findbugs.ba.jsr305 defined in package edu.umd.cs.findbugs
• edu.umd.cs.findbugs.ba.npe contains 118 methods
or
• edu.umd.cs.findbugs.ba.vna class TypeFrameModelingVisitor
defined in package edu.umd.cs.findbugs.ba.type
• edu.umd.cs.findbugs.bcel contains 118 methods.
• edu.umd.cs.findbugs.classfile
A4.2
• edu.umd.cs.findbugs.classfile.analysis
The 3 classes with the highest average number of lines of code per method are [ 1 pts each correctly placed and 1 pts each
• edu.umd.cs.findbugs.classfile.engine 3 6
misplaced]:
• edu.umd.cs.findbugs.classfile.impl
1. class DefaultNullnessAnnotations
• edu.umd.cs.findbugs.cloud defined in package edu.umd.cs.findbugs.ba
has an average of 124 lines of code per method;
• edu.umd.cs.findbugs.cloud.db
2. class DBCloud.PopulateBugs
• edu.umd.cs.findbugs.detect defined in package edu.umd.cs.findbugs.cloud.db
has an average of 114.5 lines of code per method;
• edu.umd.cs.findbugs.gui
3. class BytecodeScanner
• edu.umd.cs.findbugs.gui2
defined in package edu.umd.cs.findbugs.ba
• edu.umd.cs.findbugs.jaif has an average of 80.75 lines of code per method.
• edu.umd.cs.findbugs.model B1.1
• edu.umd.cs.findbugs.visitclass
oracles
The package with the highest percentage of god classes in the system is
• edu.umd.cs.findbugs.workflow edu.umd.cs.findbugs.ba.deref [0.8pts]
which contains 1 [0.1pts] god classes
out of a total of 3 [0.1pts] classes.
188. Assessing correctness
blinding 1 T2: Findbugs, analyzed with CodeCity A3: Impact Analysis B1.2
A1 Multiple locations. The god class containing the largest number of methods in the system is
There are 40/41 [0.5pts] classes class MainFrame [0.8pts]
Dispersed. [1pt] defined in the following 3 packages [1/6pts for each]: defined in package edu.umd.cs.findbugs.gui2 [0.1pts]
which contains 119 [0.1pts] methods.
• edu.umd.cs.findbugs
A2.1
• edu.umd.cs.findbugs.bcel B2.1
Localized [0.5pts]
in package edu.umd.cs.findbugs.detect [0.5pts]. • edu.umd.cs.findbugs.detect The dominant class-level design problem is
DataClass [0.5pts]
A2.2 A4.1 which affects a number of 67 [0.5pts] classes.
Dispersed The 3 classes with the highest number of methods are [ 1 pts each correctly placed and 1 pts each misplaced]:
3 6
in the following (max. 5) packages [0.2pts for each]: 1. class AbstractFrameModelingVisitor
• edu.umd.cs.findbugs defined in package edu.umd.cs.findbugs.ba
contains 195 methods;
• edu.umd.cs.findbugs.anttask
2. class MainFrame
• edu.umd.cs.findbugs.ba defined in package edu.umd.cs.findbugs.gui2
contains 119 methods;
• edu.umd.cs.findbugs.ba.deref
3. class BugInstance
• edu.umd.cs.findbugs.ba.jsr305 defined in package edu.umd.cs.findbugs
• edu.umd.cs.findbugs.ba.npe contains 118 methods
or
• edu.umd.cs.findbugs.ba.vna class TypeFrameModelingVisitor
defined in package edu.umd.cs.findbugs.ba.type
• edu.umd.cs.findbugs.bcel contains 118 methods.
• edu.umd.cs.findbugs.classfile
A4.2
• edu.umd.cs.findbugs.classfile.analysis
The 3 classes with the highest average number of lines of code per method are [ 1 pts each correctly placed and 1 pts each
• edu.umd.cs.findbugs.classfile.engine 3 6
misplaced]:
• edu.umd.cs.findbugs.classfile.impl
1. class DefaultNullnessAnnotations
• edu.umd.cs.findbugs.cloud defined in package edu.umd.cs.findbugs.ba
has an average of 124 lines of code per method;
• edu.umd.cs.findbugs.cloud.db
2. class DBCloud.PopulateBugs
• edu.umd.cs.findbugs.detect defined in package edu.umd.cs.findbugs.cloud.db
has an average of 114.5 lines of code per method;
• edu.umd.cs.findbugs.gui
3. class BytecodeScanner
• edu.umd.cs.findbugs.gui2
defined in package edu.umd.cs.findbugs.ba
• edu.umd.cs.findbugs.jaif has an average of 80.75 lines of code per method.
• edu.umd.cs.findbugs.model B1.1
• edu.umd.cs.findbugs.visitclass
oracles
The package with the highest percentage of god classes in the system is
• edu.umd.cs.findbugs.workflow edu.umd.cs.findbugs.ba.deref [0.8pts]
which contains 1 [0.1pts] god classes
out of a total of 3 [0.1pts] classes.
190. Statistical test
two-way analysis of variance (ANOVA)
95% confidence interval
191. Correctness
Ecl+Excl
CodeCity
Does the use of CodeCity increase the 8
correctness of the solutions to program
comprehension tasks, compared to non- 7
visual exploration tools, regardless of the 6
object system size?
5
4
3
2
1
0
medium large
192. Correctness
Ecl+Excl
CodeCity
Does the use of CodeCity increase the 8
correctness of the solutions to program
comprehension tasks, compared to non- 7
visual exploration tools, regardless of the 6
object system size?
5
24.26%
4
3
2
more correct with CodeCity
1
large effect size (d=0.89)
0
medium large
193. Correctness
Ecl+Excl
CodeCity
Does the use of CodeCity increase the 8
correctness of the solutions to program
comprehension tasks, compared to non- 7
visual exploration tools, regardless of the
object system size?
6
24.26%
5
4
more correct with CodeCity 3
large effect size (d=0.89)
2
medium large
194. Completion time
Ecl+Excl
CodeCity
Does the use of CodeCity reduce the time 60
needed to solve program comprehension
tasks, compared to non-visual exploration 50
tools, regardless of the object system size?
40
30
20
10
0
medium large
195. Completion time
Ecl+Excl
CodeCity
Does the use of CodeCity reduce the time 60
needed to solve program comprehension
tasks, compared to non-visual exploration 50
tools, regardless of the object system size?
40
12.01%
30
20
less time with CodeCity 10
moderate effect size (d=0.63)
0
medium large
196. Completion time
Ecl+Excl
CodeCity
Does the use of CodeCity reduce the time 60
needed to solve program comprehension
tasks, compared to non-visual exploration
tools, regardless of the object system size?
50
12.01%
40
30
less time with CodeCity
moderate effect size (d=0.63)
20
medium large
197. after the first round
CodeCity
vs
Ecl+Excl
+24% correctness
-12% completion time