SlideShare a Scribd company logo
1 of 99
Download to read offline
Visual Exploration of Large-Scale

 System Evolution
       Richard Wettel and Michele Lanza
         REVEAL group, Faculty of Informatics
            University of Lugano, Switzerland
Photo: SkyShaper (Flickr)




Software systems as cities
The city metaphor




Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution   3
The city metaphor
   domain mapping

   class              building

   package            district

   system             city




Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution   3
The city metaphor
   domain mapping

   class              building

   package            district

   system             city




Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution   3
The city metaphor
   domain mapping

   class              building

   package            district

   system             city




Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution   3
The city metaphor
   domain mapping

   class              building

   package            district

   system             city




Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution   3
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
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
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
Decoding a city: ArgoUML




Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution   4
Decoding a city: ArgoUML
                 skyscrapers
                  (NOM, NOA)




Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution   4
Decoding a city: ArgoUML
                 skyscrapers
                  (NOM, NOA)




parking lots
 (NOM, NOA)
Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution   4
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
Code cities




Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution   5
Code cities
                                                  System           Language NOP NOC kLOC
                                                  Azureus          Java                 457 4734    274
                                                  ArgoUML          Java                 144 2542    137
                                                  JHotDraw         Java                  72   998    30
                                                  iText            Java                 149 1250     80
                                                  Jmol             Java                 105 1032     85
                                                  JDK 1.5          Java                 137 4715    160
                                                  Moose            Smalltalk            278   961    32
                                                  Jun              Smalltalk            288 2236    351
                                                  CodeCity         Smalltalk            129   291    18
                                                  ScumVM           C++                   18 1331    105




Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution                 5
Code cities
                                                  System           Language NOP NOC kLOC
                                                  Azureus          Java                 457 4734    274
                                                  ArgoUML          Java                 144 2542    137
                                                  JHotDraw         Java                  72   998    30
                                                  iText            Java                 149 1250     80
                                                  Jmol             Java                 105 1032     85
                                                  JDK 1.5          Java                 137 4715    160
                                                  Moose            Smalltalk            278   961    32
                                                  Jun              Smalltalk            288 2236    351
                                                  CodeCity         Smalltalk            129   291    18
                                                  ScumVM           C++                   18 1331    105




Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution                 5
Code cities
                                                  System           Language NOP NOC kLOC
                                                  Azureus          Java                 457 4734    274
                                                  ArgoUML          Java                 144 2542    137
                                                  JHotDraw         Java                  72   998    30
                                                  iText            Java                 149 1250     80
                                                  Jmol             Java                 105 1032     85
                                                  JDK 1.5          Java                 137 4715    160
                                                  Moose            Smalltalk            278   961    32
                                                  Jun              Smalltalk            288 2236    351
                                                  CodeCity         Smalltalk            129   291    18
                                                  ScumVM           C++                   18 1331    105




Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution                 5
Code cities
                                                  System           Language NOP NOC kLOC
                                                  Azureus          Java                 457 4734    274
                                                  ArgoUML          Java                 144 2542    137
                                                  JHotDraw         Java                  72   998    30
                                                  iText            Java                 149 1250     80
                                                  Jmol             Java                 105 1032     85
                                                  JDK 1.5          Java                 137 4715    160
                                                  Moose            Smalltalk            278   961    32
                                                  Jun              Smalltalk            288 2236    351
                                                  CodeCity         Smalltalk            129   291    18
                                                  ScumVM           C++                   18 1331    105




Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution                 5
Code cities
                                                  System           Language NOP NOC kLOC
                                                  Azureus          Java                 457 4734    274
                                                  ArgoUML          Java                 144 2542    137
                                                  JHotDraw         Java                  72   998    30
                                                  iText            Java                 149 1250     80
                                                  Jmol             Java                 105 1032     85
                                                  JDK 1.5          Java                 137 4715    160
                                                  Moose            Smalltalk            278   961    32
                                                  Jun              Smalltalk            288 2236    351
                                                  CodeCity         Smalltalk            129   291    18
                                                  ScumVM           C++                   18 1331    105




Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution                 5
Code cities
                                                  System           Language NOP NOC kLOC
                                                  Azureus          Java                 457 4734    274
                                                  ArgoUML          Java                 144 2542    137
                                                  JHotDraw         Java                  72   998    30
                                                  iText            Java                 149 1250     80
                                                  Jmol             Java                 105 1032     85
                                                  JDK 1.5          Java                 137 4715    160
                                                  Moose            Smalltalk            278   961    32
                                                  Jun              Smalltalk            288 2236    351
                                                  CodeCity         Smalltalk            129   291    18
                                                  ScumVM           C++                   18 1331    105




Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution                 5
Code cities
                                                  System           Language NOP NOC kLOC
                                                  Azureus          Java                 457 4734    274
                                                  ArgoUML          Java                 144 2542    137
                                                  JHotDraw         Java                  72   998    30
                                                  iText            Java                 149 1250     80
                                                  Jmol             Java                 105 1032     85
                                                  JDK 1.5          Java                 137 4715    160
                                                  Moose            Smalltalk            278   961    32
                                                  Jun              Smalltalk            288 2236    351
                                                  CodeCity         Smalltalk            129   291    18
                                                  ScumVM           C++                   18 1331    105




Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution                 5
Code cities
                                                  System           Language NOP NOC kLOC
                                                  Azureus          Java                 457 4734    274
                                                  ArgoUML          Java                 144 2542    137
                                                  JHotDraw         Java                  72   998    30
                                                  iText            Java                 149 1250     80
                                                  Jmol             Java                 105 1032     85
                                                  JDK 1.5          Java                 137 4715    160
                                                  Moose            Smalltalk            278   961    32
                                                  Jun              Smalltalk            288 2236    351
                                                  CodeCity         Smalltalk            129   291    18
                                                  ScumVM           C++                   18 1331    105




Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution                 5
Code cities
                                                  System           Language NOP NOC kLOC
                                                  Azureus          Java                 457 4734    274
                                                  ArgoUML          Java                 144 2542    137
                                                  JHotDraw         Java                  72   998    30
                                                  iText            Java                 149 1250     80
                                                  Jmol             Java                 105 1032     85
                                                  JDK 1.5          Java                 137 4715    160
                                                  Moose            Smalltalk            278   961    32
                                                  Jun              Smalltalk            288 2236    351
                                                  CodeCity         Smalltalk            129   291    18
                                                  ScumVM           C++                   18 1331    105




Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution                 5
Code cities
                                                  System           Language NOP NOC kLOC
                                                  Azureus          Java                 457 4734    274
                                                  ArgoUML          Java                 144 2542    137
                                                  JHotDraw         Java                  72   998    30
                                                  iText            Java                 149 1250     80
                                                  Jmol             Java                 105 1032     85
                                                  JDK 1.5          Java                 137 4715    160
                                                  Moose            Smalltalk            278   961    32
                                                  Jun              Smalltalk            288 2236    351
                                                  CodeCity         Smalltalk            129   291    18
                                                  ScumVM           C++                   18 1331    105




Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution                 5
Code cities
                                                  System           Language NOP NOC kLOC
                                                  Azureus          Java                 457 4734    274
                                                  ArgoUML          Java                 144 2542    137
                                                  JHotDraw         Java                  72   998    30
                                                  iText            Java                 149 1250     80
                                                  Jmol             Java                 105 1032     85
                                                  JDK 1.5          Java                 137 4715    160
                                                  Moose            Smalltalk            278   961    32
                                                  Jun              Smalltalk            288 2236    351
                                                  CodeCity         Smalltalk            129   291    18
                                                  ScumVM           C++                   18 1331    105




Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution                 5
System     Language NOP NOC kLOC




Code cities
                                                                              Azureus    Java        457 4734    274
                                                                              ArgoUML    Java        144 2542    137
                                                                              JHotDraw   Java         72   998    30
                                                                              iText      Java        149 1250     80
                                                                              Jmol       Java        105 1032     85
                                                                              JDK 1.5    Java        137 4715    160
                                                                              Moose      Smalltalk   278   961    32
                                                                              Jun        Smalltalk   288 2236    351
                                                                              CodeCity   Smalltalk   129   291    18
                                                                              ScumVM     C++          18 1331    105




Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution                                  5
System     Language NOP NOC kLOC




Code cities
                                                                              Azureus    Java        457 4734    274
                                                                              ArgoUML    Java        144 2542    137
                                                                              JHotDraw   Java         72   998    30
                                                                              iText      Java        149 1250     80
                                                                              Jmol       Java        105 1032     85
                                                                              JDK 1.5    Java        137 4715    160
                                                                              Moose      Smalltalk   278   961    32
                                                                              Jun        Smalltalk   288 2236    351
                                                                              CodeCity   Smalltalk   129   291    18
                                                                              ScumVM     C++          18 1331    105




                                              1.25 million LOC
Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution                                  5
Software in time...
Numbers on the history data
          System                   ArgoUML              JHotDraw                     Jmol

          Packages                              144                            72                105

          Classes                             2,542                          998                1,032

          Lines of code                   137,000                        30,000               85,000

          Sampling start                Oct. 2002                    Oct. 2000              Jan. 2000

          Sampling end                 Feb. 2007                     Apr. 2005              Aug. 2007

          Revisions                          15,535                          267                8,065

          Sampling period           release-based       1 week       6 months                8 weeks

          Samples                                  9           57               8                 50

Richard Wettel and Michele Lanza       Visual Exploration of Large-Scale System Evolution               7
Evolution of a code city: ArgoUML




Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution   8
Evolution of a code city: ArgoUML




Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution   8
Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution   9
1. Age map
Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution   9
1. Age map 2. Time travel
Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution   9
1. Age map 2. Time travel                                       3. Timeline
Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution   9
Age map
Principle of age map




Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution   11
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
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
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
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
Coarse-grained age map: ArgoUML




Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution   12
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
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
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
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
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
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
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
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
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
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
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
Time travel
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
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
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
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
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
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
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
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
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
Reality check no. 1




Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution   18
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
Example of system getting old




   JHotDraw
Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution   19
Example of system getting old




   JHotDraw
Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution   19
Example of system getting old




   JHotDraw
Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution   19
Example of system getting old




   JHotDraw
Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution   19
Example of system getting old




   JHotDraw
Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution   19
Example of system getting old




   JHotDraw
Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution   19
Example of system getting old




   JHotDraw
Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution   19
Example of system getting old




   JHotDraw
Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution   19
Reality check no. 2




Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution   20
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
Story of Jmol’s evolution




Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution   21
1887 Sep.   1887 Dec.   1888 Mar.   1888 Jun.   1888 Sep.   1888 Dec.   1889 Mar.




                                                            Timeline
Timeline principles

 History of class C




Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution   23
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
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
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
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
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
Code decays...

StandardDrawingView                Eval                                      GeneratorJava
(JHotDraw)                         (Jmol)                                    (ArgoUML)




Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution        24
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
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
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
Similar pattern in Jmol timelines
                                         Viewer



TransformManager




   JmolViewer

                                                                                         Eval

 Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution          26
Similar pattern in Jmol timelines
                                         Viewer



TransformManager




   JmolViewer

                                                                                         Eval

 Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution          26
Reality check no. 3




Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution   27
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
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
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
Closing remarks




Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution   28
Closing remarks




Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution   28
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
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
Richard Wettel
http://www.inf.unisi.ch/phd/wettel




 http://creativecommons.org/licenses/by/3.0/

More Related Content

What's hot

Captura de pacotes no KernelSpace
Captura de pacotes no KernelSpaceCaptura de pacotes no KernelSpace
Captura de pacotes no KernelSpacePeslPinguim
 
Durgam vahia open_sparc_fpga
Durgam vahia open_sparc_fpgaDurgam vahia open_sparc_fpga
Durgam vahia open_sparc_fpgaObsidian Software
 
M I C R O P R O C E S S O R S A N D I N T E R F A C I N G J N T U M O D E...
M I C R O P R O C E S S O R S  A N D  I N T E R F A C I N G  J N T U  M O D E...M I C R O P R O C E S S O R S  A N D  I N T E R F A C I N G  J N T U  M O D E...
M I C R O P R O C E S S O R S A N D I N T E R F A C I N G J N T U M O D E...guest3f9c6b
 
LOD2 Webinar: The 2nd release of the LOD2 stack
LOD2 Webinar: The 2nd release of the LOD2 stackLOD2 Webinar: The 2nd release of the LOD2 stack
LOD2 Webinar: The 2nd release of the LOD2 stackSemantic Web Company
 
Android Radio Layer Interface
Android Radio Layer InterfaceAndroid Radio Layer Interface
Android Radio Layer InterfaceChun-Yu Wang
 
Log Visualization - Bellua BCS 2006
Log Visualization - Bellua BCS 2006Log Visualization - Bellua BCS 2006
Log Visualization - Bellua BCS 2006Raffael Marty
 

What's hot (6)

Captura de pacotes no KernelSpace
Captura de pacotes no KernelSpaceCaptura de pacotes no KernelSpace
Captura de pacotes no KernelSpace
 
Durgam vahia open_sparc_fpga
Durgam vahia open_sparc_fpgaDurgam vahia open_sparc_fpga
Durgam vahia open_sparc_fpga
 
M I C R O P R O C E S S O R S A N D I N T E R F A C I N G J N T U M O D E...
M I C R O P R O C E S S O R S  A N D  I N T E R F A C I N G  J N T U  M O D E...M I C R O P R O C E S S O R S  A N D  I N T E R F A C I N G  J N T U  M O D E...
M I C R O P R O C E S S O R S A N D I N T E R F A C I N G J N T U M O D E...
 
LOD2 Webinar: The 2nd release of the LOD2 stack
LOD2 Webinar: The 2nd release of the LOD2 stackLOD2 Webinar: The 2nd release of the LOD2 stack
LOD2 Webinar: The 2nd release of the LOD2 stack
 
Android Radio Layer Interface
Android Radio Layer InterfaceAndroid Radio Layer Interface
Android Radio Layer Interface
 
Log Visualization - Bellua BCS 2006
Log Visualization - Bellua BCS 2006Log Visualization - Bellua BCS 2006
Log Visualization - Bellua BCS 2006
 

Similar to Visual Exploration of Large-Scale System Evolution

EvoSpaces - Multi-dimensional Navigation Spaces for Software Evolution
EvoSpaces - Multi-dimensional Navigation Spaces for Software EvolutionEvoSpaces - Multi-dimensional Navigation Spaces for Software Evolution
EvoSpaces - Multi-dimensional Navigation Spaces for Software EvolutionMichele Lanza
 
The Cloud-natives are RESTless @ JavaOne
The Cloud-natives are RESTless @ JavaOneThe Cloud-natives are RESTless @ JavaOne
The Cloud-natives are RESTless @ JavaOneKonrad Malawski
 
SDVIs and In-Situ Visualization on TACC's Stampede
SDVIs and In-Situ Visualization on TACC's StampedeSDVIs and In-Situ Visualization on TACC's Stampede
SDVIs and In-Situ Visualization on TACC's StampedeIntel® Software
 
Object Oriented Programming-JAVA
Object Oriented Programming-JAVAObject Oriented Programming-JAVA
Object Oriented Programming-JAVAHome
 
Florian adler minute project
Florian adler   minute projectFlorian adler   minute project
Florian adler minute projectDmitry Buzdin
 
DevOps Live Meetup- NetDevOps session with Jay Shah (IEEE Published Paper)
DevOps Live Meetup- NetDevOps session with Jay Shah (IEEE Published Paper)DevOps Live Meetup- NetDevOps session with Jay Shah (IEEE Published Paper)
DevOps Live Meetup- NetDevOps session with Jay Shah (IEEE Published Paper)JAY SHAH
 
SeqWare on the Cloud: Porting a Genome Center's Infrastructure to Amazon Web ...
SeqWare on the Cloud: Porting a Genome Center's Infrastructure to Amazon Web ...SeqWare on the Cloud: Porting a Genome Center's Infrastructure to Amazon Web ...
SeqWare on the Cloud: Porting a Genome Center's Infrastructure to Amazon Web ...nimbusinfo
 
Introduction of IPv6NET in Tridentcom 2014
Introduction of IPv6NET in Tridentcom 2014Introduction of IPv6NET in Tridentcom 2014
Introduction of IPv6NET in Tridentcom 2014Marius Georgescu
 
Powering the Next Generation Services with Java Platform - Spark IT 2010
Powering the Next Generation Services with Java Platform - Spark IT 2010Powering the Next Generation Services with Java Platform - Spark IT 2010
Powering the Next Generation Services with Java Platform - Spark IT 2010Arun Gupta
 
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007Baruch Sadogursky
 
Serverless on OpenStack with Docker Swarm, Mistral, and StackStorm
Serverless on OpenStack with Docker Swarm, Mistral, and StackStormServerless on OpenStack with Docker Swarm, Mistral, and StackStorm
Serverless on OpenStack with Docker Swarm, Mistral, and StackStormDmitri Zimine
 
Javaforum 20110915
Javaforum 20110915Javaforum 20110915
Javaforum 20110915Squeed
 
Java 8 -12: da Oracle a Eclipse. Due anni e una rivoluzione
Java 8 -12: da Oracle a Eclipse. Due anni e una rivoluzioneJava 8 -12: da Oracle a Eclipse. Due anni e una rivoluzione
Java 8 -12: da Oracle a Eclipse. Due anni e una rivoluzioneThinkOpen
 
Cocoa Design Patterns
Cocoa Design PatternsCocoa Design Patterns
Cocoa Design Patternssgleadow
 
A Hitchhiker's Guide to Cloud Native Java EE
A Hitchhiker's Guide to Cloud Native Java EEA Hitchhiker's Guide to Cloud Native Java EE
A Hitchhiker's Guide to Cloud Native Java EEQAware GmbH
 
A Hitchhiker's Guide to Cloud Native Java EE
A Hitchhiker's Guide to Cloud Native Java EEA Hitchhiker's Guide to Cloud Native Java EE
A Hitchhiker's Guide to Cloud Native Java EEMario-Leander Reimer
 
CloudCon2012 Ruo Ando
CloudCon2012 Ruo AndoCloudCon2012 Ruo Ando
CloudCon2012 Ruo AndoRuo Ando
 

Similar to Visual Exploration of Large-Scale System Evolution (20)

EvoSpaces - Multi-dimensional Navigation Spaces for Software Evolution
EvoSpaces - Multi-dimensional Navigation Spaces for Software EvolutionEvoSpaces - Multi-dimensional Navigation Spaces for Software Evolution
EvoSpaces - Multi-dimensional Navigation Spaces for Software Evolution
 
Project by Koushik
Project by KoushikProject by Koushik
Project by Koushik
 
The Cloud-natives are RESTless @ JavaOne
The Cloud-natives are RESTless @ JavaOneThe Cloud-natives are RESTless @ JavaOne
The Cloud-natives are RESTless @ JavaOne
 
SDVIs and In-Situ Visualization on TACC's Stampede
SDVIs and In-Situ Visualization on TACC's StampedeSDVIs and In-Situ Visualization on TACC's Stampede
SDVIs and In-Situ Visualization on TACC's Stampede
 
Object Oriented Programming-JAVA
Object Oriented Programming-JAVAObject Oriented Programming-JAVA
Object Oriented Programming-JAVA
 
Florian adler minute project
Florian adler   minute projectFlorian adler   minute project
Florian adler minute project
 
DevOps Live Meetup- NetDevOps session with Jay Shah (IEEE Published Paper)
DevOps Live Meetup- NetDevOps session with Jay Shah (IEEE Published Paper)DevOps Live Meetup- NetDevOps session with Jay Shah (IEEE Published Paper)
DevOps Live Meetup- NetDevOps session with Jay Shah (IEEE Published Paper)
 
SeqWare on the Cloud: Porting a Genome Center's Infrastructure to Amazon Web ...
SeqWare on the Cloud: Porting a Genome Center's Infrastructure to Amazon Web ...SeqWare on the Cloud: Porting a Genome Center's Infrastructure to Amazon Web ...
SeqWare on the Cloud: Porting a Genome Center's Infrastructure to Amazon Web ...
 
Introduction of IPv6NET in Tridentcom 2014
Introduction of IPv6NET in Tridentcom 2014Introduction of IPv6NET in Tridentcom 2014
Introduction of IPv6NET in Tridentcom 2014
 
Viswateja_Nemani
Viswateja_NemaniViswateja_Nemani
Viswateja_Nemani
 
Powering the Next Generation Services with Java Platform - Spark IT 2010
Powering the Next Generation Services with Java Platform - Spark IT 2010Powering the Next Generation Services with Java Platform - Spark IT 2010
Powering the Next Generation Services with Java Platform - Spark IT 2010
 
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
 
Serverless on OpenStack with Docker Swarm, Mistral, and StackStorm
Serverless on OpenStack with Docker Swarm, Mistral, and StackStormServerless on OpenStack with Docker Swarm, Mistral, and StackStorm
Serverless on OpenStack with Docker Swarm, Mistral, and StackStorm
 
Javaforum 20110915
Javaforum 20110915Javaforum 20110915
Javaforum 20110915
 
Java 8 -12: da Oracle a Eclipse. Due anni e una rivoluzione
Java 8 -12: da Oracle a Eclipse. Due anni e una rivoluzioneJava 8 -12: da Oracle a Eclipse. Due anni e una rivoluzione
Java 8 -12: da Oracle a Eclipse. Due anni e una rivoluzione
 
Cocoa Design Patterns
Cocoa Design PatternsCocoa Design Patterns
Cocoa Design Patterns
 
A Hitchhiker's Guide to Cloud Native Java EE
A Hitchhiker's Guide to Cloud Native Java EEA Hitchhiker's Guide to Cloud Native Java EE
A Hitchhiker's Guide to Cloud Native Java EE
 
A Hitchhiker's Guide to Cloud Native Java EE
A Hitchhiker's Guide to Cloud Native Java EEA Hitchhiker's Guide to Cloud Native Java EE
A Hitchhiker's Guide to Cloud Native Java EE
 
CloudCon2012 Ruo Ando
CloudCon2012 Ruo AndoCloudCon2012 Ruo Ando
CloudCon2012 Ruo Ando
 
Full Resume
Full ResumeFull Resume
Full Resume
 

Recently uploaded

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 

Recently uploaded (20)

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
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
  • 15. Code cities Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 5
  • 16. Code cities System Language NOP NOC kLOC Azureus Java 457 4734 274 ArgoUML Java 144 2542 137 JHotDraw Java 72 998 30 iText Java 149 1250 80 Jmol Java 105 1032 85 JDK 1.5 Java 137 4715 160 Moose Smalltalk 278 961 32 Jun Smalltalk 288 2236 351 CodeCity Smalltalk 129 291 18 ScumVM C++ 18 1331 105 Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 5
  • 17. Code cities System Language NOP NOC kLOC Azureus Java 457 4734 274 ArgoUML Java 144 2542 137 JHotDraw Java 72 998 30 iText Java 149 1250 80 Jmol Java 105 1032 85 JDK 1.5 Java 137 4715 160 Moose Smalltalk 278 961 32 Jun Smalltalk 288 2236 351 CodeCity Smalltalk 129 291 18 ScumVM C++ 18 1331 105 Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 5
  • 18. Code cities System Language NOP NOC kLOC Azureus Java 457 4734 274 ArgoUML Java 144 2542 137 JHotDraw Java 72 998 30 iText Java 149 1250 80 Jmol Java 105 1032 85 JDK 1.5 Java 137 4715 160 Moose Smalltalk 278 961 32 Jun Smalltalk 288 2236 351 CodeCity Smalltalk 129 291 18 ScumVM C++ 18 1331 105 Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 5
  • 19. Code cities System Language NOP NOC kLOC Azureus Java 457 4734 274 ArgoUML Java 144 2542 137 JHotDraw Java 72 998 30 iText Java 149 1250 80 Jmol Java 105 1032 85 JDK 1.5 Java 137 4715 160 Moose Smalltalk 278 961 32 Jun Smalltalk 288 2236 351 CodeCity Smalltalk 129 291 18 ScumVM C++ 18 1331 105 Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 5
  • 20. Code cities System Language NOP NOC kLOC Azureus Java 457 4734 274 ArgoUML Java 144 2542 137 JHotDraw Java 72 998 30 iText Java 149 1250 80 Jmol Java 105 1032 85 JDK 1.5 Java 137 4715 160 Moose Smalltalk 278 961 32 Jun Smalltalk 288 2236 351 CodeCity Smalltalk 129 291 18 ScumVM C++ 18 1331 105 Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 5
  • 21. Code cities System Language NOP NOC kLOC Azureus Java 457 4734 274 ArgoUML Java 144 2542 137 JHotDraw Java 72 998 30 iText Java 149 1250 80 Jmol Java 105 1032 85 JDK 1.5 Java 137 4715 160 Moose Smalltalk 278 961 32 Jun Smalltalk 288 2236 351 CodeCity Smalltalk 129 291 18 ScumVM C++ 18 1331 105 Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 5
  • 22. Code cities System Language NOP NOC kLOC Azureus Java 457 4734 274 ArgoUML Java 144 2542 137 JHotDraw Java 72 998 30 iText Java 149 1250 80 Jmol Java 105 1032 85 JDK 1.5 Java 137 4715 160 Moose Smalltalk 278 961 32 Jun Smalltalk 288 2236 351 CodeCity Smalltalk 129 291 18 ScumVM C++ 18 1331 105 Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 5
  • 23. Code cities System Language NOP NOC kLOC Azureus Java 457 4734 274 ArgoUML Java 144 2542 137 JHotDraw Java 72 998 30 iText Java 149 1250 80 Jmol Java 105 1032 85 JDK 1.5 Java 137 4715 160 Moose Smalltalk 278 961 32 Jun Smalltalk 288 2236 351 CodeCity Smalltalk 129 291 18 ScumVM C++ 18 1331 105 Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 5
  • 24. Code cities System Language NOP NOC kLOC Azureus Java 457 4734 274 ArgoUML Java 144 2542 137 JHotDraw Java 72 998 30 iText Java 149 1250 80 Jmol Java 105 1032 85 JDK 1.5 Java 137 4715 160 Moose Smalltalk 278 961 32 Jun Smalltalk 288 2236 351 CodeCity Smalltalk 129 291 18 ScumVM C++ 18 1331 105 Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 5
  • 25. Code cities System Language NOP NOC kLOC Azureus Java 457 4734 274 ArgoUML Java 144 2542 137 JHotDraw Java 72 998 30 iText Java 149 1250 80 Jmol Java 105 1032 85 JDK 1.5 Java 137 4715 160 Moose Smalltalk 278 961 32 Jun Smalltalk 288 2236 351 CodeCity Smalltalk 129 291 18 ScumVM C++ 18 1331 105 Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 5
  • 26. Code cities System Language NOP NOC kLOC Azureus Java 457 4734 274 ArgoUML Java 144 2542 137 JHotDraw Java 72 998 30 iText Java 149 1250 80 Jmol Java 105 1032 85 JDK 1.5 Java 137 4715 160 Moose Smalltalk 278 961 32 Jun Smalltalk 288 2236 351 CodeCity Smalltalk 129 291 18 ScumVM C++ 18 1331 105 Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 5
  • 27. System Language NOP NOC kLOC Code cities Azureus Java 457 4734 274 ArgoUML Java 144 2542 137 JHotDraw Java 72 998 30 iText Java 149 1250 80 Jmol Java 105 1032 85 JDK 1.5 Java 137 4715 160 Moose Smalltalk 278 961 32 Jun Smalltalk 288 2236 351 CodeCity Smalltalk 129 291 18 ScumVM C++ 18 1331 105 Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 5
  • 28. System Language NOP NOC kLOC Code cities Azureus Java 457 4734 274 ArgoUML Java 144 2542 137 JHotDraw Java 72 998 30 iText Java 149 1250 80 Jmol Java 105 1032 85 JDK 1.5 Java 137 4715 160 Moose Smalltalk 278 961 32 Jun Smalltalk 288 2236 351 CodeCity Smalltalk 129 291 18 ScumVM C++ 18 1331 105 1.25 million LOC Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 5
  • 30. Numbers on the history data System ArgoUML JHotDraw Jmol Packages 144 72 105 Classes 2,542 998 1,032 Lines of code 137,000 30,000 85,000 Sampling start Oct. 2002 Oct. 2000 Jan. 2000 Sampling end Feb. 2007 Apr. 2005 Aug. 2007 Revisions 15,535 267 8,065 Sampling period release-based 1 week 6 months 8 weeks Samples 9 57 8 50 Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 7
  • 31. Evolution of a code city: ArgoUML Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 8
  • 32. Evolution of a code city: ArgoUML Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 8
  • 33. Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 9
  • 34. 1. Age map Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 9
  • 35. 1. Age map 2. Time travel Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 9
  • 36. 1. Age map 2. Time travel 3. Timeline Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 9
  • 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
  • 95. Closing remarks Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 28
  • 96. Closing remarks Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 28
  • 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