DSL + UML = Pragmatic Modeling

There has been some speculation in the press recently around Microsoft’s commitment to DSLs now that we are planning on supporting five UML 2.1 diagrams in the Rosario release ( Class, Use Case, Component, Sequence, and Activity diagrams ). Specifically, some articles have been written in a way to lead the reader towards a perception that Microsoft is moving away from DSLs and towards UML. Not at all correct! I wanted to take a moment and set the record straight on this, and start a broader conversation.

Let me first start by making one thing very clear: Microsoft is very committed to our DSL strategy, and in particular to the DSL toolkit that ships as part of the VS SDK. In fact, our UML designers are built on top of that toolkit.

I believe that supporting both approaches to modeling gives developers and Architects alike the “right tool for the right job”. For those folks who want to analyze and design their architecture using a standard notation that does not imply an implementation decision, use some UML diagrams. UML is great for describing higher level concepts and for defining the initial glossary that can be used to describe the concepts necessary to facilitate broader communication. For those folks who have decided on an implementation strategy, and do not want to be encumbered by the more general nature of the UML to describe that implementation choice, use DSLs.

In the coming months, you will very likely hear me or others on the team talk about using UML at the “logical” layer and DSLs at the “physical” layer. We are really trying to promote a clean separation between the two approaches, while at the same time, attempt to maintain an understanding of how one can inform the other, and vice versa. In this way, we are hoping to more cleanly support the understanding and intent behind the models at each layer.

So this is not a “DSL vs. UML” conversation. This is a “DSL + UML” conversation. And more importantly, this is about meeting our customers where they are and giving them tools that allow them to get to where they need to be.

The true innovation in this space is going to be how we can seamlessly connect the two approaches, and how we can make modeling more central to a broader range of people.

Stay tuned. 🙂


Comments (12)

  1. Having spent a year in the Visual Studio Ecosystem team helping to integrate the DSL Tools deeper into

  2. leovernazza says:

    Hi Cameron,

    Maybe I didn’t understand you with the logical/physical layer sepration… but… I don’t like "translations" at all.


    Do you think is it good to add more translations to the stack?

    I would like to express the solutions in the abstraction I need, but I don’t want to translate it to another language after that.

    I really would like to have is a big-picture-architecture where I can plug-in different partial solution (expressed in different abstractions/languages), and then… it just works 😉

    How will the DSLs and the UMLs related each other?

  3. Mohammad Ashraful Alam on 10 Tools Which I Left After Using VSTS 2008 Rob Caron on Team System Preconference…

  4. camerons says:

    Hello leovernazza,

    Without getting into the details ( as they are changing all the time ), the connection between the logical and physical is more about understanding how they relate. You could certainly start with a logical class diagram, then transform that into a DSL that is specific to you implementation or domain choice. But we’re very interested in not losing the fact that one came from the other, or vice versa, and not necessarily in traslation. Said in another way, the logical designers are meant to describe higher level, more general constructs, while the physical more about how to realize those higher level ideas. The two together tell the whole story.



  5. Cameron Skinner has recently reappeared on the blogging scene and he’s on fire!  Check out a couple

  6. Well if you asked me a year ago if Microsoft is going to deliver UML tools the answer would not been

  7. As someone who has been using UML since the turn of the millenium, the term "physical" has a very specific meaning to me (and to others who understand UML). UML Deployment diagrams focus entirely on the physical aspects of an architecture. Everything else is "logical".

    Microsoft got it right with the terminology "domain specific". By implication, UML is non-domain-specific. Would be good if you can stick with this terminology instead of overloading the terms "physical" and "logical"!

    Also, "domain" need not reference technology domains. It could reference business domain – insurance, healthcare, banking, retail etc. In this case, a DSL will continue to be "logical" with nothing "physical" about it!

    Going back to the original intent of this post, good that Microsoft is positioning DSL to complement UML.

    UML itself has a mechanism called Profiles which allows one to create domain-specific meta-models, but that is simply not taking off. Maybe Microsoft DSL will succeed better.

  8. The Oslo modeling platform was announced at Microsoft’s PDC and we’ve been asked by a number of customers

  9. Have been playing around VSTS 2010 / TFS 2010 / .NET 4.0 CTP functionality. It’s available for download

  10. [Nacsa Sándor, 2009. január 19-31.] Ez a Team System változat a szolgáltatás-orientált (SOA) elosztott

  11. alud says:

    The important thing is to model your DSL on UML using standards UML extentions points: stereotypes, tags, properties

    and adding the use of OCL.

    For that you have to choose the right uml tool and extensible one, you can choose one from here http://case-tools.org/.

    I think visio is not the right one.