Cook jumped right into his role as Microsoft's point man at the OMG. He has blogged judiciously about Microsoft's modeling strategy and about UML since September.
"So is UML really contradictory to DSLs? Do they really represent different philosophies? I don't think so. After all, UML is just a set of domain-specific languages. If you want to model use cases, or state transition diagrams, what other DSLs would you use?"
Cook added that "Software architecture is all about tradeoffs, and there's obviously one here. On the one hand UML is relatively standard, so that costs of implementation, documentation, training, deployment etc can be amortized across multiple installations. On the other hand, it may not match your target problem very well. There are plenty of domains that UML does not encompass. That is why the OMG has branched out into business modeling."
Moreover, Cook said:
"The UML-oriented approach to DSLs is 'profiles'-adding extra data to UML models so that they appear to target more specialized domains than the original UML definitions do. A frequent question about the DSL approach is the danger of proliferation of different approaches to the same problem, and I think that's a valid concern. On the other hand, the UML+profile approach can end up with cumbersome solutions to essentially simple problems."
Booch said "the UML standard focuses on the metamodel and less on the graphical representation." He said the fact that UML has been adapted to different verticals and that things such as Executable UML have been developed "is a mark of the maturity of UML."
Said Cook in a post Nov. 2:
For his part, Robert Wahbe, corporate vice president of Microsoft's Connected Systems Division, said Microsoft's M language and UML are not competitive but complementary because M is a textual language and UML, with its many diagrams, is more graphical. However, UML is taught in schools and developers who have worked in software modeling are more likely to be familiar with UML, leading to the user demand Microsoft has seen for the technology.
So is UML the Unwanted Modeling Language or simply one more in a series of technologies Microsoft knows it has to support and make nice with? I'd say it is way more the latter and that Microsoft is serious about interoperability.
Perhaps developers will want UML more than Microsoft anticipated. We shall see. Microsoft is famous for bringing complex things to the masses. And I think the final release of Oslo will show why.
What do you think?