Surfnet logo

TouchRAM - Part 1: A Multi-Touch Enabled Aspect-Oriented Modeling Tool

This is a completed project.


When designing software, it is desirable to explore several different designs, i.e. consider several feasible solutions to implement a specific requirement or functionality and compare the advantages and disadvantages of each solution. Unfortunately, software modeling tools are often tedious to use when making significant changes within the design of a large software model. Aspect-oriented modeling (AOM) is a new modeling technique that allows developers to describe the design of their software using many aspect models. With AOM, each individual aspect model is small in size. To build larger systems, structure and behaviour defined in one aspect model can be (re)used within other aspect models. This reuse is achieved by establishing a mapping between the model elements in the two aspect models.

This project focuses on implementing a touch-enabled aspect-oriented modeling tool for the Reusable Aspect Models (RAM) approach. The tool runs on the Eclipse platform, makes use of the Eclipse Modeling Framework for defining the meta-models of the supported modeling notations, and uses Kermeta to implement the model transformations of the weaver. The first version of the tool was based on our homegrown libjtouch toolkit. 

Images and Videos

The video below shows a demonstration of our first prototype. It supported multi-touch enabled editing of structural views of RAM aspects (class diagrams), as well as touch-enabled specification of aspect bindings. Model weaving is not supported. 



The picture below illustrates aspect weaving by reusing the “Observer” Aspect that represents the observer design pattern within the design of a simple library system.




  • Jörg Kienzle (Supervisor)
  • Wisam Al Abed (Ph.D. Student)
  • Omar Alam (Ph.D. Student)
  • Matthias Schöttle (Masters student)
  • Engin Yildirim (Masters student)
  • Valentin Bonnet (Undergraduate Project Student)
  • Andrew Smart (Undergraduate Project Student)