6 questions to Maarten Steen, experienced researcher in the field of Model Driven Engineering
Recently I visited the second Dutch Model Driven Experience symposium, organized by Maarten Steen. It was interesting to meet other people in the field and to share experiences in the field of Model-Driven Architecture, Model-Driven Engineering, Domain-Specific Language design, Model-Driven Software Factories, and most important experiences with Model-Driven approaches in real-life projects. I thought it would be interesting to ask Maarten Steen to share some of his views and years of experience in the field. So, without further ado, six question to Maarten Steen:
Can you please introduce yourself?
Of course and thanks for the opportunity to present myself to your audience. You have a very interesting blog that I’ve been following for about a year now.
Like yourself I’m Dutch and based in the Netherlands. However, I have also lived in England and France, and I do not exclude the possibility to eventually settle in Portugal. I am married and have two small children. We are soon to set off again in our mobile home to travel through Europe like nomads as we do every summer.
I work as a researcher and consultant at Novay, the former Telematics Institute. Novay is an independent, non-profit institute for ICT-based innovation. We help organisations to innovate their products and services or the way they work by using ICT as an enabler. As a researcher and consultant I get the best of both worlds: I can both work together with researchers at universities to advance the state of the art, and I can directly work with enterprises to advise them on how to employ these novel ideas in their organisation.
In addition I try to be active in both the national and international MDD communities. At a national level I organise the annual Model Driven Experience symposium and I moderate the associated online community of practice. At an international level I am on the steering committee of the International IEEE Enterprise Computing Conference (EDOC) and have hosted this conference once in the past.
For more details, see:
Can you tell something about your research in the field of Model Driven Development?
I first encountered UML, OCL and the idea of model transformation when I was doing my PhD in England at the University of Kent at Canterbury. My own PhD research was about reconciling different formal specifications of distributed systems, which required a kind of horizontal transformation. In addition, I had the opportunity to discuss modelling issues with David Akehurst (developer of the Kent Modelling Framework and SiTra, a Java framework for Simple Transformations) and Stuart Kent (currently responsible for the Microsoft DSL tools). Mind you, this was still before the MDA initiative was launched by OMG!
Then when I first joined Novay in 1999, I worked mainly on methods, techniques and tools for conceptual modelling in various domains, such as networked enterprises, inter-organizational business processes, enterprise architecture and service-oriented architectures (SOA). So, I guess you could say that I have been researching some form of model-driven engineering (MDE) for over 10 years now.
The most concrete steps I have been able to make in de recently finished A-Muse project, where we developed a method, several DSLs and supporting tools for model-driven development of context-aware mobile services. Amongst many other lines of research, we test-drove the idea of platform-independence: is it really possible to generate PSMs and code for two different platforms – J2ME and .NET Compact Framework in our case – from a single PIM? The answer was: yes, but it ain’t easy. As a side-effect we gained a lot of experience with QVT, the new model-to-model transformation standard, which we published as a kind of design patterns for model transformations. Another interesting experiment was to develop a graphical modeller and code generator for Google’s Android platform using Eclipse EMF, GMF and xPand. Through this work, I got very excited about recent developments in Eclipse-based tooling for MDD (EMF, GMF, M2M, M2T). It’s getting so much easier now to create the tools that you need.
My current research is focussing on applying MD-techniques in specific domains. In the VESTA project, for example, we are investigating how to model, analyse, simulate and visualise processes and scenarios for public order and safety. The idea is to use model transformations to link the various modelling, analysis and visualization tools used in the project.
What future plans does Novay have in the field of Model Driven Development?
Novay stands for networked innovation. We enable organisations to join forces and innovate together using ICT. The Model Driven Experience symposium is one example where we bring together organisations to exchange their experiences with MDD in order to inspire each other. And we intend to continue this highly successful symposium series in future years.
In addition, we are working on new projects where MD technology plays an enabling role. For example, we are currently investigating the feasibility of a project on combining business rules, business processes, services and objects in the development of enterprise systems.
What do you see as the most important research gaps in the field of Model Driven Development?
First of all, there is still a considerable gap between the state of the art and the state of practice in MDD. Practitioners rarely go beyond straightforward code generation from UML or DSL models. As a consequence these models are rarely platform-independent. MDD is mainly positioned as a method for increasing developer productivity, whereas it can be used also to get rid of the always problematic business – IT gap. Our efforts should be focussed on raising the level of abstraction at which models are made and used.
For me the most important research issues are related to this question: how to make MDE more practical? What should an MD development process look like? Which models should be made? In which order? How do we know they are consistent? How do we deal with changes? How do we manage and version models? And one issue I am particularly interested in myself is how to employ model transformation technology to relate and synchronize models from different viewpoints.
You recently organized the second Model Driven Experience conference, did you see emerging trends?
There was a lot of consensus on the advantages and pitfalls of MDD. Almost everyone agrees that MDD reduces development time and costs, increases software quality, increases maintainability and improves communication between stakeholders. On the other hand, it is generally acknowledged that MDD requires changes in culture, process, roles and skills, and that these changes cause resistance. Some also mention that MDD reduces flexibility and introduces new integration problems.
When we organised the symposium for the first time last year, most of the presentations were on experiments and small pilots with MDD. This year the presented initiatives seemed to be much more mature. Several Dutch companies, such as Sligro Food Group, ASR, Ordina, and Capgemini BAS, have a operational model-driven software factory, and others, such as ASML and Philips Healthcare, are using MDD in the development of critical software components.
Another noticeable development is that UML is hardly used anymore for modelling; almost all MDD initiatives now use some kind of DSL.
Do you have some advice for the community about how to spread the message of Model Driven Development?
One of the interesting conclusions of the discussion panel at the end of the Model Driven Experience 2009 was that most resistance against MDD comes from within the IT departments, not from the business. Business managers are easily convinced by the usual arguments of lower development and maintenance costs, better and more consistent software quality and reduced time-to-market. The software developers themselves however are often sceptic that their work can be automated. They also may feel that they loose control over the development process and the produced code.
Organisations that adopt MDD should address these fears. Switching to MDD requires a cultural change both at the business and the IT side. The business people should start feeling responsible for modelling the application domain and the required functionality. They also should learn how to work according to a structured development process. The IT people, on the other hand, should focus on generic solutions, reference architectures and the transformation to specific platform technology, and no longer feel responsible for the business analysis and application design. As with any cultural change, this won’t happen overnight.
As a community we should collect and disseminate the increasing number of success stories to make people more aware of the advantages and implications of model-driven architecture and development.