A Novel Approach Based on Gestalt Psychology for Abstracting the Content of Large Execution Traces for Program Comprehension

The analysis of execution traces can reveal important information about the behavioral aspects of complex software systems, hence reducing the time and effort it takes to understand and maintain them. Traces, however, tend to be considerably large which hinders their effective analysis. Existing traces analysis tools rely on some sort of visualization techniques to help software engineers make sense of trace content. Many of these techniques have been studied and found to be limited in many ways. In this paper, we present a novel trace analysis technique that automatically divides the content of a large trace into meaningful segments that correspond to the program's main execution phases such as initializing variables, performing a specific computation, etc. These phases can simplify significantly the exploration of large traces by allowing software engineers to first understand the content of a trace at a high-level before they decide to dig into the details. Our phase detection method is inspired by Gestalt laws that characterize the proximity, similarity, and continuity of the elements of a data space. We model these concepts in the context of execution traces and show how they can be used as gravitational forces that yield the formation of dense groups of trace elements, which indicate candidate phases. We applied our approach to two software systems. The results are very promising.

[1]  Marc Roper,et al.  The role of comprehension in software inspection , 2000, J. Syst. Softw..

[2]  Daniel Amyot,et al.  Recovering behavioral design models from execution traces , 2005, Ninth European Conference on Software Maintenance and Reengineering.

[3]  Abdelwahab Hamou-Lhadj,et al.  An Approach for Detecting Execution Phases of a System for the Purpose of Program Comprehension , 2010, 2010 Eighth ACIS International Conference on Software Engineering Research, Management and Applications.

[4]  A. Rountev,et al.  Object naming analysis for reverse-engineered sequence diagrams , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[5]  Brad Calder,et al.  Automatically characterizing large scale program behavior , 2002, ASPLOS X.

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

[7]  Gail C. Murphy,et al.  Scaling an object-oriented system execution visualizer through sampling , 2003, 11th IEEE International Workshop on Program Comprehension, 2003..

[8]  Andy Zaidman,et al.  Managing trace data volume through a heuristical clustering process based on event execution frequency , 2004, Eighth European Conference on Software Maintenance and Reengineering, 2004. CSMR 2004. Proceedings..

[9]  G. Schwarz Estimating the Dimension of a Model , 1978 .

[10]  J. MacQueen Some methods for classification and analysis of multivariate observations , 1967 .

[11]  John T. Stasko,et al.  The information mural: a technique for displaying and navigating large information spaces , 1995, Proceedings of Visualization 1995 Conference.

[12]  Arie van Deursen,et al.  Understanding Execution Traces Using Massive Sequence and Circular Bundle Views , 2007, 15th IEEE International Conference on Program Comprehension (ICPC '07).

[13]  Steven P. Reiss Dynamic detection and visualization of software phases , 2005, WODA '05.

[14]  Jeffrey S. Perry,et al.  Edge co-occurrence in natural images predicts contour grouping performance , 2001, Vision Research.

[15]  James E. Smith,et al.  Comparing Program Phase Detection Techniques , 2003, MICRO.

[16]  Katsuro Inoue,et al.  Feature-level phase detection for execution trace using object cache , 2008, WODA '08.

[17]  Abdelwahab Hamou-Lhadj,et al.  Summarizing the Content of Large Traces to Facilitate the Understanding of the Behaviour of a Software System , 2006, 14th IEEE International Conference on Program Comprehension (ICPC'06).

[18]  Abdelwahab Hamou-Lhadj,et al.  A survey of trace exploration tools and techniques , 2004, CASCON.

[19]  Mercedes M. Fisher,et al.  Gestalt Theory: A Foundation for Instructional Screen Design , 1999 .

[20]  M. Wertheimer Laws of organization in perceptual forms. , 1938 .

[21]  O. Reiser,et al.  Principles Of Gestalt Psychology , 1936 .

[22]  Rajeev Balasubramonian,et al.  Memory hierarchy reconfiguration for energy and performance in general-purpose processor architectures , 2000, MICRO 33.

[23]  Adrian Kuhn,et al.  Exploiting the Analogy Between Traces and Signal Processing , 2006, 2006 22nd IEEE International Conference on Software Maintenance.

[24]  Stéphane Ducasse,et al.  Correlating features and code using a compact two-sided trace analysis approach , 2005, Ninth European Conference on Software Maintenance and Reengineering.

[25]  Diane M. Griffiths,et al.  THE REGENTS OF THE UNIVERSITY OF CALIFORNIA , 2007 .

[26]  Paul C Quinn,et al.  Perceptual Organization in Infancy: Bottom-Up and Top-Down Influences , 2009, Optometry and vision science : official publication of the American Academy of Optometry.

[27]  Andrew W. Moore,et al.  X-means: Extending K-means with Efficient Estimation of the Number of Clusters , 2000, ICML.