Visually Summarising Software Change

Many authors have noted the problem of excessive information when attempting to create useful visualisations of software. The problem of visualising change over multiple versions of software is more complex still. We present a means of visualising changes in software, founded on information-theoretic arguments, that easily and automatically summarises difference between software versions with respect to their code, their structure or their behaviour. Further, we show, by creating visualisations in experiments on real-world data, that the method is of utility to practitioners and has implications beyond the field of software visualisation.

[1]  Steven P. Reiss The Paradox of Software Visualization , 2005, 3rd IEEE International Workshop on Visualizing Software for Understanding and Analysis.

[2]  Hausi A. Müller,et al.  Requirements of Software Visualization Tools: A Literature Survey , 2007, 2007 4th IEEE International Workshop on Visualizing Software for Understanding and Analysis.

[3]  Ming Li,et al.  An Introduction to Kolmogorov Complexity and Its Applications , 1997, Texts in Computer Science.

[4]  Shirley Dex,et al.  JR 旅客販売総合システム(マルス)における運用及び管理について , 1991 .

[5]  Gregory J. Chaitin,et al.  On the Length of Programs for Computing Finite Binary Sequences: statistical considerations , 1969, JACM.

[6]  Steven P. Reiss,et al.  Visual representations of executing programs , 2007, J. Vis. Lang. Comput..

[7]  Ming Li,et al.  Clustering by compression , 2003, IEEE International Symposium on Information Theory, 2003. Proceedings..

[8]  George C. Necula,et al.  CIL: Intermediate Language and Tools for Analysis and Transformation of C Programs , 2002, CC.

[9]  Alan R. Hevner,et al.  Reviewing software diagrams: a cognitive study , 2004, IEEE Transactions on Software Engineering.

[10]  A. Kolmogorov Three approaches to the quantitative definition of information , 1968 .

[11]  John T. Stasko,et al.  Knowledge precepts for design and evaluation of information visualizations , 2005, IEEE Transactions on Visualization and Computer Graphics.

[12]  Brian D. Fisher,et al.  Managing software change tasks: an exploratory study , 2005, 2005 International Symposium on Empirical Software Engineering, 2005..

[13]  Stéphane Ducasse,et al.  High-level polymetric views of condensed run-time information , 2004, Eighth European Conference on Software Maintenance and Reengineering, 2004. CSMR 2004. Proceedings..

[14]  Harald C. Gall,et al.  CodeCrawler: an information visualization tool for program comprehension , 2005, ICSE.

[15]  Hausi A. Müller,et al.  Manipulating and documenting software structures using SHriMP views , 1995, Proceedings of International Conference on Software Maintenance.

[16]  Peter Eades,et al.  Navigating software architectures with constant visual complexity , 2005, 2005 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC'05).

[17]  Alessandro Orso,et al.  A differencing algorithm for object-oriented programs , 2004 .

[18]  Thomas M. Cover,et al.  Elements of Information Theory , 2005 .

[19]  Hausi A. Müller,et al.  Rigi: A Visualization Environment for Reverse Engineering , 1997, Proceedings of the (19th) International Conference on Software Engineering.

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

[21]  Dennis K. Peters,et al.  Software Documents: Comparison and Measurement , 2007, SEKE.

[22]  Eleni Stroulia,et al.  UMLDiff: an algorithm for object-oriented design differencing , 2005, ASE.

[23]  Harald C. Gall,et al.  System evolution tracking through execution trace analysis , 2005, 13th International Workshop on Program Comprehension (IWPC'05).

[24]  Amit P. Sawant DiffArchViz: A Tool to Visualize Correspondence Between Multiple Representations of a Software Architecture , 2007, 2007 4th IEEE International Workshop on Visualizing Software for Understanding and Analysis.

[25]  Daniel M. Germán,et al.  Visualizing Software Architecture Evolution Using Change-Sets , 2007, 14th Working Conference on Reverse Engineering (WCRE 2007).

[26]  Ming Li,et al.  An Introduction to Kolmogorov Complexity and Its Applications , 2019, Texts in Computer Science.

[27]  Edward B. Allen,et al.  Measuring size, complexity, and coupling of hypergraph abstractions of software: An information-theory approach , 2007, Software Quality Journal.

[28]  Michele Lanza,et al.  Software bugs and evolution: a visual approach to uncover their relationship , 2006, Conference on Software Maintenance and Reengineering (CSMR'06).

[29]  Xiaomin Wu,et al.  Plugging-in visualization: experiences integrating a visualization tool with Eclipse , 2003, SoftVis '03.

[30]  Harald C. Gall,et al.  Classifying Change Types for Qualifying Change Couplings , 2006, 14th IEEE International Conference on Program Comprehension (ICPC'06).

[31]  Oscar Nierstrasz,et al.  The Inevitable Stability of Software Change , 2007, 2007 IEEE International Conference on Software Maintenance.

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

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

[34]  Richard C. Holt,et al.  Evolution Spectrographs: visualizing punctuated change in software evolution , 2004 .

[35]  Oscar Nierstrasz,et al.  Object-oriented reengineering patterns , 2004, Proceedings. 26th International Conference on Software Engineering.

[36]  Eleni Stroulia,et al.  Analyzing the evolutionary history of the logical design of object-oriented software , 2005, IEEE Transactions on Software Engineering.

[37]  Ray J. Solomonoff,et al.  A Formal Theory of Inductive Inference. Part II , 1964, Inf. Control..

[38]  David Notkin,et al.  Checking inside the black box: regression testing by comparing value spectra , 2005, IEEE Transactions on Software Engineering.

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

[40]  Bin Ma,et al.  The similarity metric , 2001, IEEE Transactions on Information Theory.

[41]  M. Lanza,et al.  CodeCrawler - an information visualization tool for program comprehension , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[42]  Shriram Krishnamurthi,et al.  The feature signatures of evolving programs , 2003, 18th IEEE International Conference on Automated Software Engineering, 2003. Proceedings..

[43]  Robert F. Erbacher,et al.  Exemplifying the Inter-Disciplinary Nature of Visualization Research , 2007, 2007 11th International Conference Information Visualization (IV '07).

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

[45]  Udo Kelter,et al.  Tracing Model Elements , 2007, 2007 IEEE International Conference on Software Maintenance.