Understanding software systems is hampered by their sheer size and complexity. Software visualization encodes the data found in these systems into pictures and enables the human eye to interpret it. In this lecture we present the concepts of software visualization and we show several examples of how visualizations can help in understanding software systems.
17. Examples of size metrics
NOM - number of methods
NOA - number of attributes
LOC - number of lines of code
NOS - number of statements
NOC - number of children
Lorentz, Kidd, 1994
Chidamber, 1994
22. Detection Strategies are metric-based queries to
detect design flaws. Lanza, Marinescu 2006
Rule 1
METRIC 1 > Threshold 1
AND Quality problem
Rule 2
METRIC 2 < Threshold 2
23. Example: a God Class centralizes too much
intelligence in the system. Lanza, Marinescu 2006
Class uses directly more than a
few attributes of other classes
ATFD > FEW
Functional complexity of the
class is very high
AND GodClass
WMC ! VERY HIGH
Class cohesion is low
TCC < ONE THIRD
24. McCabe = 21
NOM 0
= 102
3 ,00
75
=
C
LO
Metrics Queries Visualizations ...
{ {
{ {
}
}
}
} { }
25. McCabe = 21
NOM 0
= 102
3 ,00
75
=
C
LO
Metrics Queries Visualizations ...
{ {
{ {
}
}
}
} { }
71. What happens with inheritance?
A A A A A
B C B C B C B B
D D D E
ver .1 ver. 2 ver. 3 ver. 4 ver. 5
72. History contains too much data.
A A A A A A A A A A A A A A A A A A A A
B C B C B C B B B C B C B C B B B C B C B C B B B C B C B C B B
D D D E D D D E D D D E D D D E
ver .1 ver. 2 ver. 3 ver. 4 ver. 5 ver .1 ver. 2 ver. 3 ver. 4 ver. 5 ver .1 ver. 2 ver. 3 ver. 4 ver. 5 ver .1 ver. 2 ver. 3 ver. 4 ver. 5
A A A A A A A A A A A A A A A A A A A A
B C B C B C B B B C B C B C B B B C B C B C B B B C B C B C B B
D D D E D D D E D D D E D D D E
ver .1 ver. 2 ver. 3 ver. 4 ver. 5 ver .1 ver. 2 ver. 3 ver. 4 ver. 5 ver .1 ver. 2 ver. 3 ver. 4 ver. 5 ver .1 ver. 2 ver. 3 ver. 4 ver. 5
A A A A A A A A A A A A A A A A A A A A
B C B C B C B B B C B C B C B B B C B C B C B B B C B C B C B B
D D D E D D D E D D D E D D D E
ver .1 ver. 2 ver. 3 ver. 4 ver. 5 ver .1 ver. 2 ver. 3 ver. 4 ver. 5 ver .1 ver. 2 ver. 3 ver. 4 ver. 5 ver .1 ver. 2 ver. 3 ver. 4 ver. 5
A A A A A A A A A A A A A A A A A A A A
B C B C B C B B B C B C B C B B B C B C B C B B B C B C B C B B
D D D E D D D E D D D E D D D E
ver .1 ver. 2 ver. 3 ver. 4 ver. 5 ver .1 ver. 2 ver. 3 ver. 4 ver. 5 ver .1 ver. 2 ver. 3 ver. 4 ver. 5 ver .1 ver. 2 ver. 3 ver. 4 ver. 5
73. A A A A A
B C B C B C B B
D D D E
ver .1 ver. 2 ver. 3 ver. 4 ver. 5
A is persistent, B is stable, C was removed, E is newborn ...
74. Hierarchy Evolution encapsulates time.
Girba etal, 2005
A
changed
methods
changed
age
lines
C B
Removed
Removed
D E
A is persistent, B is stable, C was removed, E is newborn ...