Modeling, Modeling, Modeling: From Web to Enterprise to Crowd to Social

This is our perspective on the world: it’s all about modeling. 

So, why is it that model-driven engineering is not taking over the whole technological and social eco-system?

Let me make the case that it is.

A Comprehensive Guide Through the Italian Database Research Over the Last 25 YearsIn the occasion of the 25th edition of the Italian Symposium of Database Systems (SEBD 2017) we (Stefano Ceri and I) have been asked to write a retrospective on the last years of database and systems research from our perspective, published in a dedicated volume by Springer. After some brainstorming, we agreed that it all boils down to this: modeling, modeling, modeling.

Long time ago, in the past century, the International DB Research Community used to meet for assessing new research directions, starting the meetings with 2-minutes gong shows  to tell each one’s opinion and influencing follow-up discussion. Bruce Lindsay from IBM had just been quoted for his message:

There are 3 important things in data management: performance, performance, performance.

Stefano Ceri had a chance to speak out immediately after and to give a syntactically similar but semantically orthogonal message:

There are 3 important things in data management: modeling, modeling, modeling.

Data management is continuously evolving for serving the needs of an increasingly connected society. New challenges apply not only to systems and technology, but also to the models and abstractions for capturing new application requirements.

In our retrospective paper, we describe several models and abstractions which have been progressively designed to capture new forms of data-centered interactions in the last twenty five years – a period of huge changes due to the spreading of web-based applications and the increasingly relevant role of social interactions.

We initially focus on Web-based applications for individuals, then discuss applications among enterprises, and this is all about WebML and IFML; then we discuss how these applications may include rankings which are computed using services or using crowds, and this is related to our work on crowdsourcing (liquid query and crowdsearcher tool); we conclude with hints to a recent research discussing how social sources can be used for capturing emerging knowledge (the social knowledge extractor perspective and tooling).


All in all, modeling as a cognitive tool is all around us, and is growing in terms of potential impact thanks to formal cognification.

It’s also true that model-driven engineering is not necessarily the tool of choice for this to happen. Why? As technician, we always tend to blame the customer for not understanding our product. But maybe we should look into ourselves and the kind of tools (conceptual and technical) the MDE community is offering. I’m pretty sure we could find plenty of space for improvement.

Any idea on how to do this?


No, MDE is not Engineering!

Following up on my previous post on the actual “Engineering” contribution of Model Driven Engineering, here is the final result of the 2-day poll posted on twitter:

While this is definitely not a statistically significant benchmark, I think it’s a significant insight on the field and on how ourselves (MDE practitioners and researchers) see the field.
Basically, there is absolutely no agreement and common understanding!!

On the question on whether MDE is a sound engineering discipline, one third of responders said yes, one third said no, and one third is not sure. Perfectly even distribution!

In summary, if you don’t count uncertainty, here is what we collected:

No, MDE is NOT Engineering!

Anyone wants to comment on this?

You can also go through the discussion between Lionel Briand, Paola Inverardi and Manfred Broy on MDE maturity in my previous post about the panel at ModelsWard 2016.

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

Video of the Interview with Richard Soley (OMG) on IFML and user interaction modelling

Here is a short clip of the interview regarding the Interaction Flow Modeling Language (IFML) recorded in March 2015, in occasion of the release of IFML 1.0.
In the interview we discuss with Richard Soley about the relevance of user interaction modelling, the way it can be integrated with broader modelling projects, and the impact it has on overall design effort of software systems. Emanuele Molteni also discusses some success stories in the application of IFML in large-scale industrial projects in the US, by means of the WebRatio tool.
To keep updated on my activities you can subscribe to the RSS feed of my blog or follow my twitter account (@MarcoBrambi).

The Cloud meets Model-Driven Engineering

Cloud computing is enormously promising in terms of providing scalable and elastic infrastructure for software applications, as well as innovative business opportunities.

However, its complexity (both in terms of understanding and adoption) is often underestimated.
That’s why Model-Driven Engineering (MDE), whose focus is to elevate conceptual models to first class artefacts of the software development process, can come at hand also for addressing software issues on the cloud.
MDE is enormously promising in terms of automating tedious or error prone parts of systems engineering. There is a huge potential in identifying synergies between MDE and cloud computing; this is the focus of the workshop CloudMDE 2014. This year, the MODELS conference will host the second edition of the workshop, in Valencia (Spain), on September 30, 2014.
Here are a couple of excerpts from the workshop call.

Model Driven Engineering (MDE) features powerful tools, including for constructing models and managing them (e.g., via transformation, code generation, merging), though numerous challenges and difficulties arrive in adopting and deploying the tools. MDE principles, practices and tools are also becoming more widely used in industrial scenarios. Many of these scenarios are traditional IT development (e.g., focusing on code generation), and emphasis on novel or evolving deployment platforms has yet to be seen.

Cloud computing is a computational model in which applications, data, and IT resources are provided as services to users over the Internet. Cloud computing exploits distributed computers to proxvide on-demand resources and services over a network (usually the Internet) with the scale and reliability of a data centre. There are different types of clouds; organizations can provide hardware for clouds internally (internal clouds), or a third party can provide it externally (hosted clouds). A cloud might be restricted to a single organization or group (private clouds), available to the general public over the Internet (public clouds), or shared by multiple groups or organizations (hybrid clouds).

Let’s put them together! A nice example of this is the brand new cloud implementation of WebRatio.

All the papers presented at the workshop are available online as CEUR-WS proceedings at:

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

Mobile, Cloud, BPM through MDD for fostering the business. Presentation at SMAU 2013

Yesterday, together with Matteo Sassi from WebRatio, I gave a seminar at SMAU 2013 on applying model-driven engineering solutions to Mobile, Cloud, and BPM technologies for fostering the business.
The main message is that MDD and MDE can dramatically increase efficiency, flexibility and effectiveness of the enterprise by letting it address better the needs of the customers.
The presentation I gave is reported here below (in Italian).

Here is the setting of the presentation, with Matteo Sassi doing the demonstration of the WebRatio tool for BPMN and IFML modeling, quick prototyping and deployment on the cloud.
 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).

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

Reason and meaning of (top) models

Photo of a top model girl

After a semester in teaching model driven software engineering in my Advanced Software Engineering course at Politecnico, I feel the urgency of echoing once again a few words about the reason of models, inspired also from some content in our last book on Model-driven Software Development, or MDSE (see more here or on

By the way, don’t mind the girl picture now, we will come back to her later.. by now, you (and my students) can just consider her as attention-catching trick.

My main point is that you cannot avoid modeling.
The human mind inadvertently and continuously re-works reality by applying cognitive processes that alter the subjective perception of it. Humans generate a mental representation of the reality which is at the same time able to:

  •  generalize specific features of real objects (generalization);
  • classify the objects into coherent clusters (classification);
  •  aggregate objects into more complex ones (aggregation).

These represent natural behaviors that the human mind is natively able to perform (babies start performing these processes since they are a few months old) and that are performed by people in their everyday life. This process is known as abstraction, also widely applied in science and technology, where it is often referred to as modeling.

So, we can informally define a model as a simplified or partial representation of reality, defined in order to accomplish a task or to reach an agreement on a topic. Therefore, by definition, a model will never describe reality in its entirety.

And here we are to our nice girl in the picture. She actually is a “model” (actually, a top model). She is not reality. She is an idealized representation of reality, incarnating beauty, grace, desire or whatever feature you want to name, which is instrumental to some purpose (in this case, to show and sell clothes). You will not see all the aspects of her life. You only see her as a partial abstraction of the concept of “desirable girl”.

If we want to go back to more “serious” usages, models have been and are of central importance in many scientific contexts. Just think about physics or chemistry: the billiard ball model of a gas or the Bohr model of the atom are probably unacceptable simplifications of reality from many points of view, but at the same time have been paramount for understanding the basics of the field; the uniform motion model in physics is something that will never be accomplished in the real world, but is extremely useful for teaching purposes and as a basis for subsequent, more complex theories. Mathematics and other formal descriptions have been extremely useful in all fields for modeling and building upon models.
Modeling has been proven very effective at description and powerful at prediction.

A huge branch of philosophy of science itself is based on models. Thinking about models at the abstract and philosophical level raises questions in semantics (i.e., the representational function performed by models), ontology (i.e., the kind of things that models are), epistemology (i.e., how to learn through or from models) and philosophy.

In many senses, also considering that it is recognized that observer and observations alter the reality itself, at a philosophical level one can agree that “everything is a model”, since nothing can be processed by the human mind without being “modeled”.

Therefore, it’s not surprising that models have become crucial also in technical fields such as mechanics, civil engineering, and ultimately in computer science and computer engineering.
Within production processes, modeling allows us to investigate, verify, document, and discuss properties of products before they are actually produced. In many cases, models are even used for directly automating the production of goods.

That’s why discussion about whether modeling is good or bad is not really appropriate. As I said at the beginning, we all and always create a mental model of reality. This is even more appropriate when dealing with objects or systems that need to be developed: in this case, the developer must have in mind a model for his objective.

The model always exists, the only option designers have is about its form: it may be mental (existing only in the designers’ heads) or explicit. In other words, the designer can decide whether to dedicate effort to realizing an explicit representation of the model or to keep it within her/his own mind.

Model-driven Software Engineering in Practice (MDSE)

I find this discussion intriguing and profoundly motivating for neophytes. You can read more on this and on the purpose of modeling in the book Model-driven Software Development in Practice written by Jordi Cabot, Manuel Wimmer and myself (see more here and on

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