Follow @RoyOsherove on Twitter

Q&A: Microsoft, UML and Software Factories

Q: Software Factories and UML

Has Microsoft Abandoned UML?

Is the Domain Specific Language path so different than UML?

Can they be combined?


From what I’ve seen so far, and from talks I had with various people (including Steve Cook, from the original UML Team, now at Microsoft), 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.

Most people I know have done *some* UML, but most only know how to use maybe 3 or 4 types of UML Diagrams, let alone using UML Protoypes and such stuff. The main problem people face with UML is that using it to draw shapes, it then makes you give *specific meaning* to those shapes in your own domain using prototypes.

Instead of using proptypes on the UML (which are very time consuming) Microsoft has taken some of the simplest ideas and made them part of the tooling strategy. So when you draw a shape, you’re actually drawing some sort of *real* entity in your domain. You can then manipulate it and use it to build real code, and it (should) reflects changes in the real code.

The notion of a software factory is, to me, taking the UML shapes and giving them real meaning inside the tools. Not only that, to be able to create meaningful shapes for specific projects easily.


I still use UML to a degree – whenever I draw shapes on the whiteboard I draw UML. Whenever I want to make some interaction clear I draw some sort of interaction diagram. But that’s basically it. 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.

Instead, what I try to do is have less documentation (butt enough to get things going) which can help start good conversations with the designer/architect in that project. In an XP project that’s could be the team lead.


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

Cross Posted from Blogs.Microsoft.Co.Il/Blogs/Royo

Are Software Factories too complicated to be used in the real world?

Q&A: Agile Vs. Formal Methodologies