Keynote speech on User Interaction Modeling at Modelsward 2015 in Angers

On February 10, 2015 I gave a keynote at Modelsward in Angers, France.

The speech focuses on the modeling of software UIs through graphical domain-specific languages and in particular shows the new standard adopted by OMG called IFML (Interaction Flow Modeling Language) at work. My presentation illustrates the basic concepts of IFML, presents the design best practices and integration with other modelling languages, and discusses some large-scale industrial experiences (also featuring quantitative measures of productivity) achieved through IFML and associated full code generation techniques.

The full video of my presentation (1 hour long, if you can endure it!) is available on Vimeo thanks to the Insticc service. See it here too:

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:

http://link.springer.com/chapter/10.1007/978-3-319-10359-4_15

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

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:

http://dl.acm.org/citation.cfm?id=2579991
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).

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:  http://codegeneration.net/cg2014/

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:

//www.youtube-nocookie.com/v/5u6AVYclWao?version=3&hl=en_US

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!

Model Driven Enterprise Engineering (TM)

Model Driven Enterprise Engineering (MDEE) is a concept proposed by Know Gravity, a company based in Zurich, Switzerland, that has been active in modeling and requirement engineering since 2000.

They propose a pragmatic approach to integration of OMG and non-OMG modeling specification, so as to cover all the modeling needs of the enterprise (and not only for software).
They come up with a quadrant of 4 + 1 modeling settings, as shown in this slide:

The Model Driven Enterprise Engineering framework and the mapping to the  OMG modeling languages.

The 5 scenarios are named as:

  • Strategy Model (business – what?)
  • Operational Model (business – how?)
  • IT Support Model (IT – what?)
  • Technology Model (business – how?)
  • Management Model

The focus of the approach is mainly in the first stages of design, and especially on requirement, simulation and early prototyping.
The approach is based on integrating and relating together multiple and diverse models, through the definition of a vocabulary (SBVR-based) and integrated metamodel.
It covers project management, enterprise and system document generation, functional requirements, business rules, and many more aspects.
The idea starts from the fact that using single OMG specification doesn’t make much sense, because actually many OMG business and IT specs are complementary and sometimes overlapping. Therefore there is need of alignment on meta entity level and of designing cross-model and/or cross-profile associations.
The current way they do this is to have a profile-based comprehensive modeling tool, that lets you model the various aspects and related them to each other.
In my opinion, this is not that different to the megamodeling approaches.
The good news is that they also plan to fully support IFML (the new OMG standard called Interaction Flow Modeling Language, see also my previous post on standardization here) in the framework by 2014.

Two peculiar initiatives I deem interesting are:

  • they trademarked the concept of Model Driven Enterprise Engineering!
  • they plan to write and publish a book on the topic which will be completely automatically generated out of the models, and will be produced following software engineering processes, starting from use cases, requirements, and so on!

You can find more on this at the company Web site: Know Gravity.

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

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 www.mdse-book.com).

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 www.mdse-book.com).

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