Completed Research

Completed Research

ALIA4J
short for Advanced-dispatch Language Implementation Architecture for JVM-based languages, defines how compilers and execution environments for Advanced-dispatch languages should be implemented in order to provide themost natural support for advanced dispatching constructs like predicate dispatch or aspects. The center of this architecture is a flexible meta-model, called LIAM (Language-Independent Advanced-dispatch Meta-Model). 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 deployment.
[more…]
CaesarJ 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. CaesarJ also provides a new deployment concept for aspects supporting aspectual polymorphism.
[more…]
Clara (CompiLe-time Approximation of Runtime Analyses) is a novel research framework for the implementation of hybrid typestate analyses, which use static analyses to partially evaluate runtime monitors for typestate properties. The major design goal of Clara is to de-couple the code-generation for efficient runtime monitors from the static analyses that convert these monitors into faster, residual monitors. Clara is compatible to any runtime monitor that is implemented as an AspectJ aspect. Further, researchers can easily implement static analyses that will then automatically optimize any of these monitors.
[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.
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 crosscutting concerns and support for runtime change.
[more…]
AO4BPEL 2.0 is the re-implementation of AO4BPEL 1.0 an aspect-oriented extension to BPEL4WS.
Like its predecessor, AO4BPEL 2.0 enables modular and dynamically-adaptable Web service composition. It uses AOP techniques to overcome the shortcomings of workflow-oriented Web service composition languages with respect to modularization of crosscutting concerns and support for runtime change. New features will involve support for BPEL 2.0, open source code, and expressive scoping for AO4BPEL aspects.
[more…]
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.
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.
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 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.
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.
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. This project has been superseded by the Eclipse Code Recommenders project.
IRC is a flexible framework to enforce implementation restrictions, to check for violations of best practices and to detect common bug patterns.
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…]
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.
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.
NFComp (Non-functional Composition) is a model-driven approach for the composition of non-functional concerns (NFC) such as security, performance, reliability etc. NFComp has been applied to Web Services which can be regarded from different views.
[more…]
Pegasus Project aims at creating a naturalistic programming language, that is, a programming language directly incorporating basic mental concepts such as objects, actions, statements, events, rules and others. This direct mapping of program ideas onto real programs makes programming much more straightforward as it avoids to force our ideas into a very constrained specific programming concept. In addition to that, it increases the readability and understandability of computer programs as well as their sustainability since programs written in natural(istic) language will be readable as long as the respective natural language is spoken.
[more…]
π is a pattern language: its only language concept is the pattern, which can be best imagined as a function with a signature like a context-free grammar rule. Due to this flexibility, patterns abstract other language constructs and π can be syntactically extended by defining new patterns.
[more…]
POPART provides a meta-aspect protocol that allows to adapt AO semantics at run-time. While alternative semantics for aspect-oriented abstractions can be defined by language designers using extensible aspect compiler frameworks, application developers are prevented from tailoring the language semantics in an application-specific manner. To address this problem, we propose an architecture for aspect-oriented languages with an explicit meta-interface to language semantics.
We demonstrate the benefits of such an architecture by presenting several scenarios in which aspect-oriented programs use the meta-interface of the language to tailor its semantics to a particular application execution context.
[more…]
The Scala Benchmarking Project attempts to answer the following research question: Scala ≡ Java (mod JVM)? Does Scala code differ significantly from Java code when viewed at the level of the Java Virtual Machine. The first major contribution of the Scala Benchmarking Project has thus been to complement a popular Java benchmark suite with a large set benchmarks based on real‐world Scala applications, thereby allowing JVM researchers to finally compare and contrast the performance characteristics of Java and Scala programs beyond the level of micro‐benchmarks.
[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…]