While initial reviews of Bill Gates’ final Microsoft keynote in his chief architect role were rather underwhelming, partner in crime Jack Vaughan caught one interesting detail that was latched onto by Michael Meehan this week: that Microsoft’s forthcoming Microsoft SOA strategy would indeed embrace UML as its core modeling language.
Previously, Microsoft had been noncommittal and was promoting the idea of Domain Specific Languages (DSLs) as replacement for UML. The backdrop to all this is that, while UML received practically universal vendor support when it was proposed a decade ago, version 2.0 took UML down a much weightier, more controversial path. That is, while the first version modeled the logical structure of a software application, UML 2.0 added artifacts relating to how an application is deployed at runtime. Or as IBM Rational distinguished engineer (and UML 2.0 task force co-lead) Bran Selic explained in a Computerworld article back in 2004, “The other one that I would single out as being a major influence is the ability to model very large heterogeneous systems so that one could describe the architectures of these systems quite succinctly.”
The result was that some UML 1.x stalwarts felt that the language had grown too complex and veered away from the spirit of earlier versions, which didn’t factor physical architectures. Dissidents either searched for alternate, lighter weight ways of modeling an application or simply stuck to the diagrams contained in UML 1.2, which largely remained intact as a subset of 2.0.
Ironically, Microsoft was one of the very parties that signed off on UML 1.0, and shortly thereafter opened a partnership with Rational that bundled a lite version of Rational ROSE that included a couple basic UML diagrams; it later developed its own tool that supported more UML 1.2 diagrams when it released Visual Studio.NET in 2002 (later that year, it passed up the idea of acquiring Rational, clearing the way for IBM).
Fast forward several years to Microsoft’s ramp up of team development with Visual Studio Team System (VSTS), and UML was MIA. At the time, Microsoft stated it preferred lighter alternative, which is when it began mentioning the idea of using DSLs. But as Team System took several years to evolve (and initially focused more on testing), the need for modeling wasn’t critical. But with disclosure last year of Oslo, Microsoft’s future product strategy for model-driven, service-oriented development, it had to plant its stake in the sand as to what modeling language(s) would get supported.
Last week at TechEd, Microsoft committed to releasing a community technology preview of three Oslo pillars: development tools, repository, and a new declarative modeling language that Mary Jo Foley has reported is code named “D.” So, what to make of Gates’ commitment (probably his last Microsoft product decision) to UML?
Our take is that Microsoft is pursuing a dual-pronged strategy: so-called D will be a higher level modeling language that would be its own “better” answer to BPMN, which would be targeted at business analysts, while UML is for developers working on how to represent business processes in software programmatically.