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?


A Vision towards the Cognification of Model-driven Software Engineering

Jordi Cabot, Robert Clarisó, Marco Brambilla and Sébastien Gerard submitted a visionary paper on Cognifying Model-driven Software Development to the workshop GrandMDE (Grand Challenges in Modeling) co-located with STAF 2017 in Margburg (Germany) on July 17, 2017. The paper advocates for the cross-domain fertilization of disciplines such as machine learning and artificial intelligence, behavioural analytics, social studies, cognitive science, crowdsourcing and many more, in order to help model-driven software development.
But actually, what is cognification?

Cognification is the application of knowledge to boost the performance and impact of any process.

It is recognized as one of the 12 technological forces that will shape our future. We are flooded with data, ideas, people, activities, businesses, and goals. But this flooding could even be helpful.

The thesis of our paper is that cognification will also revolution in the way software is built. In particular, we discuss the opportunities and challenges of cognifying Model-Driven Software Engineering (MDSE or MDE) tasks.

MDE has seen limited adoption in the software development industry, probably because the perception from developers’ and managers’ perspective is that its benefits do not outweigh its costs.

We believe cognification could drastically improve the benefits and reduce the costs of adopting MDSE, and thus boost its adoption.

At the practical level, cognification comprises tools that go from artificial intelligence (machine learning, deep learning, as well as human cognitive capabilities, exploited through online activities, crowdsourcing, gamification and so on.

Opportunities (and challenges) for MDE

Here is a set of MDSE tasks and tools whose benefits can be especially boosted thanks to cognification.

  • A modeling bot playing the role of virtual assistant in the modeling tasks
  • A model inferencer able to deduce a common schema behind a set of unstructured data coming from the software process
  • A code generator able to learn the style and best practices of a company
  • A real-time model reviewer able to give continuous quality feedback
  • A morphing modeling tool, able to adapt its interface at run-time
  • A semantic reasoning platform able to map modeled concepts to existing ontologies
  • A data fusion engine that is able to perform semantic integration and impact analysis of design-time models with runtime data
  • A tool for collaboration between domain experts and modeling designers

A disclaimer

Obviously, we are aware that some research initiatives aiming at cognifying specific tasks in Software Engineering exist (including some activities of ours). But what we claim here is a change in magnitude of their coverage, integration, and impact in the short-term future.

If you want to get a more detailed description, you can go through the detailed post by Jordi Cabot that reports the whole content of the paper.

Model-driven Development of User Interfaces for IoT via Domain-specific Components & Patterns

This is the summary of a joint contribution with Eric Umuhoza to ICEIS 2017 on Model-driven Development of User Interfaces for IoT via Domain-specific Components & Patterns.
Internet of Things technologies and applications are evolving and continuously gaining traction in all fields and environments, including homes, cities, services, industry and commercial enterprises. However, still many problems need to be addressed.
For instance, the IoT vision is mainly focused on the technological and infrastructure aspect, and on the management and analysis of the huge amount of generated data, while so far the development of front-end and user interfaces for IoT has not played a relevant role in research.
On the contrary, we believe that user interfaces in the IoT ecosystem they can play a key role in the acceptance of solutions by final adopters.
In this paper we present a model-driven approach to the design of IoT interfaces, by defining a specific visual design language and design patterns for IoT applications, and we show them at work. The language we propose is defined as an extension of the OMG standard language called IFML.

The slides of this talk are available online on Slideshare as usual:

Advanced Software Engineering past exam solutions

Here you find a couple of past exams.

Exam of 02-09-2013: a modeling language for defining user interfaces of mobile applications.

Description: advanced-software-eng-exam-2013-09-02

Exam of 17-09-2013: language for high level models of computer hardware architectures.

Description: advanced-software-eng-exam-2013-09-17

Pattern-Based Specification of Crowdsourcing Applications – ICWE 2014 best paper

I’m really proud to announce that our paper “Pattern-Based Specification of Crowdsourcing Applications” has received the BEST PAPER award at ICWE 2014 (International Conference on Web Engineering), held in Toulouse in July 2014. The paper was authored by Alessandro Bozzon, Marco Brambilla, Stefano Ceri, Andrea Mauri, and Riccardo Volonterio.

The work addresses the fact that in many crowd-based applications, the interaction with performers is decomposed in several tasks that, collectively, produce the desired results.
A number of emerging crowd-based applications cover very different scenarios, including opinion mining, multimedia data annotation, localised information gathering, marketing campaigns, expert response gathering, and so on.
In most of these scenarios, applications can be decomposed in tasks that collectively produce their results; Tasks interactions give rise to arbitrarily complex workflows.

In this paper we propose methods and tools for designing crowd-based workflows as interacting tasks.
We describe the modelling concepts that are useful in such framework, including typical workflow patterns, whose function is to decompose a cognitively complex task into simple interacting tasks so that the complex task is co-operatively solved.
We then discuss how workflows and patterns are managed by CrowdSearcher, a system for designing, deploying and monitoring applications on top of crowd-based systems, including social networks and crowdsourcing platforms. Tasks performed by humans consist of simple operations which apply to homogeneous objects; the complexity of aggregating and interpreting task results is embodied within the framework. We show our approach at work on a validation scenario and we report quantitative findings, which highlight the effect of workflow design on the final results.

Here are the slides presented by Alessandro Bozzon during the ICWE conference:


Here is Alessandro Bozzon presenting:

and here is the picture of the actual award:

ICWE 2014 Best Paper Award Certificate to Pattern-Based Specification of Crowdsourcing Applications. Bozzon, Brambilla, Ceri, Mauri, Volonterio

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

IFML – Interaction Flow Modeling Language 1.0 – My tutorial on UI and UX modeling & design at ICWE 2014

This year, ICWE – International Conference on Web Engineering, took place in Toulouse, France.

Given the upcoming adoption by the OMG – Object Management Group of IFML, I decided to give a tutorial on it there. IFML, the Interaction Flow Modeling Language (IFML) is designed for expressing content, user interaction and control behaviour of the front-end of software applications, as well as the binding to the persistence and business logic layers. IFML is the missing piece for modeling the front end of software applications and perfectly complements other modeling dimensions in broad system modeling projects. Therefore, IFML works best when integrated with other modeling languages in the MDA suite, such as UML and BPMN. This tutorial illustrates the basic concepts of IFML, presents the design best practices and integration with other modelling languages, and discusses some industrial experiences (also featuring quantitative measures of productivity) achieved by the companion tool WebRatio. At the end of the tutorial, attendees will get a general knowledge about IFML (they will be able to design simple models and to derive models from existing interfaces), will be able to associate front-end design with system modelling at large, will see the associated MDE tool WebRatio at work, and will get a glimpse of real-life industrial applications developed for large enterprises. This will let them appreciate the advantages of a model-driven development approach at work within large-scale industrial project.

Here are the slides of my tutorial:

And here are some pictures taken by some attendees:


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

Videos of the Webinars on IFML and its integration with BPMN and UML

Along with the effort of disseminating IFML all around the world, I also gave some online webinars on IFML (the Interaction Flow Modeling Language). If you are interested in learning the basics of the language and on its integration with BPMN and UML, together with the enabled code generation options, you may want to watch the following recordings of the webinars.

This is the last webinar, dedicated to IFML and to its use integrated with other modeling languages in the MDA suite, such as UML and BPMN. The webinar will introduce the basics of the IFML language and will demonstrate the advantages of using it together with BPMN diagrams, UML activity diagrams, sequence diagrams, and class diagrams. The tutorial shows that IFML is the missing piece for modeling the front end of software applications and perfectly complements other modeling dimensions in broad system modeling projects:

If you like, you can listen to it also in Italian (also presented by me) or in Spanish (speaker Matteo Silva).

The webinar video, only introducing IFML and the standardization experience, is available too:


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

Communicating Business Process and Software Models: Quality, Understandability, and Maintainability

For the first time, this year we organized a workshop on Communicating Business Process and Software Models: Quality, Understandability, and Maintainability (CPSM 2013). [see official web site]

Hajo Reijers giving his keynote talk at CPSM workshop
Hajo Reijers giving his keynote talk at CPSM workshop

It was held on September 23rd, 2013 at the Technical University of Eindhoven, the Netherlands in conjunction with the 29th IEEE International Conference on Software Maintenance.

The motivation of the workshop stands in the fact that, in recent years, models have become a paramount means for communication. This gained more attention in research on process modeling and software modeling. Both communities discuss issues on models, modeling languages, and their use and perception, such as model understandability, complexity of modeling
languages, actual usage of language features, cognitive aspects, human perception and subjective perspectives on models, and related topics. These aspects are extremely important for the adaption of modeling languages both for process design and software development. Furthermore, models are becoming more and more important as a communication tool across disciplines and enterprise roles. In particular understandability and readability of models is a key success factor for comprehensive modeling of enterprise practices and IT systems. This entails the possibility of modeling different perspectives of the enterprise, and yet grant coherency and integration between the models. The CPSM 2013 workshop was held as a multi-disciplinary forum for researchers and practitioners actively working on quality, usability and maintainability of software and process models. The goal of the CPSM workshop was to bring together researchers and practitioners in the area of Business Process (re)design and software maintenance, to discuss about and exchange ideas on quality, understandability and maintainability of business process models, of software models, and of the relationships between business process models, software models, and system implementation.

CPSM workshop attendees suring one discussion session
CPSM workshop attendees suring one discussion session

The event was a success, it gathered more than 15 attendees between software engineers, BPM practitioners and academics, and was a great occasion for discussion.

The organization of the event was by Irene Vanderfeesten, Dirk Fahland (both from Eindhoven University of Technology) and myself.
Some pictures of the event are reported here, while others are available on the workshop site, together with the slides of the keynotes and additional materials.

If you are interested in the event and in contributing to organizing or hosting its future editions, feel free to get in touch.

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

Need to ask your analysts what they want?

Then you have a problem!
The problem is not that they are not able to collect from customers what they wanted. Sometimes they know very well, even too much. Sometimes they deliberately (and wisely) decide not to consider some requests. The price could be to live with the complaints of customers. All this is addressed very well in a recent post by Anthony Finkelstein on not asking users what they want (and I actually mimicked his title here). But this is another issue.

The problem with your analysts is they are not able to put into proper technical “words” (meaning models and specifications) what the customers informally ask for.
To cope with this, we try to teach people appropriate modeling languages, methods, formalisms, modeling tools and analysis tools. But these are all mere attempts to reduce the misunderstandings, implicitness, incoherency, and ambiguity in human-to-human communication.
And yet, addressing these problem is paramount in any large software project. From my point of view, it also opens up interesting research issues.
IEEEThat’s why, together with Irene Vanderfeesten and Dirk Fahland, from Eindhoven University of Technology, we decided to organize a new workshop this year, the:

1st IEEE International Workshop on Communicating Business Process and Software Models. Quality, Understandability, and Maintainability
Eindhoven, the Netherlands, 23 September 2013.

The workshop will focus on model understandability, complexity of modeling languages, actual usage of language features, cognitive aspects in modeling languages, human perception and subjective perspectives on models, impact of professional roles and of cultural background on model understanding, and related issues. The workshop will be a multi-disciplinary forum for discussing about impact of models on understanding and communication between people.

Its uniqueness stands in the attempt of bringing together the business process management (BPM) and software engineering and modeling communities
This will bring great value, as most of the misunderstanding and misalignments are between requirements and design, between business and IT, between CIM and PIM modeling levels. 
If you are interesting in knowing more about the 1st IEEE International Workshop onCommunicating Business Process and Software Models – Quality, Understandability, and Maintainability, you can visit the official Web site. You are obviously welcome to join the workshop and/or submit a contribution. The deadline for submitting is set to June 21st, 2013.

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