Advisor(s): Ragnhild Van Der Straeten Promotor: Viviane Jonckers
Model-driven software engineering (MDE) is an approach to software development where the primary focus is on models, as opposed to source code. The ultimate goal is to raise the level of abstraction, and to develop and evolve complex software systems by model transformations. For this purpose, software designers should have a software development environment at their disposal with off-the-shelf models and mapping functions that transform one model into another. Instead of building and rebuilding systems as the application or technology changes, models are selected, subsets are taken or models are extended, woven together with other models to build the system. Because model-driven engineering is still in its infancy, there is a need for sophisticated formalisms, techniques and associated tools supporting model development, evolution and transformation.
Different modelling languages can be used to describe models. The Unified Modeling Language (UML) [1] is a general purpose language. In the MDE world not only the UML is considered as a language for MDE but also domain-specific languages (DSLs) and concern-specific languages (CSLs) are proposed. As opposed to general purpose languages, domain-specific languages are designed to be useful for a specific set of tasks and are closer to the domain as perceived by designers. The separation of concern principle [2] allows to treat the different concerns of an application separately. Concern-specific modelling languages want to achieve this principle also at model level. However, some concerns are spread over different other concerns. Aspect-oriented software development aims at modularising such crosscutting concerns. Approaches in aspect-oriented analysis and design aim at describing these concerns at model level by specifying explicitly the set of points where a certain concern applies, called joinpoints. Next to these joinpoints, also the behaviour of the crosscutting concern at these joinpoints, called advice, is described.
Remark that aspect-oriented software analysis and design is still in its infancy. To be able to specify an understandable and reusable design of most applications, a combination of different models expressed in different, appropriate languages is needed. Currently, it is only possible to specify a certain design in one homogenous language and there is almost no integration possible between models specified in different languages. Only ad-hoc extension of a certain language with support for, for example, concerns exists. Current AOSD approaches mainly focus on extensions of the UML such that concerns can be expressed, that joinpoints can be defined specifying where crosscutting concerns must be integrated in other concerns.
At SSEL, we developed a logical framework for the expression, detection and resolution of inconsistencies between models. Models are expressed as logical facts and inconsistency detection as logical queries and inconsistency resolutions as logical rules. The aim of this apprenticeship and thesis is to generalise this research to the ability to express different concerns and especially their crosscutting nature and the weaving of the different models.
Developing a concern specific modelling framework that improves over current state-of-the-art and is general enough to capture different crosscutting concerns. Concretely, the objectives of the apprenticeship are the following:
The research performed in the context of the thesis will build upon the experiences of the apprenticeship. The objectives of the thesis are:
System and Software Engineering Lab, Vrije Universiteit Brussel, Brussels, Belgium.
[1] Object Management Group. Unified Modeling Language 2.0. http://www.omg.org/, December 2005.
[2] D. Parnas, On the Criteria To Be Used in Decomposing Systems into Modules. CACM, vol. 15(12), 1972.