TouchRAM - Part 2: Weaving and the Reusable Concern Model Library
The TouchRAM project consists in developping a multitouch-enabled tool for agile software design modeling aimed at developing scalable and reusable software design models. The tool gives the designer access to a vast library of reusable design models encoding essential recurring design concerns. It exploits model interfaces and aspect-oriented model weaving techniques as defined by the Reusable Aspect Models (RAM) approach to enable the designer to rapidly apply reusable design concerns within the design model of the software under development.
This part of the project focussed mainly on integrating structural (class diagram) and behavioural (sequence diagram) composition / weaving capabilities into the tool. The RAM meta models are built on top of Ecore, the meta modelling language provided by the Eclipse Modeling Framework (EMF). We initially developped the model composer / weaver in Kermeta, a domain specific language for specifying model transformations. For performance reasons we then translated the Kermeta code into plain Java, and are now capable of composing models with hundreds of classes in a fraction of a second.
To make agile design exploration possible, we also started the creation of a library of structural and behavioural models of common design concerns: low level concerns such as design patterns and network communication protocols, but also higher level concerns such as authentication and encryption mechanisms, resource allocation strategies and workflow execution engines. When elaborating the design of new software, the developer can first focus on modeling the domain-specific structure and behaviour of the application. Then, when specific design solutions are needed, the developer can browse the model library for models that provide the desired functionality. Once an adequate model is found, the concern model can be integrated with the application model by establishing the mapping between the library model elements and the application model. While this is a very tedious task on small displays, we believe that browsing the library and specifying these mappings can be done in a very intuitive way on large displays or digital tables. Being able to display many aspect models simultaneously, a developer is able to use special gestures to designate the model elements that are to be merged. Once the mapping is defined, an aspect weaver merges the aspect models to produce a woven model that contains the combined structure and behaviour.
Finally, we also migrated the graphical frontend away from our homegrown multitouch library, libjtouch toolkit, to MT4J, a third-party toolkit for developing multi-touch Java applications.
TouchRAM was demonstrated at Modularity: aosd 2013 in Fukuoka, Japan, on March 28th 2013.