Vincent Oostindië's Up-to-database from Ordina was about databases and how you could develop them using the same practices as you use for coding. How do you put them in source control, automatically build and test them, use continuous integration, migrate changes etc etc. He knew his stuff very well and discussed the current status of open source tools in this area. I won’t be using this soon, but it’s good to know that it can be done easily nowadays.
Mark van Holsteijn's Hoe overleef ik een code review? talked about code reviews and code quality. As a lecturer this is of course a subject close to me. He discussed his experiences reviewing code and how to define metrics and how to use them. We also conducted a quick code review on two pieces of code. One good and one bad as it turned out, both could have been written by students ;-) The good code turned out to be sourcecode of Tomcat, the other one was anonimized. Mark provided some pointers to literature, metrics and tooling.
The “graveyard shift” was done by Jos Warmer from Ordina. After the talk titled “Pragmatic MDA: Domain Specific Languages with Eclipse” I was totally confused. I had expected something about MDA with PIMs and PSMs like Remco Poelarends of ICT Embedded explained us some time ago. Instead Jos Warmer discussed the entire openArchitectureWare tooling suite (including xText) for building DSL’s. This al sounded very abstract, meta level stuff, not nearly as concrete as the second talk about xText. While answering questions however, it turned out that Ordina is using DSL’s in their software factories and that they are using them for code generation. Ordina has 18 months experience using DSL’s in their .Net factory (having built 4) and they are finishing their first one in Java. It gives Ordina some 20% saving on time per function point and a standardized way of working.
Luckily I had a chance to discuss my confusion with Meinte Boersma afterwards. He helped me cut away some of the smokescreen. As I understood it:
1) MDA is the term as used by OMG. This approach includes UML modeling and the PIM/PSM approach Remco Poelarends talked about. The tool Entreprise Architect belongs to this approach.
2) There is a movement of people who think the OMG-approach doesn’t really work, they have coined the term “Pragmatic MDA”. That includes about anything where some sort of modeling and code generation is involved.
3) The “MDA with DSL” approach is to a) first create a DSL, then to b) model something textual or graphical using the DSL, and then to c) generate code from your model.
4) The earlier example of the contract with the electricity company created a DSL that a business person of the electicity company could use to model his business rules.
5) Ordina has modelled their specific domain which is software development. Ordina has created DSL’s based upon their reference architectures to support their developers. A developer could (for example) have a DSL for the task of modeling a business domain. After using this DSL the developer can generate the domain code. This is not a standardized available approach to software development but is proprietary by Ordina.
I understand a bit more about this subject now but I don’t see our students working with this stuff right yet. When the opportunity presents itself to see the Microsoft side of this (Avenade has a lecture) I will look into that too. But then I’ll give a rest for a while.
Concluding I can say it was a good day. I wouldn’t want to trade it with the two ladies on the train who went to Deepak Chopra’s “enlightenment of the soul” (or something like that).