Gen AI in Business - Global Trends Report 2024.pdf
Visual Exploration of Large-Scale System Evolution
1. Visual Exploration of Large-Scale
System Evolution
Richard Wettel and Michele Lanza
REVEAL group, Faculty of Informatics
University of Lugano, Switzerland
3. The city metaphor
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 3
4. The city metaphor
domain mapping
class building
package district
system city
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 3
5. The city metaphor
domain mapping
class building
package district
system city
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 3
6. The city metaphor
domain mapping
class building
package district
system city
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 3
7. The city metaphor
domain mapping
class building
package district
system city
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 3
8. The city metaphor
domain mapping
class building
package district
system city
number of methods (NOM) height
number of attributes (NOA) base size
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 3
9. The city metaphor
domain mapping
class building
package district
system city
nesting level color
number of methods (NOM) height
number of attributes (NOA) base size
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 3
10. The city metaphor
domain mapping
class building
package district
system city
nesting level color
number of methods (NOM) height
number of attributes (NOA) base size [Wettel & Lanza, ICPC 2007]
[Wettel & Lanza, VISSOFT 2007]
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 3
11. Decoding a city: ArgoUML
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 4
12. Decoding a city: ArgoUML
skyscrapers
(NOM, NOA)
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 4
13. Decoding a city: ArgoUML
skyscrapers
(NOM, NOA)
parking lots
(NOM, NOA)
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 4
14. Decoding a city: ArgoUML
skyscrapers
(NOM, NOA)
office buildings
parking lots
(NOM, NOA)
(NOM, NOA)
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 4
38. Principle of age map
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 11
39. Principle of age map
Glimpse in the past
entities colored according to age
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 11
40. Principle of age map
Glimpse in the past
entities colored according to age
N 1
veteran new-born
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 11
41. Principle of age map
Glimpse in the past
entities colored according to age
N 1
veteran new-born
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 11
42. Principle of age map
Glimpse in the past
entities colored according to age
N 1
veteran new-born
age (number of survived versions)
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 11
43. Coarse-grained age map: ArgoUML
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 12
44. Coarse-grained age map: ArgoUML
org.argouml.language. java.generator
JavaTokenTypes JavaRecognizer
146 attributes 24 attributes
0 methods 91 methods
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 12
45. Coarse-grained age map: ArgoUML
org.argouml.language. java.generator
JavaTokenTypes JavaRecognizer
146 attributes 24 attributes
0 methods 91 methods
JavaTokenTypes JavaRecognizer
173 attributes 79 attributes
0 methods 176 methods
org.argouml.uml.reveng.java
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 12
46. Refining the granularity
class C
NOM = 7
2
=
NO
A
A=
NO
2
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 13
47. Refining the granularity
class C
NOM = 7
2
=
NO
A
A=
NO
2
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 13
48. Refining the granularity
new
class C
m6
NOM = 7
m5
m7
m2
m1
m3 old
m4
las sC
c
2
=
NO
A
A=
NO
2
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 13
49. Fine-grained age map: JHotDraw
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
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 14
50. Buildings in age maps
age: 1 2 3 4 5 6 7 8
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 15
51. Buildings in age maps
age: 1 2 3 4 5 6 7 8
stable
very old
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 15
52. Buildings in age maps
age: 1 2 3 4 5 6 7 8
stable
rarely updated
very old old
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 15
53. Buildings in age maps
age: 1 2 3 4 5 6 7 8
stable
highly unstable
rarely updated
very old old young
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 15
54. Buildings in age maps
updated often,
age: 1 2 3 4 5 6 7 8
rather unstable
stable
highly unstable
rarely updated
very old old young very old
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 15
56. Travelling through ArgoUML’s time
0.10.1
0.12
0.14
0.16
0.18.1
0.20
0.22
0.23.4
0.24
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 17
57. Travelling through ArgoUML’s time
0.10.1
0.12
0.14
0.16
0.18.1
0.20
0.22
0.23.4
0.24
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 17
58. Travelling through ArgoUML’s time
ModelFacade
NOM: 184, NOA: 60
0.10.1
0.12
0.14
0.16
0.18.1
0.20
0.22
0.23.4
0.24
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 17
59. Travelling through ArgoUML’s time
ModelFacade
NOM: 435, NOA: 108
0.10.1
0.12
0.14
0.16
0.18.1
0.20
0.22
0.23.4
0.24
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 17
60. Travelling through ArgoUML’s time
NSUMLModelFacade Facade
NOM: 319, NOA: 2 NOM: 306, NOA: 1
0.10.1
0.12
0.14
0.16
0.18.1
0.20
0.22
0.23.4
0.24
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 17
61. Travelling through ArgoUML’s time
NSUMLModelFacade Facade
NOM: 334, NOA: 2 NOM: 319, NOA: 1
0.10.1
0.12
0.14 FacadeMDRImpl
0.16 NOM: 329, NOA: 2
0.18.1
0.20
0.22
0.23.4
0.24
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 17
62. Travelling through ArgoUML’s time
Facade
NOM: 329, NOA: 1
0.10.1
0.12
0.14
FacadeMDRImpl
0.16 NOM: 340, NOA: 3
0.18.1
0.20
0.22
0.23.4
0.24
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 17
63. Travelling through ArgoUML’s time
0.10.1
0.12
0.14
0.16
0.18.1
0.20
0.22
0.23.4
0.24
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 17
64. Travelling through ArgoUML’s time
0.10.1
0.12
0.14
0.16
0.18.1
0.20
0.22
0.23.4
0.24
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 17
65. Reality check no. 1
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 18
66. Reality check no. 1
L.T., main developer of ArgoUML:
“ModelFacade was an implementation of the model subsystem
using NSUML repository. When the change was made to MDR
we turned this to a regular interface allowing for several
different repositories.”
“The attributes in the ModelFacade are not attributes but
constant tokens used in the NSUML repository
implementation.”
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 18
67. Example of system getting old
JHotDraw
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 19
68. Example of system getting old
JHotDraw
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 19
69. Example of system getting old
JHotDraw
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 19
70. Example of system getting old
JHotDraw
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 19
71. Example of system getting old
JHotDraw
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 19
72. Example of system getting old
JHotDraw
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 19
73. Example of system getting old
JHotDraw
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 19
74. Example of system getting old
JHotDraw
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 19
75. Reality check no. 2
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 20
76. Reality check no. 2
W.K., developer of JHotDraw:
“I used a JavaDoc-based code generator to automatically
generate test cases for the JHotDraw. Therefore, the test
methods are still not implemented and only the work to do is
outlined.“
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 20
77. Story of Jmol’s evolution
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 21
78. 1887 Sep. 1887 Dec. 1888 Mar. 1888 Jun. 1888 Sep. 1888 Dec. 1889 Mar.
Timeline
79. Timeline principles
History of class C
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 23
80. Timeline principles
History of class C
m5
m3
on s)
er si
e (v
V1 tim
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 23
81. Timeline principles
History of class C
m12
m8
m5
m3
m3 V2
on s)
er si
e (v
V1 tim
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 23
82. Timeline principles
History of class C
m12
m8
m5
m3
m3 V2
on s)
er si
e (v
V1 tim
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 23
83. Timeline principles
m18
History of class C m12
m12
m8
m5
m3 V3
m3 V2
on s)
er si
e (v
V1 tim
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 23
84. Timeline principles
m18
History of class C m12
m12
m8
m5
m3 V3
m3 V2
on s)
er si
e (v
V1 tim
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 23
85. Code decays...
StandardDrawingView Eval GeneratorJava
(JHotDraw) (Jmol) (ArgoUML)
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 24
86. Color anomalies reveal restores
Graphics3D
applyBlueAnaglyph
disappears after v10
reappears in v18
forcePixel
disappears after v1
reappears in v9
fillTriangle
disappears after v5
reappears in v21
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 25
87. Color anomalies reveal restores
Graphics3D
Contemporary applyBlueAnaglyph
disappears after v10
methods have reappears in v18
the same color.
forcePixel
disappears after v1
reappears in v9
fillTriangle
disappears after v5
reappears in v21
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 25
88. Color anomalies reveal restores
Graphics3D
Contemporary applyBlueAnaglyph
disappears after v10
methods have reappears in v18
the same color.
forcePixel
disappears after v1
reappears in v9
Contemporary
methods are
also neighbors. fillTriangle
disappears after v5
reappears in v21
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 25
89. Similar pattern in Jmol timelines
Viewer
TransformManager
JmolViewer
Eval
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 26
90. Similar pattern in Jmol timelines
Viewer
TransformManager
JmolViewer
Eval
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 26
91. Reality check no. 3
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 27
92. Reality check no. 3
Subversion logs:
r5091: “No more javax.vecmath.Point3f in g3d shape drawing routines. There were some
cases where screen coordinates were being passed in as Point3f objects ... not a good thing.”
r5579: “Revert of vecmathlib change”.
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 27
93. Reality check no. 3
Subversion logs:
r5091: “No more javax.vecmath.Point3f in g3d shape drawing routines. There were some
cases where screen coordinates were being passed in as Point3f objects ... not a good thing.”
r5579: “Revert of vecmathlib change”.
N.V., developer: “Your hypothesis is probably correct. We found some major problems,
and diagnostic was too difficult, so we reverted to a stable version and tried to apply patches
in small batch.”
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 27
94. Reality check no. 3
Subversion logs:
r5091: “No more javax.vecmath.Point3f in g3d shape drawing routines. There were some
cases where screen coordinates were being passed in as Point3f objects ... not a good thing.”
r5579: “Revert of vecmathlib change”.
N.V., developer: “Your hypothesis is probably correct. We found some major problems,
and diagnostic was too difficult, so we reverted to a stable version and tried to apply patches
in small batch.”
B.H., developer: “It was quite a nightmare for everyone involved. The issue was that I
was new to the project and had committed quite a few additions to Jmol thinking that M. was
monitoring; as it turned out he found my additions too much too fast, and because there was
a problem with the graphics display module g3d that resulted in some slow performance, he
opted to revert to an earlier state. In the end it turned out to be a recent addition to
transparency in the graphics, not anything I had done, that caused the problem. In any case,
we did sort of start over -- or at least I did.”
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 27
97. Closing remarks
Our visualizations techniques for software
evolution reveal insights unavailable outside
the historical context.
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 28
98. Closing remarks
Our visualizations techniques for software
evolution reveal insights unavailable outside
the historical context.
http://www.inf.unisi.ch/phd/wettel/codecity.html
Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 28