Visual Exploration of Large-Scale System Evolution

7,749 views

Published on

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

Published in: Technology, News & Politics
1 Comment
4 Likes
Statistics
Notes
  • 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
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
7,749
On SlideShare
0
From Embeds
0
Number of Embeds
4,008
Actions
Shares
0
Downloads
138
Comments
1
Likes
4
Embeds 0
No embeds

No notes for slide

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/

×