This Article 
 Bibliographic References 
 Add to: 
An Extensible Meta-Model for Program Analysis
September 2007 (vol. 33 no. 9)
pp. 592-607
Software maintenance tools for program analysisand refactoring rely on a meta-model capturing the relevantproperties of programs. However, what is considered relevantmay change when the tools are extended with new analyses andrefactorings, and new programming languages. This paper proposesa language independent meta-model and an architecture toconstruct instances thereof, which is extensible for new analyses,refactorings, and new front-ends of programming languages. Dueto the loose coupling between analysis-, refactoring-, and frontend-components, new components can be added independentlyand reuse existing ones. Two maintenance tools implementingthe meta-model and the architecture, VIZZANALYZER and XDEVELOP,serve as a proof of concept.

[1] B.W. Boehm, Software Engineering Economics. Prentice Hall, 1981.
[2] R.K. Fjeldstad and W.T. Hamlen, “Application Program Maintenance Study: Report to Our Respondents,” Proc. GUIDE 48, 1979.
[3] T.A. Standish, “An Essay on Software Reuse,” IEEE Trans. Software Eng., vol. 10, no. 5, pp.494-497, Sept. 1984.
[4] P. Selfridge, “Integrating Code Knowledge with a Software Information System,” Proc. Knowledge-Based Software Eng. Conf., 1990.
[5] S. Henninger, “Case-Based Knowledge Management Tools for Software Development,” J. Automated Software Eng., vol. 4, no. 3, July 1997.
[6] P. Klint, R. Lämmel, and C. Verhoef, “Toward an Engineering Discipline for Grammarware,” ACM Trans. Software Eng. and Methodology, vol. 14, no. 3, pp.331-380, 2005.
[7] J.M. Favre, “Understanding-in-the-Large,” Proc. Fifth Int'l Workshop Program Comprehension (WPC '97), p. 29, 1997.
[8] J.R. Cordy, C.D. Halpern-Hamu, and E. Promislow, “TXL: A Rapid Prototyping System for Programming Language Dialects,” Proc. Int'l Conf. Computer Languages (ICCL '88), pp. 280-285, 1988.
[9] A.D. Thurston and J.R. Cordy, “Evolving TXL,” Proc. Source Code Analysis and Manipulation Conf. (SCAM '06), pp.117-126, 2006.
[10] W. Löwe and T. Panas, “Rapid Construction of Software Comprehension Tools,” Int'l J. Software Eng. and Knowledge Eng., vol. 15, no. 6, pp.905-1023, Dec. 2005.
[11] T.C. Lethbridge, S. Tichelaar, and E. Ploedereder, “The Dagstuhl Middle Metamodel,” Proc. Int'l Workshop Meta-Models and Schemas for Reverse Eng. (ATEM '03), vol. 94, pp.7-18, 2004.
[12] A. Ludwig, “Recoder,” http:/, 2002.
[13] R. Lincke and W. Löwe, “Foundations for Defining Software Metrics,” Proc. Third Int'l Workshop Metamodels, Schemas, Grammars and Ontologies for Reverse Eng. (ATEM '06), Oct. 2006.
[14] D. Strein, H. Kratz, and W. Löwe, “Cross-Language Program Analysis and Refactoring,” Proc. Sixth IEEE Int'l Workshop Source Code Analysis and Manipulation (SCAM '06), 2006.
[15] A.H. Watson and T.J. McCabe, Structured Testing: A Testing Methodology Using the Cyclomatic Complexity Metric, NIST Special Publication 500-235, US Nat'l Inst. of Standards and Tech nology, 1996.
[16] F. Tip and J. Palsberg, “Scalable Propagation-Based Call Graph Construction Algorithms,” ACM SIGPLAN Notices, vol. 35, no. 10, pp.281-293, 2000.
[17] D. Grove, G. DeFouw, J. Dean, and C. Chambers, “Call Graph Construction in Object-Oriented Languages,” Proc. Conf. Object-Oriented Programming Systems, Languages, and Applications (OOPSLA '97), pp.108-124, 1997.
[18] S. Lapierre, B. Laguë, and C. Leduc, “Datrix(TM) Source Code Model and Its Interchange Format: Lessons Learned and Considerations for Future Work,” SIGSOFT Software Eng. Notes, vol. 26, no. 1, pp.53-56, 2001.
[19] A. Ludwig and D. Heuzeroth, “`Metaprogramming in the Large,” Proc. Conf. Generative and Component-Based Software Eng. (GCSE '00), 2000.
[20] J.S. Miller and S. Ragsdale, The Common Language Infrastructure Annotated Standard. Addison Wesley, 2004.
[21] “MOF QVT Final Adopted Specification,”, 2007.
[22] M.G.J. van den Brand, J. Heering, P. Klint, and P.A. Olivier, “Compiling Language Definitions: The ASF+SDF Compiler,” ACM Trans. Programming Languages and Systems, vol. 24, no. 4, pp.334-368, 2002.
[23] I. Baxter, P. Pidgeon, and M. Mehlich, “DMS: Program Transformations for Practical Scalable Software Evolution,” Proc. Int'l Conf. Software Eng., 2004.
[24] R. Holt, A. Winter, A. Schürr, and S. Sim, “GXL: Towards A Standard Exchange Format,” Proc. Seventh Working Conf. Reverse Eng. (WCRE '00), 2000.
[25] R. Holt and A. Winter, “GXL Representing Graph Schemas,” Proc. Seventh Working Conf. Reverse Eng. (WCRE '00), 2000.
[26] H.A. Müller and K. Klashinsky, “Rigi-A System for Programming-in-the-Large,” Proc. 10th Int'l Conf. Software Eng. (ICSE '88), pp.80-86, 1988.
[27] D. Jin, J.R. Cordy, and T.R. Dean, “Where's the Schema? A Taxonomy of Patterns for Software Exchange,” Proc. Int'l Workshop Program Comprehension, pp.65-74, 2002
[28] G. Booch, J. Rumbaugh, and I. Jacobson, Unified Modeling Language User Guide. Addison-Wesley Longman, 1998.
[29] “Unified Modeling Language (UML), Version 2.0,” formaluml.htm, 2006.
[30] “Meta-Object Facility (MOF), Version 2.0,” http://www.omg. org/technology/documents/ formalmof_core.htm, 2006.
[31] “XML Metadata Interchange (XMI), Version 2.1,” http://www. formalxmi.htm, 2005.
[32] D.S. Frankel, Model Driven Architecture: Applying MDA to Enterprise Computing. OMG Press, 2003.
[33] D.C. Schmidt, “Guest Editor's Introduction: Model-Driven Engineering,” Computer, vol. 39, no. 2, pp.25-31, 2006.
[34] F.G. Wilkie and T.J. Harmer, “Tool Support for Measuring Complexity in Heterogeneous Object-Oriented Software,” Proc. 18th IEEE Int'l Conf. Software Maintenance (ICSM '02), p. 152, 2002.
[35] M. El-Wakil, A. El-Bastawisi, M. Riad, and A. Fahmy, “A Novel Approach to Formalize Object-Oriented Design Metrics,” Proc. Conf. Evaluation and Assessment in Software Eng. (EASE '05), 2005.
[36] “OMG Unified Modeling Language Specification Version 1.3,” Object Management Group, 1999.
[37] “OMG Unified Modeling Language Specification Version 2.0,” Object Management Group, 2006.
[38] R. Reißing, “Towards a Model for Object-Oriented Design Measurement,” Proc. Fifth European Conf. Object-Oriented Programming (ECOOP '01) Workshop Quantitative Approaches in Object-Oriented Software Eng., pp.71-84, 2001.
[39] A.L. Baroni, “Formal Definition of Object-Oriented Design Metrics,” MS thesis, Faculty of Sciences, Vrije Universiteit Brussel, with Ecole des Mines de Nantes (France) and Universidade nova de Lisboa (Portugal), 2002.
[40] A.L. Baroni, C. Calero, M. Piattini, and F. Brito e Abreu, “A Formal Definition for Object-Relational Database Metrics,” Proc. Seventh Int'l Conf. Enterprise Information Systems (ICEIS '05), May 2005.
[41] M. Goulão and F. Brito e Abreu, “Formalizing Metrics for COTS,” Proc. Int'l Workshop Models and Processes for the Evaluation of COTS Components (MPEC '04) at the Int'l Conf. Software Eng. (ICSE '04), May 2004.
[42] J.A. McQuillan and J.F. Power, “Towards Re-Usable Metric Definitions at the Meta-Level,” Proc. PhD Workshop 20th European Conf. Object-Oriented Programming (ECOOP '06), July 2006.
[43] H. Bär, M. Bauer, O. Ciupke, S. Demeyer, S. Ducasse, M. Lanza, R. Marinescu, R. Nebbe, O. Nierstrasz, M. Przybilski, T. Richner, M. Rieger, C. Riva, A. Sassen, B. Schulz, P. Steyaert, S. Tichelaar, and J. Weisbrod, “The Famoos Object-Oriented Reengineering Handbook,”, Oct. 1999.

Dennis Strein, Rüdiger Lincke, Jonas Lundberg, Welf Löwe, "An Extensible Meta-Model for Program Analysis," IEEE Transactions on Software Engineering, vol. 33, no. 9, pp. 592-607, Sept. 2007, doi:10.1109/TSE.2007.70710
Usage of this product signifies your acceptance of the Terms of Use.