Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Channels ▼
RSS

Microsoft Takes On the OMG


SD's Agile Modeling Newsletter - Feb. 2005


>>MICROSOFT, DSLs AND THE OMG

For years, I've stated that the Unified Modeling Language (UML) isn't sufficient for business application development. Every single application I've ever built had a user interface on the front end and a database on the back end, and implemented a large number of business rules. Still, after all these years, we have no standard way to model these aspects using UML -- and this is just the tip of the modeling iceberg. To be fair, many proprietary approaches have been suggested over the years, including my own physical data modeling profile, and the OMG currently has a task force working on a business rule profile. However, many basic modeling needs still aren't addressed by UML, and it's unlikely they will any time soon.

Luckily, the OMG isn't the only modeling game in town. Microsoft has struck out on its own, a strategy that has clearly served it well in the past, and is suggesting a new approach to modeling: Domain Specific Languages (DSLs). As the name implies, a DSL is aimed at addressing a specific task. For example, you could define a DSL to model a Web services-based architecture or the physical schema of a relational database. This is a far different approach than UML's general, wide-purpose models. For example, UML class diagrams can be used for conceptual modeling, object-oriented analysis modeling, object-oriented design modeling, logical data modeling and physical data modeling. DSLs can be visual or textual, and are described in detail in the book Software Factories (see review below), and the concept is being implemented in the upcoming version of Visual Studio.

You probably produce informal DSLs all of the time. Those whiteboard sketches that you create to explore portions of your system design are arguably DSLs, as are the freeform Visio diagrams you design because your UML-based modeling tool just doesn't support what you need to do.

A physical data model (PDM) describing a relational database schema is a good example of a formal DSL. A good PDM is narrowly focused, specifying the schema of a single database. It also models specific database features: An Oracle PDM will differ slightly in notation and usage than a DB2 PDM because each product offers slightly different features.

Will DSLs be successful? I suspect so. More and more people in the industry are realizing that UML just doesn't reflect the true needs of application developers, and that OMG is struggling to evolve UML in a timely manner. Yes, UML class diagrams and sequence diagrams are useful -- at least subsets of the notation are -- but the rest of UML seems to be used infrequently.

I believe that the growing popularity of DSLs reflects the normal lifecycle of modeling techniques. In the 1970s, methodologists introduced a plethora of diagramming techniques for building systems using procedural technologies. Various forms of process diagrams, flow charts, data diagrams and structure charts evolved over time. The 1980s was a time of Darwinism for modeling techniques in the IT marketplace -- our structured analysis and design notations were consolidated down to a mere handful. In the late 1980s and early 1990s, we saw an explosion of object-oriented modeling techniques, in part due to the changing technology base as well as to a growing realization that structured modeling techniques weren't as effective as we'd hoped. The mid- to late 1990s saw the emergence of the UML because we realized that we didn't need 20 different object notations, nor did we need a handful -- instead, we needed just one. Fast forward to today. We've come to realize that UML isn't as effective as we'd hoped, but have yet to witness another explosion of modeling techniques.

I suspect that over the next five years, we'll see the emergence of a wide range of DSLs. Many will be based on UML subsets and older structured techniques -- after all, why reinvent the modeling wheel? We'll also see several completely new ideas, approaches that would probably never have been developed via a committee but instead could emerge only through practice. Eventually, we'll realize that we have many versions of the same thing. I've already seen several different ways to do user-interface flow diagramming and Web services diagramming, for example. Will the inevitable consolidation process be driven by market forces, as we saw in the 1980s, or via an industry group, as occurred in the 1990s? Or perhaps open source will provide a third alternative. Time will tell.

--Scott W. Ambler


>>BOOK REVIEW

Software Factories describes a strategy for industrializing software development, viewing the process as a configuration of languages, patterns, frameworks and tools for building and deploying systems. Interestingly, the book considers models as first-class development artifacts, not just documents. Unlike other approaches to Model Driven Development (MDD), such as OMG's Model Driven Architecture (MDA), software factories use DSLs and not the more general UML. To me, the book's value lies in its description of a viable development strategy supported by Microsoft, a company with a proven track record in successful software development and the ability to support the methodology via its Visual Studio toolset. If you're a Microsoft shop, you need to take this book seriously.

Software Factories: Assembling Applications With Patterns, Models, Frameworks, and Tools by Jack Greenfield, Keith Short, Steve Cook and Stuart Kent (Wiley, 2004)
http://www.amazon.com/exec/obidos/ASIN/0471202843/ambysoftinc/

--SWA


>>HOT LINKS

The UML and Beyond

The Unofficial UML Physical Data Modeling Profile shows that it's possible to open source the development of a UML profile.
http://www.agiledata.org/essays/umlDataModelingProfile.html

I've posted a summary of all 13 UML 2 diagrams. Think of it as a free online version of UML Distilled.
http://www.agilemodeling.com/essays/umlDiagrams.htm

For a more comprehensive lists of potential models available to you, visit the Agile Models Distilled page at
http://www.agilemodeling.com/artifacts/

Find MS Visual Studio home page at
http://msdn.microsoft.com/vstudio/default.aspx

For tips on software modeling on whiteboards, read the essay posted at
http://www.agilemodeling.com/essays/whiteBoardModeling.htm

The Agile Alliance homepage is the best starting point for anyone interested in learning more about agile software development.
http://www.agilealliance.org

The principles of Agile Modeling are described at
http://www.agilemodeling.com/principles.htm

The practices of Agile Modeling are described at
http://www.agilemodeling.com/practices.htm

Check out the Agile Modeling mailing list at
http://www.agilemodeling.com/feedback.htm

Get agile modeling training resources at
http://www.agilemodeling.com/training.htm


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.