Visual Exploration of Large-Scale System Evolution

The goal of reverse engineering is to obtain a mental model of software systems. However, evolution adds another dimension to their implicit complexity, effectively making them moving targets: The evolution of software systems still remains an intangible and complex process. Metrics have been extensively used to quantify various facets of evolution, but even the usage of complex metrics often leads to overly simplistic insights, thus failing at adequately characterizing the complex evolutionary processes.We present an approach based on real-time interactive 3D visualizations, whose goal is to render the structural evolution of object-oriented software systems at both a coarse-grained and a fine-grained level. By providing insights into a system's history, our visualizations allow us to reason about the origins and the causalities which led to the current state of a system. We illustrate our approach on three large open-source systems and report on our findings, which were confirmed by developers of the studied systems.

[1]  Michael Balzer,et al.  Software landscapes: visualizing the structure of large software systems , 2004, VISSYM'04.

[2]  Harald C. Gall,et al.  EvoGraph: A Lightweight Approach to Evolutionary and Structural Analysis of Large Software Systems , 2006, 2006 13th Working Conference on Reverse Engineering.

[3]  Michele Lanza,et al.  The evolution matrix: recovering software evolution using software visualization techniques , 2001, IWPSE '01.

[4]  Michael W. Godfrey,et al.  YARN: Animating Software Evolution , 2007, 2007 4th IEEE International Workshop on Visualizing Software for Understanding and Analysis.

[5]  Stuart M. Charters,et al.  Visualisation for informed decision making; from code to components , 2002, SEKE '02.

[6]  Michele Lanza,et al.  CodeCity: 3D visualization of large-scale software , 2008, ICSE Companion '08.

[7]  Serge Demeyer,et al.  Studying software evolution information by visualizing the change history , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..

[8]  Tudor Gîrba,et al.  Modeling History to Understand Software Evolution , 2005 .

[9]  Harald C. Gall,et al.  Software evolution observations based on product release history , 1997, 1997 Proceedings International Conference on Software Maintenance.

[10]  Hausi A. Müller,et al.  Rigi: a system for programming-in-the-large , 1988, Proceedings. [1989] 11th International Conference on Software Engineering.

[11]  Michele Lanza,et al.  Program Comprehension through Software Habitability , 2007, 15th IEEE International Conference on Program Comprehension (ICPC '07).

[12]  Pierre Poulin,et al.  Visualization-based analysis of quality for large-scale software systems , 2005, ASE.

[13]  Malcolm Munro,et al.  Virtual but visible software , 2000, 2000 IEEE Conference on Information Visualization. An International Conference on Computer Visualization and Graphics.

[14]  Audris Mockus,et al.  Does Code Decay? Assessing the Evidence from Change Management Data , 2001, IEEE Trans. Software Eng..

[15]  Michael W. Godfrey,et al.  2nd International Workshop on Advanced Software Development Tools and Techniques (WASDeTT): Tools for software maintenance, visualization, and reverse engineering , 2008, 2008 IEEE International Conference on Software Maintenance.

[16]  Harald C. Gall,et al.  CocoViz: Towards Cognitive Software Visualizations , 2007, 2007 4th IEEE International Workshop on Visualizing Software for Understanding and Analysis.

[17]  Michele Lanza,et al.  Exploring Inter-Module Relationships in Evolving Software Systems , 2007, 11th European Conference on Software Maintenance and Reengineering (CSMR'07).

[18]  Cristina Marinescu,et al.  iPlasma: An Integrated Platform for Quality Assessment of Object-Oriented Design , 2005, ICSM.

[19]  Stephen G. Eick,et al.  Seesoft-A Tool For Visualizing Line Oriented Software Statistics , 1992, IEEE Trans. Software Eng..

[20]  Richard C. Holt,et al.  GASE: visualizing software evolution-in-the-large , 1996, Proceedings of WCRE '96: 4rd Working Conference on Reverse Engineering.

[21]  Lucian Voinea,et al.  Multiscale and multivariate visualizations of software evolution , 2006, SoftVis '06.

[22]  Stéphane Ducasse,et al.  Characterizing the evolution of class hierarchies , 2005, Ninth European Conference on Software Maintenance and Reengineering.

[23]  Richard C. Holt,et al.  Exploring software evolution using spectrographs , 2004, 11th Working Conference on Reverse Engineering.

[24]  Harald C. Gall,et al.  Visualizing software release histories: the use of color and third dimension , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[25]  Meir M. Lehman,et al.  Program evolution: processes of software change , 1985 .

[26]  Jan Bosch,et al.  Design erosion: problems and causes , 2002, J. Syst. Softw..

[27]  Philippe Dugerdil,et al.  EvoSpaces Visualization Tool: Exploring Software Architecture in 3D , 2007, 14th Working Conference on Reverse Engineering (WCRE 2007).

[28]  Harald C. Gall,et al.  Visualizing multiple evolution metrics , 2005, SoftVis '05.

[29]  Hausi A. Müller,et al.  The Rigi Reverse Engineering Environment , 2008 .

[30]  John C. Grundy,et al.  A 3D metaphor for software production visualization , 2003, Proceedings on Seventh International Conference on Information Visualization, 2003. IV 2003..

[31]  Andrian Marcus,et al.  3D representations for software visualization , 2003, SoftVis '03.

[32]  Dirk Beyer,et al.  Animated Visualization of Software History using Evolution Storyboards , 2006, 2006 13th Working Conference on Reverse Engineering.

[33]  John Domingue,et al.  Software visualization : programming as a multimedia experience , 1998 .

[34]  Michele Lanza,et al.  Visualizing Software Systems as Cities , 2007, 2007 4th IEEE International Workshop on Visualizing Software for Understanding and Analysis.

[35]  Jon Louis Bentley,et al.  Multidimensional binary search trees used for associative searching , 1975, CACM.

[36]  Malcolm Munro,et al.  Revision Towers , 2002, Proceedings First International Workshop on Visualizing Software for Understanding and Analysis.

[37]  Christian S. Collberg,et al.  A system for graph-based visualization of the evolution of software , 2003, SoftVis '03.

[38]  Harald C. Gall,et al.  EvoLens: lens-view visualizations of evolution data , 2005, Eighth International Workshop on Principles of Software Evolution (IWPSE'05).

[39]  Oscar Nierstrasz,et al.  Moose: an agile reengineering environment , 2005, ESEC/FSE-13.

[40]  Harald C. Gall,et al.  CocoViz: Supported Cognitive Software Visualization , 2007, 14th Working Conference on Reverse Engineering (WCRE 2007).

[41]  Kent L. Beck,et al.  Extreme programming explained - embrace change , 1990 .