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

Let’s enjoy software engineering

It took me a while before deciding to start this diary, but given that the trip has been long and it’s likely to be, I finally opted to share some of my experiences.TheMotorcycleDiaries_quad-1-500x377

Don’t expect to find enlightening findings here. I basically want to share the most hilarious and embarrassing situations I stumbled upon while teaching Software Engineering and Advanced Software Engineering at undergrad and graduate level in Politecnico di Milano.

I think you may get some good time from this diary, and at the same time I hope this will contribute to software engineering education (much alike an anti-pattern list).

So, enjoy and feel free to share your funny stories on software engineering too!

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

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

Automated Function Point (AFP) adopted as a standard by OMG

Automated Function Point analysis

I think we are all familiar with the Function Point concept, used for evaluation of the size of a software application in terms of functional features. We are all well aware of the limits of this unit of measure, to the point that it is considered rather obsolete in the software engineering community: subjectivity is the main flaw that people tend to highlight for FP analysis, despite some existing standard, mainly from ISO, tried to solve the issue. FP are currently used in industry and public administrations for issuing calls and describing complexity, but usually it is adopted only in paperworks, not by software designers and developers.
A few research activity have recently tried to bind function point analysis to model-driven engineering practices, at the purpose of automating the counting of FP starting from software models (for instance, you can look at the paper “Automating function point analysis with model driven development” presented at CASCON’06), but that remained a purely theoretical exercise, even if it was actually implemented in the WebRatio tool suite at the time.

That’s why I have been surprised when I got the news that OMG recently adopted a new standard related to Function Point analysis.
The new standard is called Automated Function Point (AFP). The initiative was led by the Consortium for IT Software Quality (CISQ) and by David Herron, coauthor of Function Point Analysis and leader of the international team that developed the standard
The Automated Function Point (AFP) was voted as an OMG specification in January 2013 through an RFC process (request for comments).
AFP provides a standard for automating the popular Function Point measure according to the counting guidelines of the International Function Point User Group.
Richard Soley commented the news as follows:

“Function-point counting has been around for ages. But function-point estimation has always been just that—estimation. […] With the new OMG Automated Function Point specification, function-point counts aren’t estimations; they’re counts—consistent from count to count, and person to person. Even more importantly, the standard is detailed enough to be automatable, i.e., it can be carried out by a program.” 

 If the standard will keep his promise, I think it can bring back the concept of function point to a level that makes it usable from actual software engineers. However, I think we will need something more than that for revitalizing the usage of FP in technical activities. In a sense, I think that trust in FP analysis has been probably irremediably lost in the software engineering community.
Do you agree / disagree with my viewpoint?

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