DCSIMG
Q&A: Microsoft, UML and Software Factories - ISerializable in Israel

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.

Published Tuesday, May 16, 2006 1:42 PM by Royo

Comments

Tuesday, May 16, 2006 1:57 PM by Ido Samuelson

# re: Q&A: Microsoft, UML and Software Factories

Yep, MS only took the UI part :) symbols and arrows...(and the most used and basic ones) haha
Tuesday, May 16, 2006 2:22 PM by Luis Angel

# re: Q&A: Microsoft, UML and Software Factories

I agree that UML is too complicated, and most people, me included, use basically Use Cases, Class and Secuence diagram.

But the question is: is there any good DSL tool out there, integrated with VS.NET 2005? I know that you can use the class diagram designer included in VS.NET, but it's too simple, and there is no secuence diagram equivalent, and they use to be very usefull to describe some middle-complex algorithms).

I think it's not neccesary a XDE equivalent -by the way, XDE is not working now in VS.NET 2005 8·( - but it's neccesary a tool more usefull that this class diagram designer.

Any options?
Tuesday, May 16, 2006 8:10 PM by Claudio Perrone

# re: Q&A: Microsoft, UML and Software Factories

The fundamental problem is that UML is perfectly suitable for documentation but not sufficiently rigorous for code generation.

Most people I know (including me) use UML to sketch models and often annotate extra information using an informal language (i.e. English :-)).
While UML is not necessarily "difficult", trying to use it as a programming language is time consuming simply because the formal notation is not specific enough to describe the domain accurately.

Personally, it didn't take me long to realize that, in order to create models that can be used for code generation, we rather need simple and more focused languages that can easily capture our intentions in a particular domain.

Luis (if you haven’t done it yet) have a look at the soon-to-be-released DSL Tools that Roy refers to (and yes, they are integrated into VS 2005). Admitedly, they are still pretty rough, but my guess is that it won't take long before Microsoft will dominate (also) this space.

Leave a Comment

(required) 
(required) 
(optional)
(required) 

Enter the numbers above: