Code Generation 2010: Lessons learned in building a Model Driven Software Factory

Code Generation 2010June 16th to 18th the Code Generation 2010 conference will be held in Cambridge UK. The Code Generation conference is Europe’s leading event on Code Generation and Model-Driven Software Development. The event has a strong practical focus and an emphasis on sharing experiences and knowledge. I’m glad my session proposal "Lessons learned in building a Model Driven Software Factory" has been accepted. The conference program is stuffed with interesting sessions and I think you can’t miss this event if you’re into Model Driven Software Development, Model Driven Development, Model Driven Engineering, Domain-Specific Languages, or what other name you use to say you are raising your level of abstraction.

A while back I wrote an article to explain the different types of Model Driven Engineering tools. We can distinguish DSL tools and Model Driven Software Factories. A DSL tool is used to design a DSL and to define the transformations needed to make a model expressed with that DSL executable. In principle you can build a Model Driven Software Factory using a DSL tool. A Model Driven Software Factory is a combination of one or more DSLs, the modeling tool created to use these DSLs, and the engine or transformations needed to turn the user input into a working software application.

In my session I will share my experiences with developing a successful Model Driven Software Factory. This Model Driven Development Platform is based on multiple DSLs, together describing a complete Service-Oriented Business Application. All DSLs have a graphical concrete syntax and are aimed at involving domain experts in the software development process. The platform has been used for many projects in the last five years and its user base is growing fast. I think it will be a session with some unique sneak peeks in the kitchen of a feature-rich Model Driven Development platform.

See Business Agility through Model Driven Development for a quick introduction into the ‘why’ behind this Model Driven Development platform.

Topics I will cover at Code Generation 2010 include:

  • How to design a DSL?
  • How to grow a DSL and how to handle that evolution?
  • How to generate the application? What about code generation vs. runtime virtual machines?
  • How to incorporate quality and testing in a Model Driven Software Factory?
  • How to do release planning?
  • How to create a large user base?

I think I will pretty much cover all important aspects of developing a Model Driven Software Factory. However, I can’t go into every detail. So, please use the comments below to ask your questions about the mentioned topics to guide me in selecting the right detail for each topic.

It would be very nice to meet you in my session or other sessions at Code Generation 2010. Please let me know if you have planned to go!

3 Comments Added

Join Discussion
  1. Kees Dijk May 19, 2010 | Reply

    Hi Johan,
    First as requested : "Hello".
    I will be attending CG2010 and am looking forward to learn a lot. Your talk looks very promising although the "What factors affect success or failure with MDD?" think tank at the same time also looks very interesting.
    I think your detail question is a hard one, especially since you only have 45 minutes. For all your bullet points I would love to see:
    * real world examples of how you have seen the points implemented so far.
    * Do’s and Don’ts.
    * changes made to the factory to fit the organization or changes made to the organization to fit the factory.
    More in general and not in your bullet points I would love to hear more about.
    * intake process, how do you assess that a project or even an organization is a good fit for MDD.
    * maintaining and releasing versions of the meta models, generators, templates and frameworks.
    * the community version of Mendix (wasn’t it supposed to be released already or did I miss something ?)
    Hope it helps.
    Kees Dijk.
    P.S. don’t know way the spacing of the bullet points is off so much.

  2. Johan den Haan May 19, 2010 | Reply

    Hi Kees,
    Thanks for taking the time to react! I will definitely center my talk around real-world examples. Maintenance and release management will be part of my talk too. I will look into the details of your other points during the preparation of my talk.
    Thanks again!

  3. andre July 25, 2010 | Reply


Leave a Reply