SlideShare ist ein Scribd-Unternehmen logo
1 von 66
EvoSpaces
Multi-dimensional Navigation Spaces
for Software Evolution

Michele Lanza, Harald Gall, Philippe Dugerdil
Contents
Contents
Contents
Contents
Contents
Key Data
People & Money
Project Summary
Project Summary



 Duration         Jan 2006 - Dec 2009


  Budget            ~ 550,000 EUR


 Funding           Hasler Foundation
Project Summary



 Duration         Jan 2006 - Dec 2009


  Budget            ~ 550,000 EUR


 Funding           Hasler Foundation
Project Summary



 Duration         Jan 2006 - Dec 2009


  Budget            ~ 550,000 EUR


 Funding           Hasler Foundation
Goal, Questions, Tracks
Goal, Questions, Tracks

 ‣   Goal: Exploit multi-dimensional navigation spaces to
     efficiently visualize evolving software systems
Goal, Questions, Tracks

 ‣   Goal: Exploit multi-dimensional navigation spaces to
     efficiently visualize evolving software systems
 ‣   Questions
     1. What is the right metaphor to visualize software systems in 3D?
     2. How do we interact with & navigate such an information space?
     3. How can our visualizations contribute to and enrich the existing
        body of reverse engineering knowledge?
Goal, Questions, Tracks

 ‣   Goal: Exploit multi-dimensional navigation spaces to
     efficiently visualize evolving software systems
 ‣   Questions
     1. What is the right metaphor to visualize software systems in 3D?
     2. How do we interact with & navigate such an information space?
     3. How can our visualizations contribute to and enrich the existing
        body of reverse engineering knowledge?

 ‣   Tracks
     1. Software Models
     2. Visualization Models
     3. Interaction & Navigation Models
     ‣   Prototyping & Integration
Project Setup
Project Setup
Project Setup
Approach
Visualizing Software Systems as Cities
Software Visualization
“The use of the crafts of typography,
    graphic design, animation, and
      cinematography with modern
  human-computer interaction and
  computer graphics technology to
          facilitate both the human
 understanding and effective use of
                computer software.”

                  John Stasko, 1998
Software Visualization
“The use of the crafts of typography,
    graphic design, animation, and
      cinematography with modern
  human-computer interaction and
  computer graphics technology to
          facilitate both the human
 understanding and effective use of
                computer software.”

                  John Stasko, 1998
“Software is intangible,
having no physical shape or size.”




                                 Thomas Ball, Stephen Eick

                                 “Software Visualization in the Large”
                                 In Computer, vol. 29, no.4, pp. 33-43, IEEE
                                 Computer Society Press, 1996
“Habitability is the characteristic of source code
  that enables programmers, coders, bug-fixers,
and people coming to the code later in its life to
 understand its construction and intentions and
     to change it comfortably and confidently.”

                                                 Richard Gabriel

                                                 On “Habitability and Piecemeal Growth”; in
                                                 “Patterns of Software”
The City Metaphor
The City Metaphor

domain mapping

classes          buildings


packages         districts


system           city
The City Metaphor

domain mapping

classes          buildings


packages         districts


system           city
The City Metaphor

domain mapping

classes          buildings


packages         districts


system           city
The City Metaphor

domain mapping

classes                buildings


packages               districts


system                 city


class metric                    building property
number of methods (NOM)         height
number of attributes (NOA)      width, length

package metric          district property
nesting level           color
CodeCity (U Lugano)
Azureus               ArgoUML
CodeCity @ Work
CodeCity @ Work

                  System     Language    NOP    NOC    LOC

                  Azureus    Java         457 4’734 274’000
                  ArgoUML Java            144 2’542 137’000
                  JHotDraw Java            72    998    30’000
                  iText      Java         149 1’250     80’000
                  Jmol       Java         105 1’032     85’000
                  JDK 1.5    Java         137 4’715 160’000
                  Moose      Smalltalk    278    961    32’000
                  Jun        Smalltalk    288 2’236 351’000
                  CodeCity   Smalltalk    129    291    18’000
                  ScumVM     C++           18 1’331 105’000
CodeCity @ Work

                  System     Language    NOP    NOC    LOC

                  Azureus    Java         457 4’734 274’000
                  ArgoUML Java            144 2’542 137’000
                  JHotDraw Java            72    998    30’000
                  iText      Java         149 1’250     80’000
                  Jmol       Java         105 1’032     85’000
                  JDK 1.5    Java         137 4’715 160’000
                  Moose      Smalltalk    278    961    32’000
                  Jun        Smalltalk    288 2’236 351’000
                  CodeCity   Smalltalk    129    291    18’000
                  ScumVM     C++           18 1’331 105’000
CodeCity @ Work

                  System     Language    NOP    NOC    LOC

                  Azureus    Java         457 4’734 274’000
                  ArgoUML Java            144 2’542 137’000
                  JHotDraw Java            72    998    30’000
                  iText      Java         149 1’250     80’000
                  Jmol       Java         105 1’032     85’000
                  JDK 1.5    Java         137 4’715 160’000
                  Moose      Smalltalk    278    961    32’000
                  Jun        Smalltalk    288 2’236 351’000
                  CodeCity   Smalltalk    129    291    18’000
                  ScumVM     C++           18 1’331 105’000
CodeCity @ Work

                  System     Language    NOP    NOC    LOC

                  Azureus    Java         457 4’734 274’000
                  ArgoUML Java            144 2’542 137’000
                  JHotDraw Java            72    998    30’000
                  iText      Java         149 1’250     80’000
                  Jmol       Java         105 1’032     85’000
                  JDK 1.5    Java         137 4’715 160’000
                  Moose      Smalltalk    278    961    32’000
                  Jun        Smalltalk    288 2’236 351’000
                  CodeCity   Smalltalk    129    291    18’000
                  ScumVM     C++           18 1’331 105’000
CodeCity @ Work

                  System     Language    NOP    NOC    LOC

                  Azureus    Java         457 4’734 274’000
                  ArgoUML Java            144 2’542 137’000
                  JHotDraw Java            72    998    30’000
                  iText      Java         149 1’250     80’000
                  Jmol       Java         105 1’032     85’000
                  JDK 1.5    Java         137 4’715 160’000
                  Moose      Smalltalk    278    961    32’000
                  Jun        Smalltalk    288 2’236 351’000
                  CodeCity   Smalltalk    129    291    18’000
                  ScumVM     C++           18 1’331 105’000
CodeCity @ Work

                  System     Language    NOP    NOC    LOC

                  Azureus    Java         457 4’734 274’000
                  ArgoUML Java            144 2’542 137’000
                  JHotDraw Java            72    998    30’000
                  iText      Java         149 1’250     80’000
                  Jmol       Java         105 1’032     85’000
                  JDK 1.5    Java         137 4’715 160’000
                  Moose      Smalltalk    278    961    32’000
                  Jun        Smalltalk    288 2’236 351’000
                  CodeCity   Smalltalk    129    291    18’000
                  ScumVM     C++           18 1’331 105’000
CodeCity @ Work

                  System     Language    NOP    NOC    LOC

                  Azureus    Java         457 4’734 274’000
                  ArgoUML Java            144 2’542 137’000
                  JHotDraw Java            72    998    30’000
                  iText      Java         149 1’250     80’000
                  Jmol       Java         105 1’032     85’000
                  JDK 1.5    Java         137 4’715 160’000
                  Moose      Smalltalk    278    961    32’000
                  Jun        Smalltalk    288 2’236 351’000
                  CodeCity   Smalltalk    129    291    18’000
                  ScumVM     C++           18 1’331 105’000
CodeCity @ Work

                  System     Language    NOP    NOC    LOC

                  Azureus    Java         457 4’734 274’000
                  ArgoUML Java            144 2’542 137’000
                  JHotDraw Java            72    998    30’000
                  iText      Java         149 1’250     80’000
                  Jmol       Java         105 1’032     85’000
                  JDK 1.5    Java         137 4’715 160’000
                  Moose      Smalltalk    278    961    32’000
                  Jun        Smalltalk    288 2’236 351’000
                  CodeCity   Smalltalk    129    291    18’000
                  ScumVM     C++           18 1’331 105’000
CodeCity @ Work

                  System     Language    NOP    NOC    LOC

                  Azureus    Java         457 4’734 274’000
                  ArgoUML Java            144 2’542 137’000
                  JHotDraw Java            72    998    30’000
                  iText      Java         149 1’250     80’000
                  Jmol       Java         105 1’032     85’000
                  JDK 1.5    Java         137 4’715 160’000
                  Moose      Smalltalk    278    961    32’000
                  Jun        Smalltalk    288 2’236 351’000
                  CodeCity   Smalltalk    129    291    18’000
                  ScumVM     C++           18 1’331 105’000
CodeCity @ Work

                  System     Language    NOP    NOC    LOC

                  Azureus    Java         457 4’734 274’000
                  ArgoUML Java            144 2’542 137’000
                  JHotDraw Java            72    998    30’000
                  iText      Java         149 1’250     80’000
                  Jmol       Java         105 1’032     85’000
                  JDK 1.5    Java         137 4’715 160’000
                  Moose      Smalltalk    278    961    32’000
                  Jun        Smalltalk    288 2’236 351’000
                  CodeCity   Smalltalk    129    291    18’000
                  ScumVM     C++           18 1’331 105’000
CodeCity @ Work

                  System     Language    NOP    NOC    LOC

                  Azureus    Java         457 4’734 274’000
                  ArgoUML Java            144 2’542 137’000
                  JHotDraw Java            72    998    30’000
                  iText      Java         149 1’250     80’000
                  Jmol       Java         105 1’032     85’000
                  JDK 1.5    Java         137 4’715 160’000
                  Moose      Smalltalk    278    961    32’000
                  Jun        Smalltalk    288 2’236 351’000
                  CodeCity   Smalltalk    129    291    18’000
                  ScumVM     C++           18 1’331 105’000
CodeCity @ Work   System     Language    NOP    NOC    LOC

                  Azureus    Java         457 4’734 274’000
                  ArgoUML Java            144 2’542 137’000
                  JHotDraw Java            72    998    30’000
                  iText      Java         149 1’250     80’000
                  Jmol       Java         105 1’032     85’000
                  JDK 1.5    Java         137 4’715 160’000
                  Moose      Smalltalk    278    961    32’000
                  Jun        Smalltalk    288 2’236 351’000
                  CodeCity   Smalltalk    129    291    18’000
                  ScumVM     C++           18 1’331 105’000
The Age Map
                                                        CH.ifa.draw.framework
class StandardDrawingView   CH.ifa.draw.figures
in CH.ifa.draw.standard.
                                                                                  class DrawApplication
                                                                                  in CH.ifa.draw.application




library packages:
java
javax
junit
org.w3c.dom


          CH.ifa.draw.standard
                                                                                CH.ifa.draw.test




                                   (classes) AllTests
The Time Machine
The Time Machine
Meanwhile in Zurich: CoCoViz!
The Essence? The EvoSpaces Tool (HEG Geneva)
The Essence? The EvoSpaces Tool (HEG Geneva)
The Essence? The EvoSpaces Tool (HEG Geneva)
The Essence? The EvoSpaces Tool (HEG Geneva)
Results
Publications & Tools
Publications & Tools
Publications & Tools

 ‣   Publications
     ‣ 1 book chapter
     ‣ 6 conference papers @
       ICSM, WCRE, Softvis, ICPC,
       INTG, SEKE
     ‣ 4 workshop papers @
       VISSOFT, VISSOFT,
       WASDeTT, FAMOOSr
     ‣ 4 tool demos @ ICSE, ICSE,
       WCRE, WCRE
     ‣ 1 PhD symposium @ ICSE
     ‣ 1 tutorial @ OOPSLA
     ‣ More are coming..
Publications & Tools

 ‣   Publications
     ‣ 1 book chapter
     ‣ 6 conference papers @
       ICSM, WCRE, Softvis, ICPC,
       INTG, SEKE
     ‣ 4 workshop papers @
       VISSOFT, VISSOFT,
       WASDeTT, FAMOOSr
     ‣ 4 tool demos @ ICSE, ICSE,
       WCRE, WCRE
     ‣ 1 PhD symposium @ ICSE
     ‣ 1 tutorial @ OOPSLA
     ‣ More are coming..
Publications & Tools

                                    ‣
 ‣   Publications                       Tools
     ‣ 1 book chapter                   ‣   CoCoViz
     ‣ 6 conference papers @            ‣   CodeCity
       ICSM, WCRE, Softvis, ICPC,
                                        ‣   “The EvoSpaces” tool
       INTG, SEKE
     ‣ 4 workshop papers @
       VISSOFT, VISSOFT,
       WASDeTT, FAMOOSr
     ‣ 4 tool demos @ ICSE, ICSE,
       WCRE, WCRE
     ‣ 1 PhD symposium @ ICSE
     ‣ 1 tutorial @ OOPSLA
     ‣ More are coming..
Publications & Tools

                                    ‣
 ‣   Publications                       Tools
     ‣ 1 book chapter                   ‣   CoCoViz
     ‣ 6 conference papers @            ‣   CodeCity
       ICSM, WCRE, Softvis, ICPC,
                                        ‣   “The EvoSpaces” tool
       INTG, SEKE
     ‣ 4 workshop papers @
       VISSOFT, VISSOFT,
       WASDeTT, FAMOOSr
     ‣ 4 tool demos @ ICSE, ICSE,
       WCRE, WCRE
     ‣ 1 PhD symposium @ ICSE
     ‣ 1 tutorial @ OOPSLA
     ‣ More are coming..
Reflections
Unforeseen Consequences
No Stakeholder
No Stakeholder

     No Stake
No Stakeholder

             No Stake




Total Academic Freedom
Collaboration

mostly conceptual,
  less technical
2 PhDs   1 Programmer
2 PhDs   1 Programmer
Success?

Yes & No
EvoSpaces
Multi-dimensional Navigation Spaces
for Software Evolution

Michele Lanza, Harald Gall, Philippe Dugerdil

Weitere ähnliche Inhalte

Ähnlich wie EvoSpaces - Multi-dimensional Navigation Spaces for Software Evolution

Pylons + Tokyo Cabinet
Pylons + Tokyo CabinetPylons + Tokyo Cabinet
Pylons + Tokyo Cabinet
Ben Cheng
 

Ähnlich wie EvoSpaces - Multi-dimensional Navigation Spaces for Software Evolution (20)

Visual Exploration of Large-Scale System Evolution
Visual Exploration of Large-Scale System EvolutionVisual Exploration of Large-Scale System Evolution
Visual Exploration of Large-Scale System Evolution
 
[CB20] Vulnerabilities of Machine Learning Infrastructure by Sergey Gordeychik
[CB20] Vulnerabilities of Machine Learning Infrastructure by Sergey Gordeychik[CB20] Vulnerabilities of Machine Learning Infrastructure by Sergey Gordeychik
[CB20] Vulnerabilities of Machine Learning Infrastructure by Sergey Gordeychik
 
De Java 8 a Java 17
De Java 8 a Java 17De Java 8 a Java 17
De Java 8 a Java 17
 
Scala Frustrations
Scala FrustrationsScala Frustrations
Scala Frustrations
 
Indexing Present1
Indexing Present1Indexing Present1
Indexing Present1
 
Node azure
Node azureNode azure
Node azure
 
.NET Fest 2019. Łukasz Pyrzyk. Daily Performance Fuckups
.NET Fest 2019. Łukasz Pyrzyk. Daily Performance Fuckups.NET Fest 2019. Łukasz Pyrzyk. Daily Performance Fuckups
.NET Fest 2019. Łukasz Pyrzyk. Daily Performance Fuckups
 
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
 
"Source Code Abstracts Classification Using CNN", Vadim Markovtsev, Lead Soft...
"Source Code Abstracts Classification Using CNN", Vadim Markovtsev, Lead Soft..."Source Code Abstracts Classification Using CNN", Vadim Markovtsev, Lead Soft...
"Source Code Abstracts Classification Using CNN", Vadim Markovtsev, Lead Soft...
 
QCon London.pdf
QCon London.pdfQCon London.pdf
QCon London.pdf
 
Are you ready for cloud-native java JavaCro2019
Are you ready for cloud-native java JavaCro2019Are you ready for cloud-native java JavaCro2019
Are you ready for cloud-native java JavaCro2019
 
Real World Java 9
Real World Java 9Real World Java 9
Real World Java 9
 
Solving channel coding simulation and optimization problems using GPU
Solving channel coding simulation and optimization problems using GPUSolving channel coding simulation and optimization problems using GPU
Solving channel coding simulation and optimization problems using GPU
 
Java/Spring과 Node.js의공존
Java/Spring과 Node.js의공존Java/Spring과 Node.js의공존
Java/Spring과 Node.js의공존
 
De Java 8 a Java 11 y 14
De Java 8 a Java 11 y 14De Java 8 a Java 11 y 14
De Java 8 a Java 11 y 14
 
De Java 8 ate Java 14
De Java 8 ate Java 14De Java 8 ate Java 14
De Java 8 ate Java 14
 
How to lock a Python in a cage? Managing Python environment inside an R project
How to lock a Python in a cage?  Managing Python environment inside an R projectHow to lock a Python in a cage?  Managing Python environment inside an R project
How to lock a Python in a cage? Managing Python environment inside an R project
 
Pylons + Tokyo Cabinet
Pylons + Tokyo CabinetPylons + Tokyo Cabinet
Pylons + Tokyo Cabinet
 
OpenSUSE Conference 2019 - Building GPU aware containers
OpenSUSE Conference 2019 - Building GPU aware containersOpenSUSE Conference 2019 - Building GPU aware containers
OpenSUSE Conference 2019 - Building GPU aware containers
 
Server-Side JavaScript Developement - Node.JS Quick Tour
Server-Side JavaScript Developement - Node.JS Quick TourServer-Side JavaScript Developement - Node.JS Quick Tour
Server-Side JavaScript Developement - Node.JS Quick Tour
 

Kürzlich hochgeladen

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Kürzlich hochgeladen (20)

Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 

EvoSpaces - Multi-dimensional Navigation Spaces for Software Evolution

  • 1. EvoSpaces Multi-dimensional Navigation Spaces for Software Evolution Michele Lanza, Harald Gall, Philippe Dugerdil
  • 9. Project Summary Duration Jan 2006 - Dec 2009 Budget ~ 550,000 EUR Funding Hasler Foundation
  • 10. Project Summary Duration Jan 2006 - Dec 2009 Budget ~ 550,000 EUR Funding Hasler Foundation
  • 11. Project Summary Duration Jan 2006 - Dec 2009 Budget ~ 550,000 EUR Funding Hasler Foundation
  • 13. Goal, Questions, Tracks ‣ Goal: Exploit multi-dimensional navigation spaces to efficiently visualize evolving software systems
  • 14. Goal, Questions, Tracks ‣ Goal: Exploit multi-dimensional navigation spaces to efficiently visualize evolving software systems ‣ Questions 1. What is the right metaphor to visualize software systems in 3D? 2. How do we interact with & navigate such an information space? 3. How can our visualizations contribute to and enrich the existing body of reverse engineering knowledge?
  • 15. Goal, Questions, Tracks ‣ Goal: Exploit multi-dimensional navigation spaces to efficiently visualize evolving software systems ‣ Questions 1. What is the right metaphor to visualize software systems in 3D? 2. How do we interact with & navigate such an information space? 3. How can our visualizations contribute to and enrich the existing body of reverse engineering knowledge? ‣ Tracks 1. Software Models 2. Visualization Models 3. Interaction & Navigation Models ‣ Prototyping & Integration
  • 20. Software Visualization “The use of the crafts of typography, graphic design, animation, and cinematography with modern human-computer interaction and computer graphics technology to facilitate both the human understanding and effective use of computer software.” John Stasko, 1998
  • 21. Software Visualization “The use of the crafts of typography, graphic design, animation, and cinematography with modern human-computer interaction and computer graphics technology to facilitate both the human understanding and effective use of computer software.” John Stasko, 1998
  • 22. “Software is intangible, having no physical shape or size.” Thomas Ball, Stephen Eick “Software Visualization in the Large” In Computer, vol. 29, no.4, pp. 33-43, IEEE Computer Society Press, 1996
  • 23.
  • 24. “Habitability is the characteristic of source code that enables programmers, coders, bug-fixers, and people coming to the code later in its life to understand its construction and intentions and to change it comfortably and confidently.” Richard Gabriel On “Habitability and Piecemeal Growth”; in “Patterns of Software”
  • 26. The City Metaphor domain mapping classes buildings packages districts system city
  • 27. The City Metaphor domain mapping classes buildings packages districts system city
  • 28. The City Metaphor domain mapping classes buildings packages districts system city
  • 29. The City Metaphor domain mapping classes buildings packages districts system city class metric building property number of methods (NOM) height number of attributes (NOA) width, length package metric district property nesting level color
  • 32. CodeCity @ Work System Language NOP NOC LOC Azureus Java 457 4’734 274’000 ArgoUML Java 144 2’542 137’000 JHotDraw Java 72 998 30’000 iText Java 149 1’250 80’000 Jmol Java 105 1’032 85’000 JDK 1.5 Java 137 4’715 160’000 Moose Smalltalk 278 961 32’000 Jun Smalltalk 288 2’236 351’000 CodeCity Smalltalk 129 291 18’000 ScumVM C++ 18 1’331 105’000
  • 33. CodeCity @ Work System Language NOP NOC LOC Azureus Java 457 4’734 274’000 ArgoUML Java 144 2’542 137’000 JHotDraw Java 72 998 30’000 iText Java 149 1’250 80’000 Jmol Java 105 1’032 85’000 JDK 1.5 Java 137 4’715 160’000 Moose Smalltalk 278 961 32’000 Jun Smalltalk 288 2’236 351’000 CodeCity Smalltalk 129 291 18’000 ScumVM C++ 18 1’331 105’000
  • 34. CodeCity @ Work System Language NOP NOC LOC Azureus Java 457 4’734 274’000 ArgoUML Java 144 2’542 137’000 JHotDraw Java 72 998 30’000 iText Java 149 1’250 80’000 Jmol Java 105 1’032 85’000 JDK 1.5 Java 137 4’715 160’000 Moose Smalltalk 278 961 32’000 Jun Smalltalk 288 2’236 351’000 CodeCity Smalltalk 129 291 18’000 ScumVM C++ 18 1’331 105’000
  • 35. CodeCity @ Work System Language NOP NOC LOC Azureus Java 457 4’734 274’000 ArgoUML Java 144 2’542 137’000 JHotDraw Java 72 998 30’000 iText Java 149 1’250 80’000 Jmol Java 105 1’032 85’000 JDK 1.5 Java 137 4’715 160’000 Moose Smalltalk 278 961 32’000 Jun Smalltalk 288 2’236 351’000 CodeCity Smalltalk 129 291 18’000 ScumVM C++ 18 1’331 105’000
  • 36. CodeCity @ Work System Language NOP NOC LOC Azureus Java 457 4’734 274’000 ArgoUML Java 144 2’542 137’000 JHotDraw Java 72 998 30’000 iText Java 149 1’250 80’000 Jmol Java 105 1’032 85’000 JDK 1.5 Java 137 4’715 160’000 Moose Smalltalk 278 961 32’000 Jun Smalltalk 288 2’236 351’000 CodeCity Smalltalk 129 291 18’000 ScumVM C++ 18 1’331 105’000
  • 37. CodeCity @ Work System Language NOP NOC LOC Azureus Java 457 4’734 274’000 ArgoUML Java 144 2’542 137’000 JHotDraw Java 72 998 30’000 iText Java 149 1’250 80’000 Jmol Java 105 1’032 85’000 JDK 1.5 Java 137 4’715 160’000 Moose Smalltalk 278 961 32’000 Jun Smalltalk 288 2’236 351’000 CodeCity Smalltalk 129 291 18’000 ScumVM C++ 18 1’331 105’000
  • 38. CodeCity @ Work System Language NOP NOC LOC Azureus Java 457 4’734 274’000 ArgoUML Java 144 2’542 137’000 JHotDraw Java 72 998 30’000 iText Java 149 1’250 80’000 Jmol Java 105 1’032 85’000 JDK 1.5 Java 137 4’715 160’000 Moose Smalltalk 278 961 32’000 Jun Smalltalk 288 2’236 351’000 CodeCity Smalltalk 129 291 18’000 ScumVM C++ 18 1’331 105’000
  • 39. CodeCity @ Work System Language NOP NOC LOC Azureus Java 457 4’734 274’000 ArgoUML Java 144 2’542 137’000 JHotDraw Java 72 998 30’000 iText Java 149 1’250 80’000 Jmol Java 105 1’032 85’000 JDK 1.5 Java 137 4’715 160’000 Moose Smalltalk 278 961 32’000 Jun Smalltalk 288 2’236 351’000 CodeCity Smalltalk 129 291 18’000 ScumVM C++ 18 1’331 105’000
  • 40. CodeCity @ Work System Language NOP NOC LOC Azureus Java 457 4’734 274’000 ArgoUML Java 144 2’542 137’000 JHotDraw Java 72 998 30’000 iText Java 149 1’250 80’000 Jmol Java 105 1’032 85’000 JDK 1.5 Java 137 4’715 160’000 Moose Smalltalk 278 961 32’000 Jun Smalltalk 288 2’236 351’000 CodeCity Smalltalk 129 291 18’000 ScumVM C++ 18 1’331 105’000
  • 41. CodeCity @ Work System Language NOP NOC LOC Azureus Java 457 4’734 274’000 ArgoUML Java 144 2’542 137’000 JHotDraw Java 72 998 30’000 iText Java 149 1’250 80’000 Jmol Java 105 1’032 85’000 JDK 1.5 Java 137 4’715 160’000 Moose Smalltalk 278 961 32’000 Jun Smalltalk 288 2’236 351’000 CodeCity Smalltalk 129 291 18’000 ScumVM C++ 18 1’331 105’000
  • 42. CodeCity @ Work System Language NOP NOC LOC Azureus Java 457 4’734 274’000 ArgoUML Java 144 2’542 137’000 JHotDraw Java 72 998 30’000 iText Java 149 1’250 80’000 Jmol Java 105 1’032 85’000 JDK 1.5 Java 137 4’715 160’000 Moose Smalltalk 278 961 32’000 Jun Smalltalk 288 2’236 351’000 CodeCity Smalltalk 129 291 18’000 ScumVM C++ 18 1’331 105’000
  • 43. CodeCity @ Work System Language NOP NOC LOC Azureus Java 457 4’734 274’000 ArgoUML Java 144 2’542 137’000 JHotDraw Java 72 998 30’000 iText Java 149 1’250 80’000 Jmol Java 105 1’032 85’000 JDK 1.5 Java 137 4’715 160’000 Moose Smalltalk 278 961 32’000 Jun Smalltalk 288 2’236 351’000 CodeCity Smalltalk 129 291 18’000 ScumVM C++ 18 1’331 105’000
  • 44. The Age Map CH.ifa.draw.framework class StandardDrawingView CH.ifa.draw.figures in CH.ifa.draw.standard. class DrawApplication in CH.ifa.draw.application library packages: java javax junit org.w3c.dom CH.ifa.draw.standard CH.ifa.draw.test (classes) AllTests
  • 48. The Essence? The EvoSpaces Tool (HEG Geneva)
  • 49. The Essence? The EvoSpaces Tool (HEG Geneva)
  • 50. The Essence? The EvoSpaces Tool (HEG Geneva)
  • 51. The Essence? The EvoSpaces Tool (HEG Geneva)
  • 54. Publications & Tools ‣ Publications ‣ 1 book chapter ‣ 6 conference papers @ ICSM, WCRE, Softvis, ICPC, INTG, SEKE ‣ 4 workshop papers @ VISSOFT, VISSOFT, WASDeTT, FAMOOSr ‣ 4 tool demos @ ICSE, ICSE, WCRE, WCRE ‣ 1 PhD symposium @ ICSE ‣ 1 tutorial @ OOPSLA ‣ More are coming..
  • 55. Publications & Tools ‣ Publications ‣ 1 book chapter ‣ 6 conference papers @ ICSM, WCRE, Softvis, ICPC, INTG, SEKE ‣ 4 workshop papers @ VISSOFT, VISSOFT, WASDeTT, FAMOOSr ‣ 4 tool demos @ ICSE, ICSE, WCRE, WCRE ‣ 1 PhD symposium @ ICSE ‣ 1 tutorial @ OOPSLA ‣ More are coming..
  • 56. Publications & Tools ‣ ‣ Publications Tools ‣ 1 book chapter ‣ CoCoViz ‣ 6 conference papers @ ‣ CodeCity ICSM, WCRE, Softvis, ICPC, ‣ “The EvoSpaces” tool INTG, SEKE ‣ 4 workshop papers @ VISSOFT, VISSOFT, WASDeTT, FAMOOSr ‣ 4 tool demos @ ICSE, ICSE, WCRE, WCRE ‣ 1 PhD symposium @ ICSE ‣ 1 tutorial @ OOPSLA ‣ More are coming..
  • 57. Publications & Tools ‣ ‣ Publications Tools ‣ 1 book chapter ‣ CoCoViz ‣ 6 conference papers @ ‣ CodeCity ICSM, WCRE, Softvis, ICPC, ‣ “The EvoSpaces” tool INTG, SEKE ‣ 4 workshop papers @ VISSOFT, VISSOFT, WASDeTT, FAMOOSr ‣ 4 tool demos @ ICSE, ICSE, WCRE, WCRE ‣ 1 PhD symposium @ ICSE ‣ 1 tutorial @ OOPSLA ‣ More are coming..
  • 60. No Stakeholder No Stake
  • 61. No Stakeholder No Stake Total Academic Freedom
  • 63. 2 PhDs 1 Programmer
  • 64. 2 PhDs 1 Programmer
  • 66. EvoSpaces Multi-dimensional Navigation Spaces for Software Evolution Michele Lanza, Harald Gall, Philippe Dugerdil