This page outlines some of the projects I’ve worked on during my job, or in my spare time. It will give you an idea of my interests and areas of expertise. The main projects are listed first, and at the bottom you’ll find a list of smaller, personal projects.
The ATL Transformation Language is a model transformation language and toolkit. In the field of Model-Driven Engineering (MDE), ATL provides ways to produce a set of target models from a set of source models. Developed on top of the Eclipse platform, the ATL Integrated Environnement (IDE) provides a number of standard development tools (syntax highlighting, debugger, etc.) that aims to ease development of ATL transformations.
As model transformations have become an integral part of the automated software engineering lifecycle, reuse, modularisation, and composition of model transformations becomes important. One way to compose model transformations is to compose modules of transformation rules, and execute the composition as one transformation (internal composition). This kind of composition can provide fine-grained semantics, as it is part of the transformation language.
The EMF Transformation Virtual Machine (EMFTVM) aims to generalise two internal composition mechanisms for rule-based transformation languages, module import and rule inheritance, by providing executable semantics for the composition mechanisms. The generality of the virtual machine is demonstrated for two different rule-based transformation languages by compiling those languages to, and executing them on this virtual machine: ATL and SimpleGT (graph transformation). EMFTVM allows integrated execution of heterogeneous model transformation languages, much like Microsoft’s Common Language Runtime (CLR)works for general-purpose programming languages.
PlatformKit is a platform dependency management toolkit. It can be used to support platform-specific configuration in development processes based on the Model Driven Architecture and/or Software Product Lines, where multiple (versions of) software and/or hardware platforms are targeted.
PlatformKit makes its decisions based on platform ontologies. It uses a base vocabulary that explains what a “platform” is. On top of that, platform dependency constraints of a particular software artifact can be defined. Finally, several platform instances can be modelled. If all these are put together, PlatformKit can determine which platform dependency constraints are satisfied by the given platform, and which of the platform dependency constraints is most-specific or least-specific.
Jar2UML is an Eclipse plugin that imports and converts Java jar files into a UML model in the workspace. It is used to reverse engineer Java API class libraries for PlatformKit‘s Java platform model.
Jar2UML has two import modes. The standard mode imports the contents of the selected Jar file(s) and the references made by the Jar file(s). The dependency mode imports only the references. The dependency mode can be used when Extracting Platform Dependencies of Third-party Components using the PlatformKit Eclipse Plugin.
Apart from jar files, Jar2UML also supports converting class files in Eclipse Java projects, and it understands the zip, war, ear, rar, and sar formats.
SimpleGT is a minimal graph transformation language, based on double push-out (DPO) semantics. SimpleGT is built on top of the Eclipse Modeling Framework (EMF), EMFText, and SimpleOCL, and is intended as a proof-of-concept transformation language for the EMF Transformation Virtual Machine (EMFTVM).
SimpleOCL is a proof-of-concept implementation of the OCL standard. SimpleOCL is built on top of the Eclipse Modeling Framework (EMF) and EMFText, and is intended as an embeddable OCL implementation for inclusion in transformation languages for the EMF Transformation Virtual Machine (EMFTVM), such as SimpleGT.