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).

Textual and Content-Based Search in Repositories of Web Application Models – TWEB paper

The paper “Textual and Content-Based Search in Repositories of Web Application Models” I co-authored together with Bojana Bislimovska, Alessandro Bozzon, and Piero Fraternali has now been published on the ACM Transactions on the Web (TWEB).

The article examines two different techniques for indexing and searching model repositories, with a focus on Web development projects encoded in the domain-specific language WebML. Keyword-based and content-based search (also known as query-by-example) are contrasted with respect to the architecture of the system, the processing of models and queries, and the way in which metamodel knowledge can be exploited to improve search. A thorough experimental evaluation is conducted to examine what parameter configurations lead to better accuracy and to offer an insight in what queries are addressed best by each system.

You can find the full text here:
You can download the full text for free even if you don’t have an ACM subscription, through this link:

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

Gems on MDE and UML by Jean Bézivin (and others)

I’d like to share and write down in a more permanent way some thoughts and messages I recollected from yesterday’s twitter interactions with Jean Bézivin on Model Driven Engineering (MDE) and UML.
I’m sure future generations will appreciate my writeup of these small, hidden gems that otherwise would have gone lost in the Twitter flurry 🙂 .

All this was started by my post on Quora basically saying that Model-driven Engineering is more than UML.Jean’s (serial) response is reported here:

  1. Sometimes MDE is the opposite of UML.
  2. UML favours visual modeling; MDE treats visual and textual modeling on par.
  3. UML favours General Purpose Modeling Languages. MDE promotes Domain Specific Modeling Languages.
  4. UML favours huge metamodels to be filtered; MDE promotes small metamodels to be composed.

And along this line I’d like to mention two other important contributions:

Thanks Jean for your vision!

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

At full throttle towards IFML with WebRatio

IFML (Interaction Flow Modeling Language) - OMG (Object Management Group) - WebRatio logos

With its updated site and recent blog post from its CEO Stefano Butti, WebRatio is allowing its customers to move at full throttle towards the new OMG standard IFML, the Interaction Flow Modeling Language.

In particular, WebRatio is now granting the availability of both an opensource IFML editor with proof of concept implementation of integrated fUML and Alf runtime support and of the industrial-strength implementation supporting end-to-end development, from model definition to code generation and deployment (the WebRatio application platform). These are great facilities for future IFML developers and contributors.

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

IFML is now adopted and published by OMG, Wikipedia, and YouTube

Along with the continuing consolidation process of the Interaction Flow Modeling Language (IFML) within OMG, we are now starting our effort of documenting and disseminating IFML.

The three most recent resources I wish to point at are:

  • Official publishing of IFML in the OMG specification catalog
  • A new Wikipedia page on the language
  • A new demonstration video on the ongoing implementation effort of an opensource IFML editor

OMG Publishing 

OMG has now officially published IFML in its list of specifications:

and the official specs are now reachable through the official URL of the standard at:

IFML on Wikipedia 

The Wikipedia page regarding IFML is now online at:

The page summarizes the focus and content of the language, as well as the benefits that developers can gain by adopting it.

Demo video

The demonstration video of the new IFML editor that we are developing is available on YouTube.
This implementation consists of an opensource IFML editor based on Eclipse, EMF/GMF and the Graphiti API. At the moment the tool is under development, but it will be released as opensource Eclipse Project as soon as it reaches a reasonable level of completeness. The tool also includes the mappings from the IFML abstract concepts to the platform- specific concepts of Java Swing, Microsoft WPF, and HTML, as described in the IFML specification.

The modeling of the IFML diagrams for the UI part can be complemented with (ex- ecutable) UML diagrams according to fUML specifications combined with Alf scripts for the backend business logic.

A sneak preview of the tool and generation features is reported in the video, also shown below:

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

Interaction Flow Modeling Language (IFML) adopted as a standard by OMG

It’s with great pleasure and also some pride that I’m announcing that the Interaction Flow Modeling Language (IFML) has been adopted as a standard by OMG during the technical meeting held in Reston, VA this week.

This is an important result we have been pursuing for more than two years now (and ultimately have its roots in the work started almost 15 years ago).

Indeed, IFML has been promoted by WebRatio, a spinoff company of Politecnico  di Milano university, born during a European cooperative research project in a period of time (1999-2001) when the Web was changing the way in which software was implemented. The company produces a tool (called WebRatio itself) for model-driven development of enterprise Web applications, based on the WebML modeling language. And IFML comes out right from there.

The OMG standardization process is not an easy one, but IFML went through it all the way down to adoption. Initially our initiative was seen with some skepticism and suspicion by the big guns of software design, system design and system architectures in OMG. User interaction was (and still is) seen as a side or minor issue in such development scenarios. Actually, this is probably true in design of such mega-systems, where the focus is multi system integration and evolution, with most attention (an money) going into military, embedded, and crowss-government integration.
However, I dare to say that finally IFML was regarded with respect and positive attitude by all the people that got informed about it (and actually they have been quite a lot, as I managed to keep pushing it meeting after meeting with everybody I managed to talk to.

This last month has been very hectic for IFML. We had to work at the specification document, at the implementation of the tool, at the code generation prototype and at the integration with the fUML interpreter.
And finally, we received the official review comments of the OMG Architecture Board (AB). The reviews were very positive, and I was particularly please because they were coming from UniSys and IBM board members. 

The Architecture Board of the Object Management Group discusses IFML in Reston, VA.
This week the approval process went through various steps at the OMG meeting: introduction at the AB meeting on Monday; thorough discussion at the ADTF (Analysis and Design Task Force) on Wednesday, followed by the two voting phases needed for ADTF to recommend the specification for adoption; quick presentation of the IFML submission at the AB meeting on Thursday, followed by vote for adoption; and final report to the Platform Technical Committee on Friday, where the charter for the IFML Finalization Task Force has been issued.

I must say I was surprised by the enthusiasm we raised. At the ADTF the two voting phases both collected unanimous approval, with almost no criticisms. And unanimity was reached also at the adoption vote at the Architectured Board. I dare to say IFML has been one of the fastest approvals cycles that OMG ever saw. The pre-voting comments from UniSys and IBM were literally two words each: “ship it!” and “thumbs up!” respectively. Very encouraging!

The transparency proposing the IFML Finalization Taskforce
(then extended with people from SparxSystem and 88Solutions).
But this is not the end of the path. There is actually still a long way to go. We will need to set up the Beta version of the specifciation document (which will be publicly available sometime in April), and then collect comments and notes until December 2013, and release the final Version 1.0 of the standard on March 2014.
Anyway, the most important result was achieved this week and it’s something we all at WebRatio and Politecnico should be proud about.

I’m not going to go through the technical content of the standard in this post, we will have time for that later on (if you want to get a sneak peak on the specification, you can see this post). This is instead the time for rejoicying and acknoledging the work of all the people that contributed to this result.
The list of contributors is huge. It starts with Piero Fraternali and Stefano Ceri, who started the WebML project (and the AutoWeb project before). Then it counts Aldo Bongio, Roberto Acerbis and Stefno Butti. And then all the people that for some time joined the WebML / WebRatio adventure.

IFML is the result and the aggregation of all the experiences that have been collected in academia and industry in these 15 years. And this includes all the work of the developers that implemented the WebRatio tool, the WebML analysts and designers that built so many large-scale industrial applications and made customers happy (and sometimes swear), and also thesis students, researchers and partners at Politecnico di Milano. I’m not going to name anyone here, because the list would be too long (I’ve estimated some 150 people contributing in these years).

Coming back to present, some people need to be mentioned again as direct contributors to IFML, primarily the co-submitters of the standard proposal: Model Driven Solutions (and here a big thanks goes to Ed Seidewitz), Softeam, Fujitsu, and also people at Politecnico that helped both in the writing of the proposal and in the implementation of proof of concepts, still ongoing, but also in the AtlanMod group at EMN, at, and others.

The final point I want to make now is that IFML is now an open specification and it’s on the lookout for implementors and users.

The WebML editor from WebRatio is already compliant with the notation of IFML, being WebML a more specific case of IFML. We are also implementing an open-source ECORE-based IFML editor, featuring proof of concept generation of Java UI, integrated with fUML interpreter for the backend business logic. And we are planning of supporting some UML tool implementor to help them cover the new IFML profile. If you are interested in implementing IFML at some level (UML profile, domain-specific graphical notation, or possibly a textual notation) and want to hav it mentioned in OMG, feel free to get in touch!

Related posts:

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

Daniel Moody on "Designing diagramming notations that work": the physics of notations

Daniel L. Moody from University of Twente gave a talk (and a full fledged tutorial) at OMG technical meeting in Reston, VA, on the principles for designing effective diagramming notations. His talk had this overall design:

(click to enlarge)

Daniel Moody wrote a famous paper on IEEE Transactions of Software Engineering titled:

IEEE TSE. November/December 2009 (vol. 35 no. 6). pp. 756-779

Program flow charts have been invented long time ago, in 1947.
Visual notations are effective communication tools because they rely on the highly parallel way of reasoning an processing signals of the human brain.
Therefore, they should be optimized for human mind processing. It’s not something that can be designed based on opinions. There are ways of measuring and proving results.
The measure of optimization is cognitive effectiveness. Effectiveness of existing notations is hampered by:

  • unclear goal of the notation
  • low attention to this aspect
  • lack of accepted design principles
Notations like ER diagrams expose significant flaws, but is accepted and preserved with no questions. UML has the same problem. In general, another point is that in current notations there is no motivation on why one choose one symbol or another for model elements. In other words, there is no rationale for design of notations. Basically, we are still in unselfconscious design culture (more or less the same as the way huts are built by primitive people: there are no architecture principles or books, the just build huts).
The same symbols are used again and again within the same language and across languages (e.g., think about the rectangle symbol).
There is lack of testing and principles. That’s why Moody proposes a set of objective principles based on scientific observation.
Out of that, he proposes a clear manifesto for design notations:
  1. At least equal effort and attention for notation and content
  2. Have a design rationale
  3. Decision must be based on evidence
  4. Design must be based on objective principles
  5. There must be explicit testing of the notations (user studies)

The purpose is to move diagramming from art to science.

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

My new book on Model-Driven Software Engineering

Model-Driven Software Engineering in Practice. Book cover
Model-Driven Software Engineering in Practice.
See more on

I’m really proud to announce that a huge joint effort with Jordi Cabot and Manuel Wimmer has finnally reached his end. Our new book on model-driven software engineering, on which we have been working for almost one year, is finally published!

First of all, I wish to extend my thanks to my coauthors for the wonderful teamwork and to Richard Soley, OMG Chairman, who accepted to write the foreword of the book. I actually found it one of the most inspiring outlooks on the field I’ve read.

The book discusses how model-based approaches can improve the daily practice of software professionals. Model-Driven Software Engineering (MDSE) or, simply, Model-Driven Engineering (MDE) practices have proved to increase efficiency and effectiveness in software development, as demonstrated by various quantitative and qualitative studies. MDSE adoption in the software industry is foreseen to grow exponentially in the near future, e.g., due to the convergence of software development and business analysis.

The aim of this book is to provide you with an agile and flexible tool to introduce you to the MDSE world.

This allows you to quickly understand its basic principles and techniques and to choose the right set of MDSE instruments for your needs so that you can start to benefit from MDSE right away.
As such, the book is not addressing only the hard-core software modelers, but also BPM practitioners, enterprise system consultants and analysts, and so on. Indeed, the book is targeted to a diverse set of readers, spanning: professionals, CTOs, CIOs, and IT team managers that need to have a bird’s eye vision on the matter, so as to take the appropriate decisions when it comes to choosing the best development techniques for their company or team; software and business analysts, developers, or designers that expect to use MDSE for improving everyday work productivity, either by applying the basic modeling techniques and notations or by defining new domain-specific modeling languages and applying end-to-end MDSE practices in the software factory; and academic teachers and students to address undergrad and postgrad courses on MDSE.

The book is organized into two main parts.

The first part discusses the foundations of MDSE in terms of basic concepts (i.e., models and transformations), driving principles, application scenarios and current standards, like the well-known MDA initiative proposed by OMG (Object Management Group) as well as the practices on how to integrate MDSE in existing development processes.

The second part deals with the technical aspects of MDSE, spanning from the basics on when and how to build a domain-specific modeling language, to the description of Model-to-Text and Model-to-Model transformations, and the tools that support the management of MDSE projects.

In addition to the contents of the book, more resources are provided on the book’s website we are currently setting up. There you can find the detailed TOC, the sources of the examples presented in the book, and the teaching materials we will build to support training activities based on the book.

If you want to buy the Model-Driven Software Engineering in Practice book, you can find it on Amazon or on the Morgan&Claypool website (printed and electronic versions available).

If you read and like the book, we will be glad if you post a review on Amazon!

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).