2006 | OriginalPaper | Chapter
The COMPOST, COMPASS, Inject/J and RECODER Tool Suite for Invasive Software Composition: Invasive Composition with COMPASS Aspect-Oriented Connectors
Authors : Dirk Heuzeroth, Uwe Aßmann, Mircea Trifu, Volker Kuttruff
Published in: Generative and Transformational Techniques in Software Engineering
Publisher: Springer Berlin Heidelberg
Activate our intelligent search to find suitable subject content or patents.
Select sections of text to find matching patents with Artificial Intelligence. powered by
Select sections of text to find additional relevant content using AI-assisted search. powered by
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.