Sunday, June 18, 2006

MDSD is not MDA!

The primary goal of MDSD is to increase the productivity and quality of software systems. The level of abstraction represented by a DSL should be based on pragmatic assessments. MDSD unlike MDA doesn’t define dogmatic rules like "use UML" or "be 100% platform independent", but instead is pragmatically focussing on the actual problem to be solved. Why not just use model driven approaches where appropriate and learn about the different aspects over time? Model driven software development is still a field of research and it’s counterproductive to define dogmatic specifications (or standards) at this point.

Jack Greenfield, author of the book “Software Factories” stated:
"The primary stated goal of MDA is platform independence. While some insulation from platform technology changes is no doubt achievable, I do not believe it is feasible to produce secure, usable, reliable, performing and supportable software from specifications that take no platform dependencies of any kind into account. While modeling languages, like programming languages, can clearly achieve some measure of independence from the most primitive portions of the platform, such as the hardware and base operating system APIs, I have yet to see effective, repeatable, fully or partially automatic application generation across a broad range of problem
domains and system topologies from models that are totally independent of all assumptions regarding distribution, component architecture, transaction semantics, security policies and other manifestations of the platform. In fact, I question the assertion that we should try to be independent of these concerns. Even if the platform in question is a framework, a class library, or a collection of services generated from a model, complete platform independence cannot be achieved in practice without severely limiting control over key quality attributes in the generated artifacts."
(http://www.theserverside.net/common/printthread.tss?thread_id=30082)

It’s very important not to lump everything together. MDSD is based on pragmatic ideas and is well-proved. MDSD is not MDA!