Automatic Code Generation for Cross-platform, Multi-Device Mobile Apps. An Industrial Experience

With Aldo Bongio (WebRatio), Jordi Cabot (ICREA and UOC), Hamza Ed-douibi (EMN) and Eric Umuhoza (Politenico di Milano), we worked on a research on Automatic Code Generation for Cross-platform, Multi-Device Mobile Apps.

We presented our study at the MobileDeLi workshop, where we reported on a comparative study conducted to identify the best trade-offs between different automatic code generation strategies.
Here are the slides presented there:

We covered the following strategies by implementing them using different technologies and target platforms:

  1. PIM-to-Native Code (NC)
  2. PIM-to-PSM-to-NC
  3. PSM-to-NC.
  4. PIM-to-Cross Platform Code (CPC)
  5. PIM-to-Framework Specific Model (FSM)-to-CPC

Some additional details are available in this post by Eric on Jordi’s blog.

Our study showed that there is no approach better than others in absolute terms but provided useful guidelines (e.g. cross platform approaches are generally advisable for companies with limited resoures) that helped us to identify the best strategy for the WebRatio company in particular.

Obviously, further investigations are ongoing…

To keep updated on my activities you can subscribe to the RSS feed of my blog or follow my twitter account (@MarcoBrambi).

Here we are: IFML 1.0 published by the OMG officially

IFML 1.0 is finally published!

The OMG released the official 1.0 version of the new standard in March 2015. It took several years of research, discussions and validation, but here we are with the standard specification. The specification document can be downloaded for free at:

Here is Emanuele ready for the presentation given at the Object Management Group ADTF (Analysis & Design Task Force).

Emanuele Molteni presenting IFML implementation
and success stories at the OMG meeting

With perfect timing, we are also ready to go to the market with:

To keep updated on my activities you can subscribe to the RSS feed of my blog or follow my twitter account (@MarcoBrambi).

Code Generation conference is back!

Code Generation, the premiere venue for model-driven addicted, is back in Cambridge for 2014!
If you are in the field of software modeling, software languages, design and development tools, model interpretation, executability and (of course) code generation, you should definitely attend the event.
The conference is a great mix of presentations, workshops and hands-on sessions.

We also gave our own presentation at Code Generation 2012 on WebRatio and IFML.
Here is the video of our presentation published on InfoQ.

This year the conference features a tutorial on Adaptive Embedded Development with Stephen Mellor, plus keynote speeches by Juha-Pekka Tolvanen (CEO of MetaCase) and by  Johan den Haan (CTO of Mendix).

You can find more on the official conference web site:

To keep updated on my activities you can subscribe to the RSS feed of my blog or follow my twitter account (@MarcoBrambi).

The Automobile project delves into the core of model-driven mobile apps

Starting October 2013, my research group at Politecnico di Milano and WebRatio have started a research project called Automobile, which aims at designing and bringing to the market innovative methodologies, software tools, and vertical applications for the cost-effective implementation of cross-platform, multi-device mobile applications, i.e. business applications that can be accessed by users on a variety of devices and operating systems, including PC, cellular / smart phones and tablets.

AutoMobile will exploit the paradigm of Model-Driven Engineering and code generation to dramatically simplify multi-device development, reducing substantially cost and development times. AutoMobile will rely on modeling languages such as IFML (Interaction Flow Modeling Languages) and on tools like WebRatio.

The other partners of the project are the Ecole des Mines de Nantes, Forward Software, and Moonsubmarine.
The official project Web site is:
The project is now entering the core part of the work: we have studied the background and related work, and we have defined the business requirements. We are now starting studying the domain-specific extension of IFML for mobile, based on the study of the capabilities of the different mobile platforms and devices, including cross-platform approaches like PhoneGap.
We look forward to sharing with you our results!
To keep updated on my activities you can subscribe to the RSS feed of my blog or follow my twitter account (@MarcoBrambi).

Success story paper: Large-scale Model-Driven Engineering of Web User Interaction with WebML and WebRatio

Our paper “Large-scale Model-Driven Engineering of Web User Interaction: The WebML and WebRatio experience” has been published online on Elsevier’s journal: Science of Computer Programming, in the special issue Success Stories in Model Driven Engineering (edited by Davide Di Ruscio, Richard Paige, Alfonso Pierantonio).

The history we report spans across a decade that has seen a dramatic  change in the way software applications are built, which can be summarized  in three fundamental factors that impacted the evolution of WebML and  WebRatio:
  • The progressive consolidation of theWeb as an application development platform
  • At the front-end, the multiplication of access devices and usage scenarios
  • At the back-end, Business Process Models emerged as a uniform way of representing cross-organization functionality, and Service Oriented Architecture as the technical vehicle for deploying process enactment on top of heterogeneous IT infrastructures.
These change drivers put much strain on a DSL like WebML, born for capturing the  features of the Web, and produced the timeline shown below:

The paper reports on our experience with WebML and WebRatio and describes the perspective of the new IFML standard adopted by OMG. The report tells the story of our company in the MDE tool market, facing the challenges of deploying MDE solutions in large-scale industrial players, with a focus on the model-driven design of user interaction and on code generation across all the tiers of Web/SOA applications. We describe our decisions on the DSL (domain specific language) and on the features we decided to implement (or not) in the tool. 
The paper includes an overview of WebRatio and of its accompanying DSL for Web application design (WebML); it describes the parallel evolution of the WebML language and of the WebRatio development environment; it reports on the the lessons learnt from the joint design of the DSL and of its support tool; it presents a sample of customer histories and reports some quantitative measures on the WebRatio usage, together with some statistics on WebML models size and development effort. Finally, we take the occasion to reflect on the success and failure factors for MDE emerged from the WebRatio experience.

The paper is available from Elsevier and also here in our open-access preprint version.

To keep updated on my activities you can subscribe to the RSS feed of my blog or follow my twitter account (@MarcoBrambi).

Code Generation 2012 – from geeky (programming) interfaces to user interfaces

Code Generation 2012 logo

For the second year, I’ve been attending the event called Code Generation, held in Cambridge, UK and organized by Software Acumen. For the second year, the event has been a quite good mix of practitioners, vendors and experienced evangelists.

During the event, Emanuele Molteni (product manager of WebRatio) and I have given a talk on User Interaction modeling problems, requirements and initiative, with special attention to the IFML (Interaction Flow Modeling Language) standardization activity within OMG. I think the problem is perceived as definitely relevant by the community, as demonstrated by the lively discussion that followed the presentation.

I would say that the main characterization of this year is really towards User Interaction modeling. A lot of sessions and speeches (including ours) addressed this problem from different perspectives, spanning from multi-platform mobile apps, to interaction modeling, to interpreted approaches for enterprise UIs, and so on. Even during our presentation, the audience admitted that they have built tens of domain specific languages (DSLs) for modeling some aspects of UIs. If you are interested in the topic, you can have a look at our presentation here:

WebRatio has been sponsoring the event, and as a sponsor also got a booth at the conference (see picture). We have been interacting with a lot of visitors ad got enthusiastic feedback.

WebRatio booth at Code Generation 2012.

The event also features several interesting sub-events, sessions and keynotes, notably:

.. and several other interesting talks. 
In summary, happy to attend and looking forward to next edition.

To keep updated on my activities you can subscribe to the RSS feed of my blog or follow my twitter account (@MarcoBrambi).

Presentation at Code Generation 2012: User Interaction Modeling: current status of the standardization process

Together with Emanuele Molteni, I will give a speech at Code Generation 2012 on: 
User Interaction Modeling: current status of the standardization process, from the requirements to the language.

In this presentation we will go through our 15-years experience of user interaction modeling for the Web, based on WebML and WebRatio, and we will delve into the challenge of making our own domain-specific language (DSL) a standard. We will present the ongoing activities at OMG towards the standardization of a Interaction Flow Modeling Language (IFML): we will discuss the requirements and the scope of the sought standard, and we will propose a solution based on our 15-year experience in Web interaction design. We will be inspired by our WebML language, but we will also explain how to go beyond that, so as to cover mobile, multi-touch, collaborative applications, independently from the implementation platform.
We will also show how a dedicated interaction modeling tool like WebRatio can ease the development through a plethora of facilities supporting the developer, including: visual debugging, quick prototyping, multi-platform and cloud deployment, and so on.

I look forward to the exciting days in Cambridge and to the feedback we will get from the public.
If you have suggestions or proposals on the topics you wish us to cover during the speech, feel free to let us know!

If you want to know more about the IFML standardization at OMG, you can visit these posts on IFML. The presentation given on IFML at CG 2012 is available on Slideshare and visible here (see below).

WebRatio is a proud sponsor of the event. See you in Cambridge then!

To keep updated on my activities you can subscribe to the RSS feed of my blog or follow my twitter account (@MarcoBrambi).

Highlights from LWC 2011: Language Workbench Competition 2011 (co-located with Code Generation 2011)

Language Workbenches, as defined originally by Martin Fowler, are tools aiming to cope with DSL creation and code generation to increase the level of abstraction of software development [credit to Pedro J. Molina for the reference].The Language Workbench Competition at Code Generation 2011 aimed at gathering and comparing the features of different workbenches available today, through a small challenge based on a set of requirements.
Then, the challenge was summarized in the Code Generation main event. Here is a quick writeup of the presentations of two good representatives of the presented tools, not focusing on the performance within the challenge but more oriented to giving an overview to the field (especially for novices).
The complete list of submitters includes:

Among the above, I could only attend the summary of the two contributions from OOMEGA and Intentional:

OOMEGA (,, presented by Christian Merenda
Oomega is based on Eclipse, supports ATL for M2M transformations and Xpand for M2T transformations.
It’s based on the theoretical graph-based Edge Algebra
Upon it, there is M2L as a metamodeling language.
Oomega is the tool that implements it.
It works with continuous and incremental changes between the graphical and textual representation of the models.
The tool is showcasing 5 interrelated DSLs.

Intentional Domain Workbench (, presented by Mats Helander
It’s a projectional editor, not a text-based tool (i.e., based on a parser). It’s instead based on a tree representation of the languages, which is then reshaped based on projections.
References are not name-based but node-based instead. Every node has an ID and you reference them. So, if you change a name of a class, you get automatic updates in the referenced objects.
The specification is based on an extension of C#, extended with some DSLs.
You can get textual or graphical projections, and also document-like projections; you can mix different notations.
This allows involvement of non-technical, business users too
You also get for free code-completion-like features.
The technical paper presenting the solution to the challenge is available here.

To keep updated on my activities you can subscribe to the RSS feed of my blog or follow my twitter account (@MarcoBrambi).