Abstract
In this paper we present Inject/J, both a language and a tool for specifying complex source-to-source transformations of Java programs. The focus of Inject/J is on ”transformation in the large” that is, modification of large object-oriented software on the design level. We first introduce the meta-model of our transformation language. This meta-model provides a conceptual view on object-oriented software by capturing relevant design entities. It also defines a number of conceptual analysis and transformation operations together with their code-level semantics. The entities of the meta-model, together with the respective operations, constitute the primitives of our transformation language. We discuss the main features of this transformation language and illustrate how it can be used to perform complex transformation tasks.
Chapter PDF
Similar content being viewed by others
References
The RECODER/Java Homepage (2002), http://recoder.sf.net
ASF+SDF MetaEnvironment (2003), http://www.cwi.nl/projects/MetaEnv
AspectJ WWW Page (2003), http://www.eclipse.org/aspectj/
Beck, K.: Extreme Programming Explained. Addison-Wesley, Reading (1999)
Bieman, J.M., Kang, B.K.: Cohesion and Reuse in an Object-Oriented System. In: Proceedings of the ACM Symposium on Software Reusability (1995)
Castor, F., Borba, P.: A Language for Specifying Java Transformations. In: Proceedings of the V Brazilian Symposium on Programming Languages (2001)
Chidamber, S.R., Kemerer, C.F.: A Metric Suite for Object-Oriented Design. IEEE Transactions on Software Engineering (1994)
Cinnéide, M.Ó.: Automated Application of Design Patterns: A Refactoring Approach. PhD thesis, University of Dublin,Trinity College (2000)
Semantic Designs. DMS Software Reengineering Toolkit (2003), http://www.semdesigns.com/products/DMS/DMSToolkit.html
Fowler, M.: Refactoring – Improving The Design Of Existing Code. Addison-Wesley, Reading (1999)
Hannemann, J., Kiczales, G.: Design Pattern Implementation in Java and AspectJ. In: OOPSLA (2002)
Inject/J WWW Page (2003), http://injectj.sf.net/
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C.V., Loingtier, J.-M., Irwin, J.: Aspect-Oriented Programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)
Lieberherr, K.J.: Adaptive Object-Oriented Software – The Demeter Method. PWS Publishing Company (1995)
Ludwig, A., Heuzeroth, D.: Meta-Programming in the Large. In: Proceedings of Conference on Generative Component-based Software Engineering, GCSE (2002)
Opdyke, W.F.: Refactoring Object-Oriented Frameworks. PhD thesis, University of Illinois at Urbana-Champaign (1992)
Riel, A.J.: Object-Oriented Design Heuristics. Addison-Wesley, Reading (1996)
Roberts, D.B.: Practical Analysis for Refactoring. PhD thesis, University of Illinois at Urbana-Champaign (1999)
Schulz, B., Genssler, T., Mohr, B., Zimmer, W.: On the Computer Aided Introduction of Design Patterns into Object-Oriented Systems. In: Proceedings of the 27th TOOLS conference (1998)
Seng, O., Genssler, T., Schulz, B.: Adaptive Extensions of Object-Oriented Systems. In: Proceedings of the IFIP TC2 Working Conference on Generic Programming. Kluwer, Dordrecht (2002)
Tichelaar, S.: Modeling Object-Oriented Software for Reverse Engineering and Refactoring. PhD thesis, University of Berne, Switzerland (2001)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Genssler, T., Kuttruff, V. (2003). Source-to-Source Transformation in the Large. In: Böszörményi, L., Schojer, P. (eds) Modular Programming Languages. JMLC 2003. Lecture Notes in Computer Science, vol 2789. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-45213-3_31
Download citation
DOI: https://doi.org/10.1007/978-3-540-45213-3_31
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-40796-6
Online ISBN: 978-3-540-45213-3
eBook Packages: Springer Book Archive