Here are some available final projects:
- A Language Framework for Composing Aspect-Oriented Domain-Specific Languages
- Optimizing System Qualities in Adaptive Embedded Systems
- Optimizing instantiation strategies of aspects
- Efficient pointcut evaluation
- Analysis of Software Product Lines using Generalised Feature Trees
A Language Framework for Composing Aspect-Oriented Domain-Specific Languages
Contact: Somayeh Malakuti khah
Abstract: Complex programs consist of various different crosscutting concerns, which can be expressed in a general-purpose language such as AspectJ, or can be expressed in their domain-specific language (DSL). In contrary to the general-purpose languages, DSLs are more declarative, more concise and facilitate various different kinds of reasoning over the programs.
To facilitate defining crosscutting concerns in their DSLs, we need a language framework which facilitates defining new aspect-oriented DSLs and composing different AO-DSLs with the base language and with the other AO-DSLs. We proposed Event Composition Model as a computation model for such a framework and introduced the EventReactor language as an implementation of Event Composition Model.
A preliminary design of the EventReactor compiler is available. In this assignment, the student is expected to provide a proof-of-concept implementation of EventReactor, which includes: the possibility to define new event types, event modules, reactor chains, and the runtime environment of the EventReactor language.
The student should define two DSLs and show the possibility of composing concerns developed in these DSLs with a Java program and with each other. DSLs can be, for example, security and transaction. The examples of such DSLs are available in the literature.
Keywords: Aspect-Oriented Programming, Composition, Modularization, Domain-Specific Languages
Optimizing System Qualities in Adaptive Embedded Systems
Contact: Hasan Sözer, Arjan de Roo
Description: In this master assignment, we offer you the opportunity to work in an industry-academia collaborative. In this way you get the chance to do relevant research and experience the best from both worlds. We are currently working in a project together with Oce (http://www.esi.nl/projects/octopus/). This project focuses on the design of adaptive systems. Today's complex printing systems need to adapt themselves to changes in the environment, user needs, input, etc. Thereby, they need to cope with multiple system-wide objectives, like power consumption and productivity. Such objectives are often conflicting and the possibilities to influence them are limited and constrained. In computational theory, this is a well-known problem called Multi-Objective Optimization (MOO) and numerous algorithms exist to solve this problem. Inherent to the fact that the objectives are system-wide, any solution to solve the problem has a system-wide impact. However, current practice shows that solutions are introduced at the implementation stage and not captured by the software architecture. We have developed a novel architectural style, called MO2 style, to provide architectural abstractions for introducing MOO to a system. The objective of this assignment is to refine this style and deliver a proof-of-concept case study by applying it to an actual printing system.
Optimizing instantiation strategies of aspects
Contact: Christoph Bockisch
Description: In aspect-orientation, aspects are an additional kind of modules whose advice (similar to methods) are executed implicitly. I.e., there is no explicit invocation to an advice in the program. Consequently, the aspect\'s instance in whose context the advice should be executed also has to be chosen implicitly.
Aspect-oriented languages provide different strategies to select the appropriate aspect instance. For example, there can be one aspect instance for each object that is active (the \"this\" object) when the advice intercepts the normal execution. Usually, these associations are maintained in a global map. However, access to this map imposes some overhead.
A more efficient approach is support the concept of aspect-instance selection in the virtual machine. Therefore, the virtual machine\'s object layout is changed such that each object itself stores references to its associated aspect instances.
This topic will be carried out in the context of the Steamloom^ALIA project which provides all necessary infrastructure to implement optimizations for aspect-oriented concepts in the virtual machine. A default implementation of the aspect-instance selection based on a map is already implemented such that the optimizations can be implemented on top of that.
In this topic a general approach for optimized aspect-instance selection should be developed that can be applied to multiple selection strategies. Strategies supported by the AspectJ language are per this, per target and per control flow. Other strategies are perceivable like per thread.
Efficient pointcut evaluation
Contact: Christoph Bockisch
Description: In aspect-orientation, pointcuts select a set of instructions in the program whose execution has to be advised. The selected instructions are called join point shadows and are referred to by a pointcut in terms of patterns. To determine the shadows selected by a pointcut, in general, all appropriate instructions (usually method calls and field accesses) have to be matched against the shadow\'s patterns.
However, the expression language describing the patterns has some structure similar to the program in which shadows are searched for. For example, the pattern may make a restriction on the name of the type that contains the instruction. A perceivable optimization is to first determine all applicable types and only investigated all instructions in these types. This approach is similar to SQL query optimization in database management systems.
In this assignment, possibilities have to be researched to generate indexes over potential join point shadow instructions and to optimize the evaluation of patterns in pointcuts.
Analysis of Software Product Lines using Generalised Feature Trees
Contact: Pim van den Broek, Ismênia Galvão Lourenco da Silva
Description: Software Product Lines are specified by Feature Models.
To analyse feature models, they usually are mapped to Binary Decision Diagrams or to Constraint Satisfaction Problems.
A extendable tool for this analysis, called FaMa, has been developed at the University of Sevilla.
Recently, in the TRESE group a new analysis method has been developed, which maps feature models to Generalised Feature Trees.
The assignment is: extend FaMa such that analysis can also be performed with Generalised Feature Trees, and use FaMa to compare the newly added to the other methods.