Sunday, June 04, 2006

Does Microsoft care about UML?

I recently stumbled upon a posting from Roy Osherove - Q&A: Microsoft, UML and Software Factories. I'm going to take out some snippets and comment on these:

Microsoft have sort of adapted an easy to use and understand version of the UML. They took the basic idea of shapes and arrows and made it work on the level of a specific domain which is in turn used in a Software Factory.

This is actually the first point where I definitely see some problems - one of the goals of UML was to provide a standard for modelling software. Creating your own version of it, seems to defeat the purpose of having a standard. I recently read an interview with Jim Rumbaugh about it - Rumbaugh was one of the "Three Amigos", stating:

Q: Microsoft is not really supporting UML. Theyve told me they dont see that much demand for it. What kind of problems does that present?
A: Well see if theyre really on board or not. Theyre supporting it in some ways, too. They seem to cover all bets. I bet if they find [that] enough people want it, theyll come around eventually, if they cant beat people into doing it their way. But again, a lot of people seem to think UML is useful. And just because Microsoft says something else, [that] doesnt mean its not going to happen. They havent managed to have it their way in every possible area, thats for sure.


Next comes this statement from Roy Osherove:

In projects where you are forced to write so much documentation and use cases using UML it usually turns out to be a very complicated set of design docs that developers have trouble reading. When they finally get to reading the whole thing its usually way out of date anyway and one has to talk to the man who actually wrote the thing. See? *Communication* always wins.
This is not a statement about the merits of UML but it says something about the way you organise your project - I think that UML provides a bridge between your business analysts and your technical architects. It is vital that these two have some common grounds where they can discuss things clearly. Communication is indeed essential in a project but you definitely need some things in writing as well.

So, in short UML is too complicated, most people dont know even half of it. Microsoft tries to make it simpler and more usable in the real world of its tools.

I have to agree with this statement - lots of people really don't understand UML or use only parts of it. But I think there is nothing wrong with only using parts of it - some types of projects don't really need all of those UML different diagrams. But at least Visual Studio should have added support for genuine UML as well, next to the "simpler Microsoft-tasted UML"... Hey, maybe we will see it pop up again in Visual Studio 2005 Team Edition for Business Analysts ...

I heard another interesting statement about UML recently - "UML has marked its end since it does not fit the SOA design principles - the alternative is DSL" Anyone care to comment on this?

1 comment:

Gabriel Lozano-MorĂ¡n said...

Hello

Writing a lot of docs and create lots of UML diagrams going from Use Cases, State Diagrams to Deployment Diagrams is something for defined processes. However it has been proven that software development is such a complex and unpredictable process that defining every step will turn out to be very difficult what in the end means that you will loose a lot of time on maintaining the UML diagrams. This is were Agile development kicks in. Agile development however does not mean that there will be no documentation at all but instead of predefining every step the JEDI principle is used. JEDI stands for Just Enough Documentation for Iteration.

About the last sentence: what they are saying here is that the UML specification cannot follow the technology and if they are talking about SOA then my guess is that they are referring not to primitive SOA but to contemporary SOA (next-generation SOA, WS-* ...) The purpose of UML was to have a common understanding of the purpose of a project hence the acronym Unified Modeling Language. DSL will replace UML as DSL is or will be more and more the high-level modeling language. DSL fully concentrates around the domain, where the real customers problem lies, where UML is a more general purpose modeling language. So to answer your question on whether Microsot cares about UML or not my guess is that they don't.

I apologize for my typos but I hope that you understand it, we can discuss about this over MSN if you want to :-)