Model-driven and pattern-based development

This article on TheServerSide.Net gives a good perspective about what is really happening with MDA




Comments (4)

  1. David Oliver says:

    I have to admit that I do agree with this report 100%.

    At this current moment in-time I am the principle software architect at the beginning of a very important software development for my company and I find myself dreading the thought of spending many weeks producing many UML diagrams that are pretty much worthless in the end.

  2. Scott says:

    It saddens me to see influential reports missing the point:

    "With generation-based approaches, there is little flexibility and more fuss about the generation process. When companies commit themselves 100% to code generation, there is little room for tweaking, especially when developers always have to go through their model, Zetie said."

    A central underpinning of a translation based approach is that the translation rules can – and should – be tuned to meet needs. Wanting to edit generated code makes as much sense as editing the output from a compiler.

    [It’s also sad to see authors such as yourself trumpeting this as vindication of MDA being wrong, when the book you co-author makes the point above explicitly. Guess that’s marketing…].

  3. Steve Cook says:

    Scott – I think the article is well-grounded in what people are actually doing today. Another quotation from it is:

    "By designing and coding around a particular design pattern, developers have greater flexibility to modify or diverge from generated code as they see fit and are no longer constrained to generate code simply based on an abstract model."

    Yes, of course you can tune the translation rules as well. But 100% generation will be the exception rather than the rule, for the forseeable future.

    — Steve

  4. Scott says:

    Steve, thanks for reply. Guess we’ll just need to agree to disagree:

    1) there are a significant number of companies around the world employing a translation based approach today. Granted they’re mostly in the realtime space (rather than IS) but I’ve yet to find compelling arguments as to what prevents a translation approach in IS. Experience says the reasons are more cultural than technical.

    2) While your quote may well reflect a body of opinion out there today, it again represents a misunderstanding of the approach. You don’t _need_ to modify generated code if you can modify both the input and the translation rules. It’s only prevalent because of the unfortunate bum-steer that is "round trip engineering" – a euphimism for "our tool and language isn’t complete, so you’ll have to patch the holes with another one".

    As for 100% generation, it depends on how you measure it. If it’s 100% of the entire app – including integration with all other systems in the environment – then I agree this is some way off in practice. But 100% generation of the system you’re modelling is doable – and being done today. Love or hate MDA, it’s given a corporate label to a translative approach and the economics would seem to favour it. Guess we’ll have to see – we live in interesting times…