Channels ▼

Christopher Diggins

Dr. Dobb's Bloggers

Executable UML : The next big thing?

March 22, 2008

Whenever I mention that I am working on a compiler for executable UML, most programmers I know immediately respond with an expression of their distaste of UML. I understand, I used to feel the same way. So how can we make UML, or at least executable UML more palatable for the average developer?

Many developers seem to view UML as a terrible burden, that their managers subject them to. The problem I think developers have with it is that it forces them to replicate their code in a different form, just to appease their managers.

Reverse engineering tools if available lessen the burden somewhat, they only go half the distance: you usually end up having to  

The problem I have with UML is that tools are visual. This means that when constructing a model, you have to choose a two-dimensional location for everything, and make sure that it makes sense. Not only that you have to use your mouse, and click on things, and constructing the model becomes slow and tedious. Most free UML tools are horribly horribly broken (ArgoUML, I am looking at you)

When programming in a textual language, things are much easier: I just have to worry about the linear sequence of things, and indentation. Most editing tools make indentation a non-issue, and even if I screw up the linear sequence, the code is still readable. This is unlike a two-dimensional model, where sufficienly poor placement of boxes and lines can render a model completely unreadable.

On the other side of the coin, a good UML diagram of a module communicates very efficiently what the structure and design is. I love that. In my mind, one of the primary responsibilities of a computer language is effective communciation. Code on the other hand, epsecially one we are unfamiliar with, tends to hide the structure of a module.

So when a colleague convinced me to start working on an action language (a surface syntax of the action semantics in a UML model) for executable UML the first thing I did was design a textual representation of xUML to contain the action language. This way I could completely avoid using stupid visual tools. Then my colleague said to me: "it would be really impressive if we could have a visual tool!".

Well now that I had a textual representation, the stupid visual tool didn't seem like quite a bad idea, if it allowed rapid context-switching between diagrammatic and textual representations of xUML.

Now Heron is in its early stages as an xUML language. It had a previous life as a C++ type language. Its new role, isn't too far a stretch from where I was taking it before.

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.