Multiscale visual comparison of execution traces

Understanding the execution of programs by means of program traces is a key strategy in software comprehension. An important task in this context is comparing two traces in order to find similarities and differences in terms of executed code, execution order, and execution duration. For large and complex program traces, this is a difficult task due to the cardinality of the trace data. In this paper, we propose a new visualization method based on icicle plots and edge bundles. We address visual scalability by several multiscale visualization metaphors, which help users navigating from the main differences between two traces to intermediate structural-difference levels, and, finally fine-grained function call levels. We show how our approach, implemented in a tool called TRACEDIFF, is applicable in several scenarios for trace difference comprehension on real-world trace datasets.

[1]  Andrian Marcus,et al.  A task oriented view of software visualization , 2002, Proceedings First International Workshop on Visualizing Software for Understanding and Analysis.

[2]  Sophia Krasikov,et al.  Execution patterns for visualizing web services , 2006, SoftVis '06.

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

[4]  Martin Graham,et al.  A Survey of Multiple Tree Visualisation , 2010, Inf. Vis..

[5]  Mark N. Wegman,et al.  Execution Patterns in Object-Oriented Visualization , 1998, COOTS.

[6]  Lee J. White,et al.  Multivariate visualization in observation-based testing , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[7]  Jürgen Döllner,et al.  Understanding complex multithreaded software systems by using trace visualization , 2010, SOFTVIS '10.

[8]  Doug Kimelman,et al.  Visualizing the behavior of object-oriented systems , 1993, OOPSLA '93.

[9]  Lucian Voinea,et al.  CVSscan: visualization of code evolution , 2005, SoftVis '05.

[10]  Jarke J. van Wijk,et al.  Visual Comparison of Hierarchically Organized Data , 2008, Comput. Graph. Forum.

[11]  Andy Zaidman,et al.  Scalability solutions for program comprehension through dynamic analysis , 2006, Conference on Software Maintenance and Reengineering (CSMR'06).

[12]  Flemming Nielson,et al.  Principles of Program Analysis , 1999, Springer Berlin Heidelberg.

[13]  Arie van Deursen,et al.  Execution trace analysis through massive sequence and circular bundle views , 2008, J. Syst. Softw..

[14]  Mary Jean Harrold,et al.  Empirical evaluation of the tarantula automatic fault-localization technique , 2005, ASE.

[15]  Steven P. Reiss,et al.  Encoding program executions , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[16]  Danny Holten,et al.  Hierarchical Edge Bundles: Visualization of Adjacency Relations in Hierarchical Data , 2006, IEEE Transactions on Visualization and Computer Graphics.

[17]  Alexandru Telea,et al.  Code Flows: Visualizing Structural Evolution of Source Code , 2008, Comput. Graph. Forum.

[18]  Johannes Brohnet Visualization of Execution Traces and its Application to Software Maintenance , 2010 .

[19]  Danny B. Lange,et al.  Object-Oriented Program Tracing and Visualization , 1997, Computer.

[20]  James Roberts TraceVis: An Execution Trace Visualization Tool , 2004 .

[21]  Alexandru Telea,et al.  Eurographics/ Ieee-vgtc Symposium on Visualization 2010 Image-based Edge Bundles: Simplified Visualization of Large Graphs , 2022 .

[22]  David Lorge Parnas,et al.  Software aging , 1994, Proceedings of 16th International Conference on Software Engineering.

[23]  Fabian Beck,et al.  Visually exploring multi-dimensional code couplings , 2011, 2011 6th International Workshop on Visualizing Software for Understanding and Analysis (VISSOFT).

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

[25]  Serdar Tasiran,et al.  TreeJuxtaposer: scalable tree comparison using Focus+Context with guaranteed visibility , 2003, ACM Trans. Graph..

[26]  Jarke J. van Wijk,et al.  Cushion Treemaps: Visualization of Hierarchical Information , 1999, INFOVIS.

[27]  Abdelwahab Hamou-Lhadj Timothy C. Lethbridge An Efficient Algorithm for Detecting Patterns in Traces of Procedure Calls , 2005 .

[28]  Johan Moe,et al.  Understanding distributed systems via execution trace data , 2001, Proceedings 9th International Workshop on Program Comprehension. IWPC 2001.

[29]  Abdelwahab Hamou-Lhadj Techniques to simplify the analysis of execution traces for program comprehension , 2006 .

[30]  Jürgen Döllner,et al.  ViewFusion: Correlating Structure and Activity Views for Execution Traces , 2012, TPCG.

[31]  Thomas A. Corbi,et al.  Program Understanding: Challenge for the 1990s , 1989, IBM Syst. J..

[32]  Ben Shneiderman,et al.  The eyes have it: a task by data type taxonomy for information visualizations , 1996, Proceedings 1996 IEEE Symposium on Visual Languages.

[33]  Steven P. Reiss Visualizing Java in action , 2003, SoftVis '03.

[34]  Alexandru Telea,et al.  Multiscale Visualization of Dynamic Software Logs , 2007, EuroVis.

[35]  Lucian Voinea,et al.  EZEL: a Visual Tool for Performance Assessment of Peer-to-Peer File-Sharing Network , 2004, IEEE Symposium on Information Visualization.

[36]  Alessandro Orso,et al.  Gammatella: Visualizing Program-Execution Data for Deployed Software , 2004, Inf. Vis..