Being a Model Citizen

I’In the space of 24 hours, Martin Fowler and Michael Platt both point to this article by Steve Cook about Microsoft’s views on MDA. This article plus Keith Short’s whitepaper and PDC presentation (slides) pretty much lay out Microsoft’s position on OMG’s MDA.

MDA is misnamed: it is not an architecture at all; it is a standardized approach to model-driven development based on abstraction of platform similarities. As promoted by the OMG, it does not address the broader issues involved in using integrated models, patterns, frameworks, and tools synergistically to support software product lines. Furthermore … the fact that the MDA is based on the use of the UML and MOF specifications restricts its usefulness even more. [Domain-Specific Modeling and Model Driven Architecture by Steve Cook, page 6]

Keith and Steve are architects in the VS.NET group, so this is straight from the horse’s mouth. Steve joined MS last year, leaving IBM where he had worked on (among other things, I’m sure) the UML 2.0 specification process. It’s interesting that someone who has worked on UML so extensively appears to have such a negative opinion of it’s direction.

Since “MDA” and “Model Driven Architecture” are registered trademarks of OMG (even though they are often used to refer to the generic approach of using models in the design process), Steve refers to Microsoft’s approach as “Domain-Specific Modeling” while Keith writes about “the idea of a family of inter-related, but individually specialized modeling languages the industry is calling domain-specific languages”. Here’s the short version of our vision / scope:

At Microsoft, we firmly believe that modeling is an increasingly important aspect of the software development process, and we will integrate support for modeling into forthcoming releases of Microsoft Visual Studio. We believe that it is essential to design modeling languages very carefully to suit the skills of their target users: we intend to delight our users by giving them an experience of modeling that is intuitive, agile, productive, and seamless. We are targeting our first modeling products at areas that we believe will give most immediate benefit to our customers. At the recent Microsoft Professional Developers’ conference, we announced modeling tools–we call them designers–that help the developer to design and deploy distributed service-oriented applications. [Domain-Specific Modeling and Model Driven Architecture by Steve Cook, page 5]

BTW, the tool we announced at PDC is code named “Whitehorse”. If you haven’t seen it, it’s described in our developer tools roadmap plus there’s a video about it on MSDN TV.

As a firm believer in UmlAsSketch approach, I’m very excited about what we’re doing in this space. It’s a very incremental approach. Whitehorse solves a very specific real-world problem while MDA is out trying to boil the ocean.

Comments:

"Whitehorse solves a very specific real-world problem while MDA is out trying to boil the ocean" This is why I am a developer using Microsoft technologies. You guys never try to boil the ocean and you don't let the "Ivory Tower crowd" tie your hands in such a way as to keep you from getting the features we need (well, at least the ones we want; some might argue that if you don't know how to use someting correctly, you shouldn't be "allowed" to use it at all. This is why UML is so dry) into our hands as quickly as you can. We should all admit that there will be major differences of opinion with regard to "best practices". That's why we don't call them "design mandates". Thanks again, nice post.