Last week, I presented some of ICT NoviQ and ICT Solutions’ experiences we gained with Domain Specific Modeling using MetaEdit+ at the Dutch Model Driven Experience 2008 conference (most of the material on the conference web site (including presentations) is in Dutch).

Two things struck me during this conference, the first being that everybody involved in model driven software development is (still?) facing the same problems. The biggest issue is not the tooling – we all know and understand that model-to-model transformation requires different technology than model-to-code transformation. We even have (draft) standards for that. Similarly, defining languages based on EMF/GMF, UML or GOPRR requires dedicated tools, and with those tools the biggest issues faced in the technical area are (being) addressed. Even on the issue of to-generate-or-not-to-generate-100%-of-the-code consensus starts to show: 100% code generation is possible, if the domain is sufficiently well-defined. One presenter, Lex Heerink, even admitted that his project would’ve been able to generate the last 5 lines of manual code – if they had taken the time to look into it. His project, a software factory for Google’s Android, was a nice example of what can be done, even if it resembled to some extent MetaCase’s Nokia Mobile phone solution.
The biggest challenge still remains: the change in mindset and way of working – how can we convince a software engineer to create a language based on problem domain concepts rather than software engineering (solution domain) concepts? And how do we get them to work on generators, rather than the actual product code – which is a hard to explain indirection for a lot of them (and us)? These people are not technology, and thus a lot harder to mold into shape than the code we are working on.

The second thing that struck me as interesting, challenging and promising is that Intentional Software is starting to show what they are working on, this trme through a presentation by Ron Kersic of CapGemini. For a basic reference, Ron referred to a rather well-known publication of Martin Fowler from 1995, but what he showed was more advanced than Fowler’s plain text.

When working with DSLs, we love to start defining the language from the perspective of the stakeholder. As I mentioned before, if we look at it from our own perspective as software engineers, we end up with the wrong language. However, what the Intentional approach shows is that if we look at it from the user’s perspective, in a way we still end up with the wrong language. Wouldn’t it be convenient if we could switch perspectives, or language representations if you will? What Kersic showed was a demo where a mathematical formula for calculating Pi (you know, 3.1415… and so on)

is implemented in software. If we look at it from the mathematicians perspective, we see the formula, if we look at it from the software engineers perspective, we see the code. And even better: if we change something in either of those two views, the other one is updated ‘on the spot’. I wonder if, in a few years time, I’ll be pair programming with my insurance agent or a medical doctor, working on a new insurance product or treatment reporting approach…..

A lot more interesting things were told during the conference, and if there’s a new edition next year, count me in. I discovered that, outside of the people I already know and work with, there’s a lot going on in the MDSD world, even in our small corner of the world called The Netherlands. Example application domains shown at MDE 2008 included telecommunications, defence systems, insurance and pension products and lots more….