Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Why did MDE Miss the Boat?

Why did MDE Miss the Boat?

This item in japanese

The activity and interest focused on programming languages seem to be reaching new highs every month. Whether it is the rise of Javascript or Python, the launch of Dart, or the rebirth of Objective-C, and the specification of "executable UML", it seems that tthe industry is ready for a new programming language. There is even an effort to create a language, Grace,  that will make it easier to teach programming. InfoQ attended the COOMP workshop this week, which part of the SPLASH 2011 conference.

The workshop aimed at understanding why "Languages for modeling and programming are diverging". The organizers of the workshop noted in their introduction:

  • On one hand developers who would like to apply OO design to obtain a suitable model end up with the challenge of maintaining both model and program artifacts. And, since many modeling languages are at the same level of abstraction as programming languages, there is little benefit to using a separate modeling language.
  • On the other hand we see that much OO code is written by developers with little appreciation of OO design and development disciplines, leading to complex code that is difficult to understand and maintain as the concepts and phenomena of the application domain are not properly reflected in the code.

During the workshop, Jean Bezivin presented his views on "Why MDE missed the boat?". He argued that if we measure success in terms of adoption by the industry and the start of large modeling projects, MDE has reached a standstill. He does not think this is the end of MDE: he showed that even though Object-Orientation can be traced to SIMULA which was invented in the late 60s, it is not until 1986, with the first OOPSLA conference, that OO reached main stream interest and adoption, 3 years after the first OO killer app was produced by Tom Love, when he replaced 10,000 lines of code by 220 lines of Object-Oriented code.

Jean notes several reasons for MDE's missed opportunity:

  • There has not been any killer application that produces measurable and reproducible evidence that MDE provides at least an order of magnitude improvement over previous solutions
  • There are too many definitions and camps (MDD, MDSD, MDA, MDE, MDSE, MBD,...)
  • There is still a lot of confusion about what MDE is, for instance, between Simulation and MDE, two very different branches of software engineering
  • UML, which is often use as a foundation to modeling, is a loosely defined langugage, built by industrial consensus, with poor modularity principles, too big, too complex, changes too often,...
  • There is a lack of focus: if MDE is the solution, then what is the problem?
  • Execution vs Precision: precision is not always obtained through execution, and MDE does not always aim at creating executable models
  • There is a confusion between programming and modeling that emerged in the 90s when visual programming languages appeared
  • MDE is often perceived as adding complexity: Metamodels are often too large, there are too many, and their relationships and alignment are poorly understood
  • MDE lacks modularity, which was not solved by the introduction of packages and profiles in UML
  • MDE lacks portability: there are no serious results on portability of models in time and space (a model produced 10 years ago, may not be exploitable today)
  • XMI was a failure, it will eventually disappear, creating a maintenance problem for UML
  • The notion of a platform model was never taken seriously, and the CIM/PIM/PSM was a false good idea
  • MDE focused too much on the model of code, and not enough on the model of data
  • MDE focused too much on solution models and not enough on problem models
  • MDE focused too much on Information System models and not enough on Business Models
  • MDE focused too much on modeling in the small and not enough in the large

Jean summarized:

The MDE temporary failure is mainly due to

  • UML, the main problem
  • Confusing modeling and programming languages
  • No definition / evaluation of executable modeling
  • Too many camps

Jean also argued that we learned a lot in the last 20 years:

  • We went from a "unified method" to a unified language.
  • MDA clearly established the notion and the importance of models.
  • MDE is the best solution for the separation and integration of various aspects of information systems with the help of typed graphs
  • DSLs are ubiquitous
  • MDE applied to many IT fields not just software engineering: data engineering, system engineering, business engineering

Jean noted that with the emergence of mobile devices, the number of application end-users is growing rapidly and the number of developers will not be able to match the need for building applications in the coming years.

In his conclusion he argued that between the Semantic Web and the nenewed compiling techniques, MDE has disappeared. Only traces remain: DSLs (based on grammarware and XMLware technologies) and UML for blueprints and documentation.

During his presentation he raised also an important question: with for instance Javascript, Dart and GWT, are we starting to build programming languages that are not necessarily languages you program into, but languages that you generate to?

Do you agree with Jean? Where do you see the future of software engineering? deeply embedded in the new kids on the programming language block? or is a generation of model driven engineering about to emerge and change software engineering was we know it?

Rate this Article