Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
Visual Exploration of Large-Scale

 System Evolution
       Richard Wettel and Michele Lanza
         REVEAL group, Facult...
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            ...
The city metaphor
   domain mapping

   class              building

   package            district

   system            ...
The city metaphor
   domain mapping

   class              building

   package            district

   system            ...
The city metaphor
   domain mapping

   class              building

   package            district

   system            ...
The city metaphor
   domain mapping

   class              building

   package            district

   system            ...
The city metaphor
   domain mapping

   class              building

   package            district

   system            ...
The city metaphor
   domain mapping

   class              building

   package            district

   system            ...
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   ...
Decoding a city: ArgoUML
                 skyscrapers
                  (NOM, NOA)




parking lots
 (NOM, NOA)
Richard We...
Decoding a city: ArgoUML
                 skyscrapers
                  (NOM, NOA)




                                   ...
Code cities




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




Code cities
                                                                         ...
System     Language NOP NOC kLOC




Code cities
                                                                         ...
Software in time...
Numbers on the history data
          System                   ArgoUML              JHotDraw                     Jmol

   ...
Evolution of a code city: ArgoUML




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




Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolutio...
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 Expl...
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...
Principle of age map


 Glimpse in the past
        entities colored according to age


         N                        ...
Principle of age map


 Glimpse in the past
        entities colored according to age


         N                        ...
Principle of age map


 Glimpse in the past
        entities colored according to age


         N                        ...
Coarse-grained age map: ArgoUML




Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System Evolution ...
Coarse-grained age map: ArgoUML
org.argouml.language. java.generator

JavaTokenTypes     JavaRecognizer
146 attributes    ...
Coarse-grained age map: ArgoUML
org.argouml.language. java.generator

JavaTokenTypes       JavaRecognizer
146 attributes  ...
Refining the granularity

   class C
                            NOM = 7
                         2
                       ...
Refining the granularity

   class C
                            NOM = 7
                         2
                       ...
Refining the granularity
                                                                                           new

  ...
Fine-grained age map: JHotDraw
                                                                CH.ifa.draw.framework
   cl...
Buildings in age maps

   age: 1            2 3 4 5 6 7 8




Richard Wettel and Michele Lanza   Visual Exploration of Lar...
Buildings in age maps

   age: 1            2 3 4 5 6 7 8

      stable




     very old

Richard Wettel and Michele Lanz...
Buildings in age maps

   age: 1            2 3 4 5 6 7 8

      stable




                              rarely updated

...
Buildings in age maps

   age: 1            2 3 4 5 6 7 8

      stable
                                                  ...
Buildings in age maps
                                                                                       updated often...
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  ...
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  ...
Travelling through ArgoUML’s time
                                             ModelFacade
                               ...
Travelling through ArgoUML’s time
                                               ModelFacade
                             ...
Travelling through ArgoUML’s time
                                                        NSUMLModelFacade                ...
Travelling through ArgoUML’s time
                                                        NSUMLModelFacade                ...
Travelling through ArgoUML’s time
                                                                                        ...
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  ...
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  ...
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 NS...
Example of system getting old




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




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




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




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




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




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




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




   JHotDraw
Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System ...
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 ...
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 principles

 History of class C




Richard Wettel and Michele Lanza   Visual Exploration of Large-Scale System E...
Timeline principles

 History of class C


                m5


                                   m3
                    ...
Timeline principles

 History of class C
                                                       m12
                      ...
Timeline principles

 History of class C
                                                       m12
                      ...
Timeline principles
                                                                         m18



 History of class C   ...
Timeline principles
                                                                         m18



 History of class C   ...
Code decays...

StandardDrawingView                Eval                                      GeneratorJava
(JHotDraw)     ...
Color anomalies reveal restores
                                    Graphics3D



                                        ...
Color anomalies reveal restores
                                    Graphics3D



 Contemporary                           ...
Color anomalies reveal restores
                                    Graphics3D



 Contemporary                           ...
Similar pattern in Jmol timelines
                                         Viewer



TransformManager




   JmolViewer

 ...
Similar pattern in Jmol timelines
                                         Viewer



TransformManager




   JmolViewer

 ...
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 som...
Reality check no. 3
 Subversion logs:
 r5091: “No more javax.vecmath.Point3f in g3d shape drawing routines. There were som...
Reality check no. 3
 Subversion logs:
 r5091: “No more javax.vecmath.Point3f in g3d shape drawing routines. There were som...
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 ...
Closing remarks




   Our visualizations techniques for software
   evolution reveal insights unavailable outside
   the ...
Richard Wettel
http://www.inf.unisi.ch/phd/wettel




 http://creativecommons.org/licenses/by/3.0/
Nächste SlideShare
Wird geladen in …5
×

Visual Exploration of Large-Scale System Evolution

9.654 Aufrufe

Veröffentlicht am

On visualization of software evolution using a 3D city metaphor. Presented at WCRE 2008 (Antwerp, Belgium), October, 2008.

Veröffentlicht in: Technologie, News & Politik
  • free download here Create DOWNLOAD for free ebook ===grantdevelopers.clubB01E7I3I8G-La-nuova-fabbrica-dei-sogni-La-cultura-Vol-998-srchttpsimageseusslimagesamazoncomimagesI51JfLhTXPkLSL218PIsitbstickerarrowdpTopRight1218SH30OU29ACUS218jpg-.html
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download Full EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download Full doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THIS can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THIS is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THIS Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THIS the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THIS Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • Deat Richard Wettle,

    congratulations for this great presentation.

    In 1995, as the director of the European Softwre Institute (ESI), I wanted a youg software engineer (Boris Groth) to find such solution, because I was convinced that such visualisation is needed also for argueing the complexity of software versus decision makers.

    Does there exist any metrics which allows to 'compare' software cnstructs to the structural complexity of buildings / urban constructs?

    Kind regards

    guenter.koch@chello.at
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier

Visual Exploration of Large-Scale System Evolution

  1. 1. Visual Exploration of Large-Scale System Evolution Richard Wettel and Michele Lanza REVEAL group, Faculty of Informatics University of Lugano, Switzerland
  2. 2. Photo: SkyShaper (Flickr) Software systems as cities
  3. 3. The city metaphor Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 3
  4. 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. 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. 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. 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. 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. 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. 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. 11. Decoding a city: ArgoUML Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 4
  12. 12. Decoding a city: ArgoUML skyscrapers (NOM, NOA) Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 4
  13. 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. 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. 15. Code cities Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 5
  16. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  29. 29. Software in time...
  30. 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. 31. Evolution of a code city: ArgoUML Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 8
  32. 32. Evolution of a code city: ArgoUML Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 8
  33. 33. Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 9
  34. 34. 1. Age map Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 9
  35. 35. 1. Age map 2. Time travel Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 9
  36. 36. 1. Age map 2. Time travel 3. Timeline Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 9
  37. 37. Age map
  38. 38. Principle of age map Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 11
  39. 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. 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. 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. 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. 43. Coarse-grained age map: ArgoUML Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 12
  44. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  55. 55. Time travel
  56. 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. 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. 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. 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. 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. 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. 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. 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. 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. 65. Reality check no. 1 Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 18
  66. 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. 67. Example of system getting old JHotDraw Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 19
  68. 68. Example of system getting old JHotDraw Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 19
  69. 69. Example of system getting old JHotDraw Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 19
  70. 70. Example of system getting old JHotDraw Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 19
  71. 71. Example of system getting old JHotDraw Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 19
  72. 72. Example of system getting old JHotDraw Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 19
  73. 73. Example of system getting old JHotDraw Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 19
  74. 74. Example of system getting old JHotDraw Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 19
  75. 75. Reality check no. 2 Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 20
  76. 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. 77. Story of Jmol’s evolution Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 21
  78. 78. 1887 Sep. 1887 Dec. 1888 Mar. 1888 Jun. 1888 Sep. 1888 Dec. 1889 Mar. Timeline
  79. 79. Timeline principles History of class C Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 23
  80. 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. 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. 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. 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. 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. 85. Code decays... StandardDrawingView Eval GeneratorJava (JHotDraw) (Jmol) (ArgoUML) Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 24
  86. 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. 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. 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. 89. Similar pattern in Jmol timelines Viewer TransformManager JmolViewer Eval Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 26
  90. 90. Similar pattern in Jmol timelines Viewer TransformManager JmolViewer Eval Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 26
  91. 91. Reality check no. 3 Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 27
  92. 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. 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. 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. 95. Closing remarks Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 28
  96. 96. Closing remarks Richard Wettel and Michele Lanza Visual Exploration of Large-Scale System Evolution 28
  97. 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. 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
  99. 99. Richard Wettel http://www.inf.unisi.ch/phd/wettel http://creativecommons.org/licenses/by/3.0/

×