The COMPOST, COMPASS, Inject/J and RECODER Tool Suite for Invasive Software Composition: Invasive Composition with COMPASS Aspect-Oriented Connectors

  • Dirk Heuzeroth
  • Uwe Aßmann
  • Mircea Trifu
  • Volker Kuttruff
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4143)


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.


Source Code Model Query Model Drive Architecture Abstract Syntax Tree Compilation Unit 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Allen, R., Garlan, D.: Beyond definition/use: Architectural interconnection. In: ACM IDL Workshop. SIGPLAN Notices, vol. 29(8) (1994)Google Scholar
  2. 2.
    Aßmann, U.: Invasive Software Composition. Springer, Heidelberg (2002)Google Scholar
  3. 3.
    Aßmann, U., Ludwig, A., Neumann, R., Heuzeroth, D.: The COMPOST project main page (1999 – 2005),
  4. 4.
    Carriere, S.J., Woods, S.G., Kazman, R.: Software Architectural Transformation. In: WCRE 1999 (October 1999)Google Scholar
  5. 5.
    Darwin (2000),
  6. 6.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns. Addison-Wesley, Reading (1994)Google Scholar
  7. 7.
    Garlan, D., Allen, R., Ockerbloom, J.: Architectural Mismatch: Why Reuse Is So Hard. IEEE Software (1995)Google Scholar
  8. 8.
    Garlan, D., Shaw, M.: An Introduction to Software Architecture. In: Advances in Software Engineering and Knowledge Engineering. World Scientific Publishing, Singapore (1993)Google Scholar
  9. 9.
    Genßler, T., Kuttruff, V.: The inject/J project main page (1999 – 2005),
  10. 10.
    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)CrossRefGoogle Scholar
  11. 11.
    Harris, D.R., Yeh, A.S., Reubenstein, H.B.: Extracting Architectural Features From Source Code. ASE 3, 109–138 (1996)MathSciNetGoogle Scholar
  12. 12.
    Heuzeroth, D.: The COMPASS project main page (2003),
  13. 13.
    Heuzeroth, D.: Aspektorientierte Konfiguration und Adaption von Komponenteninteraktionen. PhD thesis, University of Karlsruhe (2004)Google Scholar
  14. 14.
    Heuzeroth, D.: COMPASS: Tool-supported Adaptation of Interactions. In: Automated Software Engineering 2004. IEEE, Los Alamitos (2004)Google Scholar
  15. 15.
    Heuzeroth, D.: A Model for an Executable Software Architecture to deal with Evolution and Architectural Mismatches. Technical report, Universität Karlsruhe (2004)Google Scholar
  16. 16.
    Heuzeroth, D., Högström, G., Holl, T., Löwe, W.: Automatic Design Pattern Detection. In: IWPC (May 2003)Google Scholar
  17. 17.
    Heuzeroth, D., Holl, T., Löwe, W.: Combining Static and Dynamic Analyses to Detect Interaction Patterns. In: IDPT (June 2002)Google Scholar
  18. 18.
    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)Google Scholar
  19. 19.
    Heuzeroth, D., Löwe, W., Mandel, S.: Generating Design Pattern Detectors from Pattern Specifications. In: 18th ASE. IEEE, Los Alamitos (2003)Google Scholar
  20. 20.
    Kazman, R., Clements, P., Bass, L.: Classifying Architectural Elements as a Foundation for Mechanism Matching. In: COMPSAC 1997 (August 1997)Google Scholar
  21. 21.
    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)CrossRefGoogle Scholar
  22. 22.
    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)Google Scholar
  23. 23.
    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)CrossRefGoogle Scholar
  24. 24.
    Ludwig, A., Neumann, R., Heuzeroth, D., Trifu, M.: The RECODER project main page (1999 – 2005),
  25. 25.
    OMG. MDA Guide Version 1.0.1. Technical report, OMG (2003)Google Scholar
  26. 26.
    Ossher, H., Tarr, P.: Multi-Dimensional Separation of Concerns in Hyperspace. Technical report, IBM T. J. Watson Research Center (April 1999)Google Scholar
  27. 27.
    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)CrossRefGoogle Scholar
  28. 28.
  29. 29.
    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)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Dirk Heuzeroth
    • 1
  • Uwe Aßmann
    • 2
  • Mircea Trifu
    • 3
  • Volker Kuttruff
    • 3
  1. 1. 
  2. 2.TU DresdenGermany
  3. 3.FZI KarlsruheGermany

Personalised recommendations