would substantially reduce the space required by a CTF trace (since it is not based on
XML). The TA language was originally developed to help visualize information
about software systems. It has been used as a model interchange format in several
contexts and has a reasonable tool support despite the fact that it is not XML-based.
We are still in the process of testing CTF in order to determine the most suitable
syntactic form that represents its instance data efficiently.
4 Conclusions
Application modernization requires the representation of knowledge about the system
under study. Existing metamodels such as KDM, UML, and DMM are designed
mainly to model the structure of a software system. They lack an efficient
representation of its behavioral properties. In this paper, we presented CTF (Compact
Trace Format), an exchange format for representing traces of routine (method) calls.
To deal with the vast size of typical traces, we designed CTF based on the idea that
dynamic call trees can be turned into ordered directed acyclic graphs, where repeated
subtrees are factored out. CTF, as described in this paper, is a metamodel. Trace data
conforming to CTF can be expressed using GXL, TA, or any other data “carrier”
language. However, we suggest using a compact representation since doing otherwise
would somewhat defeat the compactness objective of CTF.
While CTF covers a significant gap in terms of exchanging traces of routine calls,
dynamic analysis is a highly versatile process that has a large number of needs
including needs for dynamic information that is not necessarily supported by CTF.
Therefore, the main future work is to work towards enhancing CTF in order to
support other types of traces and constructs as well as testing CTF using large traces.
References
1. Bézivin J., 2004. Model Engineering for Software Modernization. In WCRE'04, 11th
Working Conference on Reverse Engineering.
2. Bowman T., Godfrey M. W., and Holt R. C., 1999. Connecting Architecture Reconstruction
Frameworks. In CoSET’99, 1st International Symposium on Constructing Software
Engineering Tools.
3. Downey J. P., Sethi R., Tarjan R. E., 1980. Variations on the Common Subexpression
Problem. Journal of the ACM. 27(4).
4. Ebert J., Kullbach B., Winter A., 1999. GraX – An Interchange Format for Reengineering
Tools. In WCRE’99, 6th Working Conference on Reverse Engineering.
5. Hamou-Lhadj A. and Lethbridge T., 2003. The Compact Trace Format, In ATEM’03, 1st
International Workshop on Metamodels and Schemas for Reverse Engineering.
6. Hamou-Lhadj A. and Lethbridge T., 2005. Measuring Various Properties of Execution
Traces to Help Build Better Trace Analysis Tools. In ICECCS’05, 10th IEEE International
Conference on Engineering of Complex Computer Systems.
7. Holt R. C., 1998. An Introduction to TA: The Tuple Attribute Language. Department of
Computer Science, University of Waterloo and University of Toronto.
8. Holt R. C., Winter A., Schürr A., 2000. GXL: Toward a Standard Exchange Format. In
WCRE’00, 7th Working Conference on Reverse Engineering.
101