13. Goal, Questions, Tracks
‣ Goal: Exploit multi-dimensional navigation spaces to
efficiently visualize evolving software systems
14. Goal, Questions, Tracks
‣ Goal: Exploit multi-dimensional navigation spaces to
efficiently visualize evolving software systems
‣ Questions
1. What is the right metaphor to visualize software systems in 3D?
2. How do we interact with & navigate such an information space?
3. How can our visualizations contribute to and enrich the existing
body of reverse engineering knowledge?
15. Goal, Questions, Tracks
‣ Goal: Exploit multi-dimensional navigation spaces to
efficiently visualize evolving software systems
‣ Questions
1. What is the right metaphor to visualize software systems in 3D?
2. How do we interact with & navigate such an information space?
3. How can our visualizations contribute to and enrich the existing
body of reverse engineering knowledge?
‣ Tracks
1. Software Models
2. Visualization Models
3. Interaction & Navigation Models
‣ Prototyping & Integration
20. 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.”
John Stasko, 1998
21. 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.”
John Stasko, 1998
22. “Software is intangible,
having no physical shape or size.”
Thomas Ball, Stephen Eick
“Software Visualization in the Large”
In Computer, vol. 29, no.4, pp. 33-43, IEEE
Computer Society Press, 1996
23.
24. “Habitability is the characteristic of source code
that enables programmers, coders, bug-fixers,
and people coming to the code later in its life to
understand its construction and intentions and
to change it comfortably and confidently.”
Richard Gabriel
On “Habitability and Piecemeal Growth”; in
“Patterns of Software”
29. The City Metaphor
domain mapping
classes buildings
packages districts
system city
class metric building property
number of methods (NOM) height
number of attributes (NOA) width, length
package metric district property
nesting level color
32. CodeCity @ Work
System Language NOP NOC LOC
Azureus Java 457 4’734 274’000
ArgoUML Java 144 2’542 137’000
JHotDraw Java 72 998 30’000
iText Java 149 1’250 80’000
Jmol Java 105 1’032 85’000
JDK 1.5 Java 137 4’715 160’000
Moose Smalltalk 278 961 32’000
Jun Smalltalk 288 2’236 351’000
CodeCity Smalltalk 129 291 18’000
ScumVM C++ 18 1’331 105’000
33. CodeCity @ Work
System Language NOP NOC LOC
Azureus Java 457 4’734 274’000
ArgoUML Java 144 2’542 137’000
JHotDraw Java 72 998 30’000
iText Java 149 1’250 80’000
Jmol Java 105 1’032 85’000
JDK 1.5 Java 137 4’715 160’000
Moose Smalltalk 278 961 32’000
Jun Smalltalk 288 2’236 351’000
CodeCity Smalltalk 129 291 18’000
ScumVM C++ 18 1’331 105’000
34. CodeCity @ Work
System Language NOP NOC LOC
Azureus Java 457 4’734 274’000
ArgoUML Java 144 2’542 137’000
JHotDraw Java 72 998 30’000
iText Java 149 1’250 80’000
Jmol Java 105 1’032 85’000
JDK 1.5 Java 137 4’715 160’000
Moose Smalltalk 278 961 32’000
Jun Smalltalk 288 2’236 351’000
CodeCity Smalltalk 129 291 18’000
ScumVM C++ 18 1’331 105’000
35. CodeCity @ Work
System Language NOP NOC LOC
Azureus Java 457 4’734 274’000
ArgoUML Java 144 2’542 137’000
JHotDraw Java 72 998 30’000
iText Java 149 1’250 80’000
Jmol Java 105 1’032 85’000
JDK 1.5 Java 137 4’715 160’000
Moose Smalltalk 278 961 32’000
Jun Smalltalk 288 2’236 351’000
CodeCity Smalltalk 129 291 18’000
ScumVM C++ 18 1’331 105’000
36. CodeCity @ Work
System Language NOP NOC LOC
Azureus Java 457 4’734 274’000
ArgoUML Java 144 2’542 137’000
JHotDraw Java 72 998 30’000
iText Java 149 1’250 80’000
Jmol Java 105 1’032 85’000
JDK 1.5 Java 137 4’715 160’000
Moose Smalltalk 278 961 32’000
Jun Smalltalk 288 2’236 351’000
CodeCity Smalltalk 129 291 18’000
ScumVM C++ 18 1’331 105’000
37. CodeCity @ Work
System Language NOP NOC LOC
Azureus Java 457 4’734 274’000
ArgoUML Java 144 2’542 137’000
JHotDraw Java 72 998 30’000
iText Java 149 1’250 80’000
Jmol Java 105 1’032 85’000
JDK 1.5 Java 137 4’715 160’000
Moose Smalltalk 278 961 32’000
Jun Smalltalk 288 2’236 351’000
CodeCity Smalltalk 129 291 18’000
ScumVM C++ 18 1’331 105’000
38. CodeCity @ Work
System Language NOP NOC LOC
Azureus Java 457 4’734 274’000
ArgoUML Java 144 2’542 137’000
JHotDraw Java 72 998 30’000
iText Java 149 1’250 80’000
Jmol Java 105 1’032 85’000
JDK 1.5 Java 137 4’715 160’000
Moose Smalltalk 278 961 32’000
Jun Smalltalk 288 2’236 351’000
CodeCity Smalltalk 129 291 18’000
ScumVM C++ 18 1’331 105’000
39. CodeCity @ Work
System Language NOP NOC LOC
Azureus Java 457 4’734 274’000
ArgoUML Java 144 2’542 137’000
JHotDraw Java 72 998 30’000
iText Java 149 1’250 80’000
Jmol Java 105 1’032 85’000
JDK 1.5 Java 137 4’715 160’000
Moose Smalltalk 278 961 32’000
Jun Smalltalk 288 2’236 351’000
CodeCity Smalltalk 129 291 18’000
ScumVM C++ 18 1’331 105’000
40. CodeCity @ Work
System Language NOP NOC LOC
Azureus Java 457 4’734 274’000
ArgoUML Java 144 2’542 137’000
JHotDraw Java 72 998 30’000
iText Java 149 1’250 80’000
Jmol Java 105 1’032 85’000
JDK 1.5 Java 137 4’715 160’000
Moose Smalltalk 278 961 32’000
Jun Smalltalk 288 2’236 351’000
CodeCity Smalltalk 129 291 18’000
ScumVM C++ 18 1’331 105’000
41. CodeCity @ Work
System Language NOP NOC LOC
Azureus Java 457 4’734 274’000
ArgoUML Java 144 2’542 137’000
JHotDraw Java 72 998 30’000
iText Java 149 1’250 80’000
Jmol Java 105 1’032 85’000
JDK 1.5 Java 137 4’715 160’000
Moose Smalltalk 278 961 32’000
Jun Smalltalk 288 2’236 351’000
CodeCity Smalltalk 129 291 18’000
ScumVM C++ 18 1’331 105’000
42. CodeCity @ Work
System Language NOP NOC LOC
Azureus Java 457 4’734 274’000
ArgoUML Java 144 2’542 137’000
JHotDraw Java 72 998 30’000
iText Java 149 1’250 80’000
Jmol Java 105 1’032 85’000
JDK 1.5 Java 137 4’715 160’000
Moose Smalltalk 278 961 32’000
Jun Smalltalk 288 2’236 351’000
CodeCity Smalltalk 129 291 18’000
ScumVM C++ 18 1’331 105’000
43. CodeCity @ Work System Language NOP NOC LOC
Azureus Java 457 4’734 274’000
ArgoUML Java 144 2’542 137’000
JHotDraw Java 72 998 30’000
iText Java 149 1’250 80’000
Jmol Java 105 1’032 85’000
JDK 1.5 Java 137 4’715 160’000
Moose Smalltalk 278 961 32’000
Jun Smalltalk 288 2’236 351’000
CodeCity Smalltalk 129 291 18’000
ScumVM C++ 18 1’331 105’000
44. The Age Map
CH.ifa.draw.framework
class StandardDrawingView CH.ifa.draw.figures
in CH.ifa.draw.standard.
class DrawApplication
in CH.ifa.draw.application
library packages:
java
javax
junit
org.w3c.dom
CH.ifa.draw.standard
CH.ifa.draw.test
(classes) AllTests