SlideShare a Scribd company logo
1 of 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

More Related Content

Similar to EvoSpaces - Multi-dimensional Navigation Spaces for Software Evolution

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 EvolutionRichard Wettel
 
[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 GordeychikCODE BLUE
 
Scala Frustrations
Scala FrustrationsScala Frustrations
Scala Frustrationstakezoe
 
.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 FuckupsNETFest
 
Java 8 -12: da Oracle a Eclipse. Due anni e una rivoluzione
Java 8 -12: da Oracle a Eclipse. Due anni e una rivoluzioneJava 8 -12: da Oracle a Eclipse. Due anni e una rivoluzione
Java 8 -12: da Oracle a Eclipse. Due anni e una rivoluzioneThinkOpen
 
"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...Dataconomy Media
 
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 JavaCro2019Jamie Coleman
 
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 GPUUsatyuk Vasiliy
 
Java/Spring과 Node.js의공존
Java/Spring과 Node.js의공존Java/Spring과 Node.js의공존
Java/Spring과 Node.js의공존동수 장
 
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 projectWLOG Solutions
 
Pylons + Tokyo Cabinet
Pylons + Tokyo CabinetPylons + Tokyo Cabinet
Pylons + Tokyo CabinetBen Cheng
 
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 containersAlessandro Festa
 
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 Tourq3boy
 

Similar to 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
 

Recently uploaded

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 

Recently uploaded (20)

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 

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