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.

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

Social Informatics workshop: Social networking at work with human factors and technical platforms in mind

Today I’m attending an extremely interesting workshop on Social Informatics at University of Trento. The workshop gathers a diverse audience spanning from computer science to cognitive science and health.
The program of the day included the following presentations:

Supporting Social Interactions for Older Adults. Cristhian Parra, University of Trento, Italy
This talk focused on ways for encouraging social sharing and interactions between elders, and on which could be the fields where elders could provide and get higher benefits in online socialization.

Active Lifestyle applications and motivation instruments. Patricia Silveira, University of Trento, Italy
This talk discussed the role of serious games in preserving elders physical and mental functions and health.

Towards a crowdsourcing platform for elders. Pavel Kucherbaev, University of Trento, Italy. Neocogita S.r.l. – UNITN Spin-off in Cognitive Training. Nicola De Pisapia, University of Trento, Italy
This talk focused on understanding which are the cognitive capabilities that need to be continuously trained and maintained, also through games.
 Experience sharing: LiquidGalleries and ComeAlong. Beatrice Valeri, University of Trento, Italy
This talk presented two interesting experiences of sharing: LiquidGalleries is a flexible and social mobile app that allows a personalized and delocalized experience when visiting art exhibitions and museums. People can tag preferred art pieces in advance, get content on the fly, or tag pieces while visiting and sharing them or reading about them later at home.

Knowledge Spaces: Supporting Knowledge and Experience Sharing. Marcos Baez, University of Trento, Italy
This talk presented a set of methodological guidelines for defining experience sharing applications and showed them at work within the scenario of scientific publication sharing.

Sensing social interactions through smart phones. Aleksandar Matic, University of Trento and Create-net, Italy
This talk presented some techniques for detecting social activities in real world considering physical proximity, based on smart phone technologies (as opposed to dedicated hw used in other projects).

Civic Media Platforms. Maurizio Teli and Stefano De Paoli, ahref Foundation (Trento), Italy
The talk focused on platforms that aim at increasing the citizen participation to a common good target in local or government communities or activities, including also citizen journalism. The addressed problem is how to build a social community in this scenario, considering also possible biases (political or social) added. An example is the Timu platfom, focusing on storytelling.

BPM4Crowd.  Stefano Tranquilini, University of Trento, ItalyThis presentation suggests some basic technical support to the development of social applications. The idea is to provide a high-level abstraction access to the developer, so as to ease the development of applications. This is demonstrated with an online dating application implemented within a social network.
Convergence of social networking, search and business processes. Marco Brambilla, Politecnico di Milano, Italy
This was my talk and included an overview on Social BPM and CrowdSearch. I will post some slides very soon.

 Recommending content for basic and high education. Rosa Alarcon, Pontificia Universidad Catolica de Chile, Chile
This talk was about understanding the information overload in the educational market.
Existing content repositories for elearning are not sufficient. The standard ways for describing them (e.g., SCORM) are quite poor too.
They try to apply recommendation techniques for teachers and they end up with some initial results, including the fact that surprisingly teachers should not be clustered based on their specialization.

Interactive Experiences for supporting elderly or impaired young people. Paolo Massa, FBK, I3, Italy
This talk was about a few experiences on  applying technological tools for facilitating tasks and socialization of autistic boys and people with mental disorders.
Other activities are about biases in translation and editing on the web, especially on public sites like wikipedia (e.g., see http://manypedia.com or the wikitrip project), considering gender and political problems.

Credibility evaluation of Web content. Adam Wierzbicki, Polish-Japanese Institute of Information Technology, Poland
This speech presented an interesting corpus of Web credibility assessment. The assessment is done by asking people to assess credibility and cleanness of pages.
Game theory has been used also for classifying credibility. This research is a joint work with some Swiss institutes, including EPFL.
The talk also addressed the roles of wikipedia. It’s not just an encyclopedia, its a knowledge community, a collaborative innovation network, a community of prosumers, a model for the knowledge economy. But information about it is limited and social behaviours are critical (the environment is getting more and more unpleasant and closed). Overall, it cannot be defined a social centric platform.
Finally, the speech focused on serious social games for elders to motivate social interaction. A good paradigm is gaming based on gossiping because it grants trust, social norms, and ties.

Other speeches I could not attend included:

  • Cheating in online games / trust and reputation. Stefano De Paoli, ahref Foundation (Trento), Italy
  • Reseval Mash. Muhammad Imran, University of Trento, Italy
  • Social Processes over Social Networks. Juan Jose Jara, University of Trento, Italy
  • Discovery of composition knowledge for mashup development, process mining and BPM (BI). Carlos Rodriguez, University of Trento, Italy
  • Social Search and recommendation engine for scientific publications. Daniil Mirilenka, University of Trento, Italy
  • Overview of DALi project. Christopher Raphael Wilkinson, University of Trento, Italy

This was a great and multi-disciplinary experience, very well in line with our research project Search Computing, Cubrik, and BPM4People.

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