Ongoing Projects
ALIA, short for Aspect Language Implementation Architecture, defines how compilers and execution environments for Aspect-Oriented Programming (AOP) languages should be implemented in order to provide a most natural support for asepcts. The center of this architecture is a flexible meta-model, called the Execution Model, for pointcut-and-advice structures which are one core concept of AOP languages. A compiler generates a corresponding model for the aspects in the program under compilation. ALIA also provides a generic implementation of execution environments with support for the Execution Model and dynamic aspect deployment.
[more...]
[more...]
Alpha is a new aspect-oriented language with a powerful and open pointcut language that exploits information from different models of program semantics,
such as the execution trace, the syntax tree, the heap, static type system, etc., and
supports abstraction mechanisms analogous to functional abstraction. This rich join point model and the powerful abstraction mechanisms of the pointcut language
considerably raise the abstraction level and modularity of pointcuts. With Alpha pointcuts one can declaratively and concisely quantify over the execution of a program.
[more...]
[more...]
AO4BPEL is an aspect-oriented extension to BPEL4WS that enables modular and dynamically-adaptable web service composition. AO4BPEL uses AOP techniques to overcome the shortcomings of workflow oriented web service composition languages with respect to modularization of crossuctting concerns and support for runtime change.
[more...]
[more...]
CAESAR is a new AOP language compatible to Java and AspectJ, which enables the componentization of crosscutting concerns such that they become reusable independent entities and facilitates the integration of third party components without modifying your code. Caesar also provides a new deployment concept for aspects supporting aspectual polymorphism.
[more...]
[more...]
Columbus is an advanced inversion of control container for service-oriented component environments. Columbus enables to cope with variability of services in service-oriented component environments by making feature models an explicit part of service interface specifications.
[more...]
[more...]
eAssignment is an Eclipse feature for administrating and arranging exercises for large numbers of students. The feature carries out the
distribution of the assignments to the students as well as the submission of the students' solutions to the organizers. Furthermore, automatic tests of the submission as well as the generation of feedback reports is possible. eAssignment minimizes the organizational efforts for the organizers of a course and frees the students from set-up tasks with no educational
value.
[more...]
[more...]
Framework Understanding tools are another area of research. We are working on techniques that facilitate framework reuse by guiding novice framework users to relevant parts of the framework. Our approaches do not involve a large additional effort for the framework developer, present only those parts needed to understand how to use the framework, and show relevant information in a context-dependent manner.
[more...]
[more...]
ispace is a graph-based tool for visualizing, analyzing, and experimentally reorganizing Java dependency graphs. The tool provides a set of simple but flexible means for tailoring the visualized graph corresponding to information needs of the user. Moreover, it is integrated into Eclipse and works with Eclipse’s Java Development Tools.
[more...]
[more...]
Magellan is a static analysis platform that is tightly integrated into the Eclipse IDE. Magellan's architecture enables to
define queries over a uniform representation of all artifacts of a
software project. These queries can be used for general cross-artifact
information retrieval or for more special applications like checking
implementation restrictions or to check the conformance to style guides.
[more...]
[more...]
Dependent Classes is a language feature that combines the semantics of virtual classes and multidispatch.
A dependent class is a class whose structure and behavior depends on \emph{arbitrarily many} objects,
whereby this dependency is expressed explicitly over class parameters, rather than by nesting, as it is the case with virtual classes.
The semantics of dependent classes is formalized by vcn calculus.
[more...]
[more...]
Closed Projects
AORTA (Aspect-Oriented Run-Time Architecture) aims at establishing native support for dynamic AOP in run-time environments (e.g., virtual machines for the Java programming language). The work in this area comprises the development of run-time representations of aspects, and pointcut detection mechanisms. Advanced just-in-time compiler support is developed to enable efficient run-time weaving approaches.
[more...]
[more...]
IRC is a flexible framework to enforce implementation restrictions, to check for violations of best practices and to detect common bug patterns.
[more...]
[more...]
MobCon is a framework for mobile containers that addresses separation of concerns for mobile software applications. MobCon prototype targets MIPD 2.0 but the framework itself, written in Java, is extensible and can be ported to address new mobile middleware concerns. The framework uses a MDA based generative approach to minimize the number of abstraction layers.
[more...]
[more...]
TopPrax is a joint research project involving the Software Technology Group at Darmstadt University of Technology, the Software Technology Group at Technical University of Berlin, Fraunhofer Institute for Software Technology and Computer Architecture in Berlin, and two SMEs, Gebit and Daedalos International. The goal of the project is to show in real industrial case studies that aspect-oriented software development is mature enough to cope with the complexity of modern software.
[more...]
[more...]

