Mobile app development – Extensions for IFML modelling language, tool and code generator presented at MobiWIS

Front-end design of mobile applications is a complex and multidisciplinary task, where many perspectives intersect and the user experience must be perfectly tailored to the application objectives. However, development of mobile user interactions is still largely a manual task, which yields to high risks of errors, inconsistencies and inefficiencies.

The contribution of the AutoMobile research project (lead by WebRatio) is a model-driven approach to mobile application development based on the IFML standard by the OMG.

We recently wrote a paper on the subject, which got accepted at the MobiWIS 2014 conference, in Barcelona. In this paper we propose a model-driven approach to mobile application development based on the IFML standard. We propose an extension of the Interaction Flow Modeling Language tailored to mobile applications and we describe our implementation experience that comprises the development of automatic code generators for cross-platform mobile applications based on HTML5, CSS and JavaScript optimized for the Apache Cordova framework.

We show the approach at work on a popular mobile application, we report on the application of the approach on an industrial application development project and we provide a productivity comparison with traditional approaches.

Eric Umuhoza, affiliated with Politecnico di Milano and Ecole des Mines de Nantes, presented the paper at MobiWIS 2014 regarding the research conducted in the AutoMobile project, lead by WebRatio.

Here are the slides of the presentation:


and here is the link to the paper published by Springer:

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

Universal Modeling Languages vs. Meta-languages: the case of Wolfram Language

A nice discussion has been triggered by Jean Bézivin yesterday on Twitter, starting from this video that gives an introduction to the Wolfram Language:

Wolfram Language introduces itself as a knowledge-based programming language. I think this is a very interesting and powerful approach. However, the online discussion among us modeling people focused on understanding the positioning of such an approach within the classical modeling approaches. Main questions discussed were:

  • What kind of language is it?
  • What is its relation to domain-specific languages (DSLs)?
In summary, I think we can say that Wolfram Language can be seen as a UNIVERSAL LANGUAGE (as opposed to domain-specific), because it aims at covering ontological knowledge of the universe. Interestingly enough, this also opened a side discussion on what is an ontology, in technical and philosophical sense, with Paola Bonomo, Erik Wilde and many others.
However, for being strictly universal, the language should be able to describe itself and to describe reality states in thorough way (and Jean-Jacques Dubray was disappointed about the coverage of this aspect by Wolfram). This raised the question of whether any language should be able to describe itself. I think the final conclusion was that this is not the case. For instance, DSLs typically do not span to describing themselves. And Meinte Boersma correctly pointed out that this is not the case even for most general-purpose languages.
So probably the property of self-description is a general, independent classification dimensions of languages, as suggested by Jean Bezivin. Actually, if you think about it, actually in the metamodeling stack only the M3-level (metametamodeling) languages satisfy self-descriptivity property!
A visual summary of the Twitter discussion is reported here:



If you have any insights on the topic, feel free to share it!

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

Sneak peek at IFML 1.0 (the Interaction Flow Modeling Language) by the OMG

IFML 1.0 is almost here!

As you may know by now, the OMG standard Interaction Flow Modeling Language (IFML) is designed for expressing the content, user interaction and control behaviour of the front-end (aka view) of software applications.

And if you don’t know anything about IFML, you can just visit or have a look at this introductory presentation:

The round of refinement applied to IFML Beta 1 by the finalization task force (FTF) in OMG has been closed this week, as reported on the IFML OMG wiki.
The task force has addressed 77 issues raised by users and implementors in these months, and has compiled a new version of the IFML metamodel, UML profile, and specification document, currently labeled as Beta 2. This version is the candidate for the issuance of IFML 1.0.
Since I’ve been leading the task force efforts and I know how much improvement has been put in this new version of the language, I’m happy to share with you a preview of this new version, well before the official one will be released (tentative release date is April 2014)

A short summary of the changes is available in this presentation: Interaction Flow Modeling Language: updates on the Beta2 version – by the OMG IFML FTF.

The machine readable files are available too (metamodel, UML profile, and diagram interchange). Additional ancillary files (MagicDraw model sources, figures and so on) are available too.
Here is an example of IFML diagram you can draw with the new version. For instance, you can distinguish between throwing events (black circles) and catching events (while circles), and you have new concepts, such as «Menu».


IFML diagram example describing the UI of a mailbox, with possible actions on the messages, and event-driven on-screen notification of action results.

Related posts:

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

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

IFML on its way towards OMG standardization

The Interaction Flow Modeling Language (IFML) is now one step closer to standardization by Object Management Group (OMG). On February 18 the revised version of the IFML specification has been submitted to OMG by a consortium lead by WebRatio and comprising also Fujitsu, Model Driven Solutions, Softeam, and Thales.
The new submission has improved a lot with respect to the previous version. It now includes:

  • the MOF metamodel of IFML
  • the XMI exchange format
  • the UML profile specification for IFML
  • the Diagram Definition and Diagram Interchange specifications for IFML 
  • a set of examples of IFML models, including: an online email management system inspired by Gmail and an online bookstore site with cart and checkout management
  • examples of combined usage of IFML and UML modeling
  • a set of exemplary mappings of IFML to specific platforms, such as Java Swing, .net WPF (Windows Presentation Framework), and HTML5

IFML in a nutshell

An IFML diagram consists of one or more top-level view containers, representing UI windows or Web pages. A view container can contain view components, which denote the publication of content or interface elements for data entry (e.g., input forms). A view component can have input and output parameters. A view container and a view component can be associated with events, to denote that they support the user’s interaction. Events can trigger navigation flows and data flows.
To get the flavor of the new IFML notation, I’m sharing here a very simple example.

In the UI mockup shown here, we have a user interface with a list of artists and, upon selection of one item, the visualization of the details of the selected artist.

The corresponding IFML model is shown below: a container called Artists includes two ViewComponents, a list and a detail about artists. The navigation flow that goes from the event denoting the selection of an item of the Artist Index view component to the Artist view component (showing the selection details), has a parameter binding that associates an output parameter of the Artists Index view component with an input parameter of the Artist view component.

IFML resources

If you want sneak peek on the IFML language, you can look at the presentation we gave at Code Generation 2012
If you instead want have a look at the current state of the specification, here you can find the IFML specification document we submitted. This version is still a work in progress document and will be subject to the Architecture Board of OMG. We also look forward to comments and opinions from prospect users, adopters, and tool implementors. So, you are welcome to share your ideas! 

The IFML specification document is online on the site.

Additional information are available at and on other posts in this blog. 

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

My invited post on Modeling Social Web Apps (on

It’s with great pleasure that I announce my invited post on the blog, curated by Jordi Cabot.
First, I’m glad he invited me. Second, I’m happy that he asked for a post on Social-enabled Web application modeling.
I mean, we all see how social technologies are transforming our life. And yet, the modeling community and the software engineering community at large are paying very limited attention to this phenomenon.
That’s why I decided to address the problem by proposing a model-driven approach that is specifically focused on the development of Web applications that exploit social features, and my invited post is exactly focusing on this.
Basically, the proposal is to go from requirement specification down to static and dynamic design and to code generation of social applications with a pattern-based approach, which exploits goal-based requirement specification, UML modeling, and WebML models (enriched with social-specific primitives) for describing the user interaction. This image intuitively summarizes the idea:

You can find more details in the invited post on Social web application modeling on Jordi’s blog, and also check out the video that summarizes the approach:

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