Abstract
Program analyses and transformations are means to support program evolution and bridge architectural mismatches in component composition. The Program Structures Group at the University of Karlsruhe und the FZI Karlsruhe, that we are or have been members of, have developed a suite of program analysis and transformation tools to attack these problems.
The basic tool Recoder offers sophisticated source code analyses and a library of common transformations in the form of Java meta programs to perform necessary component and interaction adapations. This library can be extended by the Recoder framework that offers means for implementing custom transformations. A transformation can also be a generator to produce glue code, for example.
Inject/J uses Recoder and offers a comfortable scripting language for implementing transformations. The scripting language combines declarative specifications of the program points, where the transformation should be applied, with imperative specifications of the transformation itself.
COMPASS is focused on bridging interaction mismatches among software components. It introduces architectural elements like components, ports and aspect-oriented connectors as source code transformations based on the Recoder framework.
COMPOST defines the general model of invasive software composition, where the ports of the COMPASS model are just one kind of hooks. Hooks are join points, i.e. part of a component that may be extended or replaced.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Allen, R., Garlan, D.: Beyond definition/use: Architectural interconnection. In: ACM IDL Workshop. SIGPLAN Notices, vol. 29(8) (1994)
Aßmann, U.: Invasive Software Composition. Springer, Heidelberg (2002)
Aßmann, U., Ludwig, A., Neumann, R., Heuzeroth, D.: The COMPOST project main page (1999 – 2005), http://www.the-compost-system.org
Carriere, S.J., Woods, S.G., Kazman, R.: Software Architectural Transformation. In: WCRE 1999 (October 1999)
Darwin (2000), http://www.doc.ac.ic.uk
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns. Addison-Wesley, Reading (1994)
Garlan, D., Allen, R., Ockerbloom, J.: Architectural Mismatch: Why Reuse Is So Hard. IEEE Software (1995)
Garlan, D., Shaw, M.: An Introduction to Software Architecture. In: Advances in Software Engineering and Knowledge Engineering. World Scientific Publishing, Singapore (1993)
Genßler, T., Kuttruff, V.: The inject/J project main page (1999 – 2005), http://injectj.sj.net
Genssler, T., Kuttruff, V.: Source-to-Source Transformation In The Large. In: Böszörményi, L., Schojer, P. (eds.) JMLC 2003. LNCS, vol. 2789, pp. 254–265. Springer, Heidelberg (2003)
Harris, D.R., Yeh, A.S., Reubenstein, H.B.: Extracting Architectural Features From Source Code. ASE 3, 109–138 (1996)
Heuzeroth, D.: The COMPASS project main page (2003), http://www.info.uni-karlsruhe.de/~heuzer/projects/compass
Heuzeroth, D.: Aspektorientierte Konfiguration und Adaption von Komponenteninteraktionen. PhD thesis, University of Karlsruhe (2004)
Heuzeroth, D.: COMPASS: Tool-supported Adaptation of Interactions. In: Automated Software Engineering 2004. IEEE, Los Alamitos (2004)
Heuzeroth, D.: A Model for an Executable Software Architecture to deal with Evolution and Architectural Mismatches. Technical report, Universität Karlsruhe (2004)
Heuzeroth, D., Högström, G., Holl, T., Löwe, W.: Automatic Design Pattern Detection. In: IWPC (May 2003)
Heuzeroth, D., Holl, T., Löwe, W.: Combining Static and Dynamic Analyses to Detect Interaction Patterns. In: IDPT (June 2002)
Heuzeroth, D., Löwe, W.: Software-Visualization - From Theory to Practice. In: Zhang, K. (ed.) Understanding Architecture Through Structure and Behavior Visualization. Kluwer, Dordrecht (2003)
Heuzeroth, D., Löwe, W., Mandel, S.: Generating Design Pattern Detectors from Pattern Specifications. In: 18th ASE. IEEE, Los Alamitos (2003)
Kazman, R., Clements, P., Bass, L.: Classifying Architectural Elements as a Foundation for Mechanism Matching. In: COMPSAC 1997 (August 1997)
Kiczales, G., Irwin, J., Lamping, J., Loingtier, J.-M., Lopes, C.V., Maeda, C., Mendhekar, A.: Aspect-Oriented Programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)
Luckham, D.C., Kenney, J.J., Augustin, L.M., Vera, J., Bryan, D., Mann, W.: Specification and Analysis of System Architecture Using Rapide. IEEE ToSE 21(4) (1995)
Ludwig, A., Heuzeroth, D.: Metaprogramming in the Large. In: Butler, G., Jarzabek, S. (eds.) GCSE 2000. LNCS, vol. 2177, pp. 443–452. Springer, Heidelberg (2001)
Ludwig, A., Neumann, R., Heuzeroth, D., Trifu, M.: The RECODER project main page (1999 – 2005), http://recoder.sourceforge.net
OMG. MDA Guide Version 1.0.1. Technical report, OMG (2003)
Ossher, H., Tarr, P.: Multi-Dimensional Separation of Concerns in Hyperspace. Technical report, IBM T. J. Watson Research Center (April 1999)
Pulvermüller, E., Klaeren, H., Speck, A.: Aspects in distributed environments. In: Czarnecki, K., Eisenecker, U.W. (eds.) GCSE 1999. LNCS, vol. 1799, p. 37. Springer, Heidelberg (2000)
http://www.reasoning.com (2003)
Shaw, M., DeLine, R., Klein, D.V., Ross, T.L., Young, D.M., Zelesnik, G.: Abstractions for Software Architecture and Tools to Support Them. IEEE ToSE 21(4) (1995)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Heuzeroth, D., Aßmann, U., Trifu, M., Kuttruff, V. (2006). The COMPOST, COMPASS, Inject/J and RECODER Tool Suite for Invasive Software Composition: Invasive Composition with COMPASS Aspect-Oriented Connectors. In: Lämmel, R., Saraiva, J., Visser, J. (eds) Generative and Transformational Techniques in Software Engineering. GTTSE 2005. Lecture Notes in Computer Science, vol 4143. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11877028_14
Download citation
DOI: https://doi.org/10.1007/11877028_14
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-45778-7
Online ISBN: 978-3-540-46235-4
eBook Packages: Computer ScienceComputer Science (R0)