A metamodel for the compact but lossless exchange of execution traces

Understanding the behavioural aspects of a software system can be made easier if efficient tool support is provided. Lately, there has been an increase in the number of tools for analysing execution traces. These tools, however, have different formats for representing execution traces, which hinders interoperability and limits reuse and sharing of data. To allow for better synergies among trace analysis tools, it would be beneficial to develop a standard format for exchanging traces. In this paper, we present a graph-based format, called compact trace format (CTF), which we hope will lead the way towards such a standard. CTF can model traces generated from a variety of programming languages, including both object-oriented and procedural ones. CTF is built with scalability in mind to overcome the vast size of most interesting traces. Indeed, the design of CTF is based on the idea that call trees can be transformed into more compact ordered acyclic directed graphs by representing similar subtrees only once. CTF is also supported by our trace analysis tool SEAT (Software Exploration and Analysis Tool).

[1]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[2]  Kuo-Chung Tai,et al.  The Tree-to-Tree Correction Problem , 1979, JACM.

[3]  Robert E. Tarjan,et al.  Variations on the Common Subexpression Problem , 1980, J. ACM.

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

[5]  Hausi A. Müller,et al.  A System for Programming-in-the-large* , 1988 .

[6]  Philippe Flajolet,et al.  Analytic Variations on the Common Subexpression Problem , 1990, ICALP.

[7]  Ben Shneiderman,et al.  Tree-maps: a space-filling approach to the visualization of hierarchical information structures , 1991, Proceeding Visualization '91.

[8]  David S. Munro,et al.  The MaStA I/O Trace Format , 1995 .

[9]  Timothy C. Lethbridge,et al.  Architecture of a Source Code Exploration Tool: A Software Engineering Case Study1 , 1997 .

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

[11]  John T. Stasko,et al.  Visualizing Interactions in Program Executions , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[12]  Spencer Rugaber,et al.  Using visualization for architectural localization and extraction , 1997, Proceedings of the Fourth Working Conference on Reverse Engineering.

[13]  J. Larus Whole program paths , 1999, PLDI '99.

[14]  Jürgen Ebert,et al.  GraX-an interchange format for reengineering tools , 1999, Sixth Working Conference on Reverse Engineering (Cat. No.PR00303).

[15]  Tarja Systä,et al.  Dynamic Reverse Engineering of Java Software , 1999, ECOOP Workshops.

[16]  Rick Kazman,et al.  A semantic foundation for architectural reengineering and interchange , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[17]  Andy Schürr,et al.  GXL: toward a standard exchange format , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

[18]  Benjamin G. Zorn,et al.  Designing a trace format for heap allocation events , 2000, ISMM '00.

[19]  Rudolf K. Keller,et al.  Selecting a model interchange format: the SPOOL case study , 2000, Proceedings of the 33rd Annual Hawaii International Conference on System Sciences.

[20]  Valiente Feruglio,et al.  Simple and efficient tree pattern matching , 2000 .

[21]  Michael W. Godfrey,et al.  Connecting architecture reconstruction frameworks , 2000, Inf. Softw. Technol..

[22]  Rainer Koschke,et al.  Feature-driven program understanding using concept analysis of execution traces , 2001, Proceedings 9th International Workshop on Program Comprehension. IWPC 2001.

[23]  Nick Mitchell,et al.  Visualizing the Execution of Java Programs , 2001, Software Visualization.

[24]  Eric E. Johnson,et al.  Lossless Trace Compression , 2001, IEEE Trans. Computers.

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

[26]  Stéphane Ducasse,et al.  Using dynamic information for the iterative recovery of collaborations and roles , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[27]  David Eng,et al.  STEP: a framework for the efficient encoding of general trace data , 2002, PASTE '02.

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

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

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

[31]  Abdelwahab Hamou-Lhadj,et al.  Measuring various properties of execution traces to help build better trace analysis tools , 2005, 10th IEEE International Conference on Engineering of Complex Computer Systems (ICECCS'05).

[32]  Abdelwahab Hamou-Lhadj,et al.  SEAT: a usable trace analysis tool , 2005, 13th International Workshop on Program Comprehension (IWPC'05).

[33]  James F. Power,et al.  Experiences of using the Dagstuhl Middle Metamodel for defining software metrics , 2006, PPPJ '06.

[34]  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).

[35]  Stéphane Ducasse,et al.  Towards A Process-Oriented Software Architecture Reconstruction Taxonomy , 2007, 11th European Conference on Software Maintenance and Reengineering (CSMR'07).

[36]  Philippe Dugerdil,et al.  Execution Trace Visualization in a 3D Space , 2008, Fifth International Conference on Information Technology: New Generations (itng 2008).

[37]  Stéphane Ducasse,et al.  Software Architecture Reconstruction: A Process-Oriented Taxonomy , 2009, IEEE Transactions on Software Engineering.

[38]  Hausi A. Müller,et al.  Rigi - An environment for software reverse engineering, exploration, visualization, and redocumentation , 2010, Sci. Comput. Program..