Software & Systems Modeling

, Volume 11, Issue 1, pp 77–98 | Cite as

A metamodel for the compact but lossless exchange of execution traces

Theme Section

Abstract

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).

Keywords

Metamodelling Exchange format Execution traces Dynamic analysis 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Bowman, T., Godfrey, M.W., Holt, R.C.: Connecting Architecture Reconstruction Frameworks. In: Proc. of the 1st International Symposium on Constructing Software Engineering Tools (CoSET’99), pp 43–54. Los Angeles, CA (1999)Google Scholar
  2. 2.
    Brown, R., Driesen, K., Eng, D., Hendren, L., Jorgensen, J., Verbrugge, C., Wang, Q.: STEP: a framework for the efficient encoding of general trace data. Workshop on Program Analysis for Software Tools and Engineering, pp. 27–34. South Carolina, USA (2002)Google Scholar
  3. 3.
    Chan, A., Holmes, R., Murphy, G.C., Ying, A.T.: Scaling an Object-Oriented System Execution Visualizer through Sampling. In: Proc. of the 11th International Workshop on Program Comprehension, pp. 237–244. Portland, Oregon, USA (2003)Google Scholar
  4. 4.
    Chilimbi, T., Jones, R., Zorn, B.: Designing a trace format for heap allocation events. In: Proc. of the ACM SIGPLAN International Symposium on Memory Management (ISMM), pp. 35–49. Minneapolis, MN, USA, Oct. (2000)Google Scholar
  5. 5.
    De Pauw, W., Jensen, E., Mitchell, v, Sevitsky, G., Vlissides, J., Yang, J.: Visualizing the Execution of Java Programs. In: Proc. International Seminar on Software Visualization, Dagstuhl, pp. 151–162 (2002)Google Scholar
  6. 6.
    Ducasse S., Pollet D.: Software architecture reconstruction: a process-oriented taxonomy. IEEE Trans. Softw. Eng. 35(4), 573–591 (2009)CrossRefGoogle Scholar
  7. 7.
    Dugerdil, P., Alam, S.: Execution trace visualization in a 3D space. In: Proceedings of the Fifth international Conference on information Technology: New Generations, pp. 38–43 (2008)Google Scholar
  8. 8.
    Downey J.P., Sethi R., Tarjan R.E.: Variations on the common subexpression problem. J. ACM 27(4), 758–771 (1980)MathSciNetMATHCrossRefGoogle Scholar
  9. 9.
    Ebert, J., Kullbach, B., Winter, A.: GraX—An Interchange Format for Reengineering Tools. In: Proc. of the 6th Working Conference on Reverse Engineering (WCRE), pp. 89–98 (1999)Google Scholar
  10. 10.
    Eisenbarth, T., Koschke, R., Simon, D.: Feature-Driven Program Understanding Using Concept Analysis of Execution Traces. In: Proc. of the 9th International Workshop on Program Comprehension, pp. 300–309. Toronto, Canada (2001)Google Scholar
  11. 11.
    Flajolet, P., Sipala, P., Steyaert, J.-M.: Analytic Variations On The Common Subexpression Problem. In: Proc. of Automata, Languages, and Programming, volume 443 of Lecture Notes in computer science, pp. 220–234. Springer, Berlin (1990)Google Scholar
  12. 12.
    Hamou-Lhadj, A., Lethbridge, T.: A survey of trace exploration tools and techniques. In: Proc. of the 14th Annual IBM Centers for Advanced Studies Conferences (CASCON), pp. 42–55. IBM Press, Toronto, Canada, October (2004)Google Scholar
  13. 13.
    Hamou-Lhadj, A., Lethbridge, T.: Measuring various properties of execution traces to help build better trace analysis tools. In: Proc. Of the 10th IEEE International Conference on Engineering of Complex Computer Systems. Shanghai, China, June (2005)Google Scholar
  14. 14.
    Hamou-Lhadj, A., Lethbridge, T., Fu, L.: SEAT: A usable trace analysis tool. In: Proceedings of the 13th International Workshop on Program Comprehension, pp. 157–160. IEEE Computer Society (2005)Google Scholar
  15. 15.
    Hamou-Lhadj, A., Braun, E., Amyot, D., Lethbridge, T.: Recovering behavioral design models from execution traces. In: Proc. of the 9th European Conference on Software Maintenance and Reengineering, pp. 112–121. Manchester, UK (2005)Google Scholar
  16. 16.
    Hamou-Lhadj, A., Lethbridge, T.: Summarizing the content of large traces to facilitate the understanding of the behaviour of a software system. In: Proc. of the IEEE International Conference on Program Comprehension, pp. 181–190. IEEE CS (2006)Google Scholar
  17. 17.
    Holt, R.C.: An Introduction to TA: The Tuple Attribute Language. Department of Computer Science, University of Waterloo and University of Toronto (1998)Google Scholar
  18. 18.
    Holt, R.C., Winter, A., Schürr, A.: GXL: Toward a Standard Exchange Format. In: Proc. 7th Working Conference on Reverse Engineering (WCRE), pp. 1962–171 (2000)Google Scholar
  19. 19.
  20. 20.
    Jerding, D., Rugaber, S.: Using Visualisation for Architecture Localization and Extraction. In: Proc. of the 4th Working Conference on Reverse Engineering, Amsterdam, Netherlands, October (1997)Google Scholar
  21. 21.
    Jerding, D., Stasko, J., Ball, T.: Visualising Interactions in Program Executions. In: Proc. of the 19th International Conference on Software Engineering, pp. 360–370. Boston, Massachusetts, USA (1997)Google Scholar
  22. 22.
    Johnson, B., Shneiderman, B.: Tree-maps: A space filling approach to the visualization of hierarchical information structures. In: Proc. of the IEEE Visualization 91, pp. 284–291 (1991)Google Scholar
  23. 23.
    Johnson E.E., Ha J., Baqar Zaidi M.: Lossless trace compression. IEEE Trans. Comput. 50(2), 158–173 (2001)CrossRefGoogle Scholar
  24. 24.
    Kienle H.M., Mller H.A.: Rigi-An environment for software reverse engineering, exploration, visualization, and redocumentation. Sci. Comput. Program. 75(4), 247–263 (2010)MATHCrossRefGoogle Scholar
  25. 25.
    Knowledge Discovery Metamodel (KDM), URL: http://www.omg.org/spec/KDM/1.1/
  26. 26.
    Lange D.B., Nakamura Y.: Object-oriented program tracing and visualization. IEEE Comput. 30(5), 63–70 (1997)CrossRefGoogle Scholar
  27. 27.
    Larus, J.R.: Whole program paths. In: Proc. of the ACM SIGPLAN ‘99 Conference on Programming language design and implementation, Atlanta, United States, pp. 259–269. ACM Press, New York (1999)Google Scholar
  28. 28.
    Leduc, J.: Towards reverse engineering of UML sequence diagrams of real-time, distributed systems through dynamic analysis. Master of Applied Science, Carleton University (2004)Google Scholar
  29. 29.
    Lethbridge, T.C.: The Dagstuhl Middle Model: An Overview. In: Proc. of the First International Workshop on Meta-models and Schemas for Reverse Engineering (ATEM), Victoria, Canada (2003)Google Scholar
  30. 30.
    Lethbridge, T.C., Anquetil, N.: Architecture of a Source Code Exploration Tool: A Software Engineering Case Study. Computer Science Technical Report TR-97-07, University of Ottawa, Ottawa, Canada, November (1997)Google Scholar
  31. 31.
    McQuillan, J.A., Power, J.F.: Experiences of using the dagstuhl middle metamodel for defining software metrics. ACM International Conference Proceeding Series 178, pp. 194–198 (2006)Google Scholar
  32. 32.
    Müller, H.A., Klashinsky, K.: Rigi—A System for Programming-in-the-Large. In: Proc. of the International Conference on Software Engineering (ICSE), pp. 80–86 (1988)Google Scholar
  33. 33.
    Pollet, D., Ducasse, S., Poyet, L., Alloui, I., Cmpan, S., Verjus, H.: Towards a process-oriented software architecture reconstruction taxonomy. In: Proc. of the European Conference on Software Maintenance and Reengineering, pp. 137–148 (2007)Google Scholar
  34. 34.
    Reiss, S.P., Renieris, M.: Encoding program executions. In: Proc. of the 23rd international conference on Software engineering, pp. 221–230. Toronto, Canada (2001)Google Scholar
  35. 35.
    Richner, T., Ducasse, S.: Using dynamic information for the iterative recovery of collaborations and roles. In: Proceedings of the 18th International Conference on Software Maintenance, pp. 34–43. IEEE Computer Society (2002)Google Scholar
  36. 36.
    Systä, T.: Dynamic Reverse Engineering of Java Software. In: Proc. of the ECOOP Workshop on Object-Oriented Technology, pp. 174–175. Lisbon, Portugal (1999)Google Scholar
  37. 37.
    Scheuerl, S.J.G., Connor, R.C.H., Morrison, R., Moss, J.E.B., Munro, D.S.: The MaStA I/O trace format. Technical Report CS/95/4, School of Mathematical and Computational Sciences, University of St Andrews, North Haugh, St Andrews, Fife, Scotland (1995)Google Scholar
  38. 38.
    St-Denis, G., Schauer, R., Keller, R.K.: Selecting a Model Interchange Format: The SPOOL Case Study. In: Proc. of the 33rd Annual Hawaii International Conference on System Sciences, Maui, Hawaii, January (2000)Google Scholar
  39. 39.
    Tai K.C.: The tree-to-tree correction problem. J. ACM 26(3), 422–433 (1979)MathSciNetMATHCrossRefGoogle Scholar
  40. 40.
    UML 2.0 Superstructure Specifications, URL: http://www.omg.org/technology/documents/formal/uml.htm
  41. 41.
    Valiente, G.: Simple and efficient tree pattern matching. Research report, Technical University of Catalonia, E-08034, Barcelona (2000)Google Scholar
  42. 42.
    Woods, S., Carrière, S.J., Kazman, R.: A semantic foundation for architectural reengineering and interchange. In: Proc. of International Conference on Software Maintenance (ICSM ‘99), pp. 391–398. Oxford, England, August (1999)Google Scholar

Copyright information

© Springer-Verlag 2010

Authors and Affiliations

  • Abdelwahab Hamou-Lhadj
    • 1
  • Timothy C. Lethbridge
    • 2
  1. 1.Department of Electrical and Computer EngineeringConcordia UniversityMontrealCanada
  2. 2.School of Information Technology and Engineering (SITE)University of OttawaOttawaCanada

Personalised recommendations