After Darren’s and Marsha’s, last but not least, we highlight today Jean Bézivin‘s keynote talk at ICMT’14: Software Modeling and the Future of Engineering. His main message, summarized in the following figure, is that MDE should be regarded as a support engineering useful to most other domain engineering fields (beyond the typical one of software engineering).
For the full details (and lot of other side reflections) book some quite time and enjoy his presentation!
FNR Pearl Chair. Head of the Software Engineering RDI Unit at LIST. Affiliate Professor at University of Luxembourg. More about me.
This is interesting, and I quite agree with it. It brings a question to my mind, though. I spend a lot of time discussing and doing research with people who claim to be concerned with representing reality, using information technologies to create computational models of their domain, and in general do what most of us would call “conceptual modelling” or even model engineering. However, many of these practitioners and researchers are not aware of the principles and ideas that underpin modelling as we usually understand it in a software engineering or MDE context; rather, they use a semantic web approach that emphasises technology (lots of RDF/XML, URIs and other implementation noise) at the expense of expressiveness. Maybe this is only my perception as an outsider to their world; I am aware that my own background is biasing me. However, after working with semantic web technologies for a while, and writing some tools that make them interoperate with conceptual modelling tools, I find that a great deal of details is necessarily lost when a conceptual model is translated to e.g. OWL or a similar techology. And, at the same time, I cannot see anything in the semantic web approach that cannot be doable with our good old software engineering approach. Again, I am aware that my views may be biased by my background, but this is my experience.
So my question is, when we (or Jean, to be precise) say that model engineering and MDE should be a supporting infrastructure for many other domain engineering areas, how specific are we? Are we speaking of model engineering in a strict sense, that excludes “parallel” approaches such as the semantic web ones that I described, or are we speaking in a wider sense that includes these other approaches?
Depending on the answer, I would argue that more or less domains are supported as of today. For example, some domains in the social sciences (and even humanities) are acceptably supported by semantic web technologies, and the trend is clearly increasing.
I am happy to discuss. Thank you!
Dear Cesar,
My point was to separate the nature of the technology (Model Engineering) from the various applications of this technology (Model Driven Engineering). This allows a clearer discussion. In particular MDE is the place to discuss the common ways to apply ME to various domain engineering fields like electrical engineering, financial engineering, biological engineering, … and also software engineering.
Now for the ME technology itself there are, as you point out, several variants of it. This is an independent and interesting discussion. We can see the following support engineering fields as possible flavors of ME:
EMF engineering
Petri Net engineering
Statecharts engineering
State Diagram engineering
UML engineering
XML engineering
Semantic Web Engineering
RDF engineering
Grammar engineering (Grammarware)
etc.
This is the loose definition of ME. Each of these ME support engineering fields may be used for MDE, with advantages and drawbacks. Also we may propose several classifications of these variants of ME. One possible classification is the following:
Tree based (Syntax trees, XML trees, …)
Graph based (directed, non-directed, labelled, etc.)
Hypergraph based
…
Another interesting classification axis is related to the level of Metamodeling of the solution. It follows the kind of metamodel (or schema, or grammar, or ontology, …) used in the solution:
No metamodel
Implicit metamodel
Explicit unique metamodel
Explicit multiple metamodels
For example UML engineering is based on an “explicit unique metamodel”. XML engineering or EMF engineering may be considered as an “explicit multiple metamodel” ME solution.
There are other possible classification axes for these ME solutions. But another interesting property of all these solutions is that they are composed of four main parts:
Metamodel engineering
Model Repository engineering
Model Transformation engineering
Visual Rendering and Acquisition engineering
Hope this may help to clarify the discussion,
Jean
Dear Jean,
Many thanks for the clarification. After reading your answer and having a second look at your slides, everything becomes clearer. I especially agree with your call to stop building tools for software engineers and start looking beyond software to the wider engineering fields.
I often think along similar ways when discussing situational method engineering: despite the fact that it appeared in the context of software methodologies, it is not related to software at all, and can be equally applied to methodologies any field regardless of its domain.
Exciting work. Thank you!
Regards,
Cesar.