I showed the slide above
MDA offers a ‘Meta-metamodel’ abstraction (M3 level) to represent different ‘Metamodels’ (M2 level) in a standard way. I could see a lot of blank faces in the audience. I tried to reassure them saying that I had to re-read it several times myself before I understood what they were talking about. It did not seem to have helped much. I proceeded saying that ‘Models’ (M1 level) themselves are instances of the Metamodels. Then came the first question, what is a model? I gave example of a Customer class as a model and its UML representation as a metamodel. Then came the apologetic reply, what is UML? Can you give a simple example like when paying at supermarket? My reply, if you consider your shopping bill, the items on it and amount is the data (M0 level) and the objects used to represent them (like item name and price fields in database table bill) are the Metadata (M1 level), the relational database used is itself an example of Metamodel (M2 level). They still seemed apprehensive why one needed so many Meta levels.
I proceeded saying that the goal of MDA is to raise level of abstraction by enabling reuse at model level. The models are stored in common repository in a standard way. The end users will be working at a model level, with the underlying implementation generated for them automatically. No coding needed (or only minmal coding needed). I went on tell them how we were doing this at SAP as a part of the development of Composite Application Framework (CAF)
For the business applications domain we have metamodels for User interface (UI) layer, Process layer, Service and object layer. Based on this users can develop application specific Models with the underlying implementation generated for them based on the Models. While I was expecting a great applause from the audience, there was still apprehension on a lot of faces. Then came the usual down to earth question, when I use a calculator I know it works correctly can the users of MDA models be equally confident? This was a tough one, I had to agree that was the vision. The process on industrialization of services has begun but it will take some time before it becomes as mature.
Obviously explaining things without technical jargon is tough and I sure did a bad job by starting with the ‘Meta-metamodel’ level. Hopefully my next audience will be luckier.