<?xml version="1.0" encoding="iso-8859-2"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:series="http://unfoldingneurons.com/"
	>

<channel>
	<title>Fractured Bloughtssequence diagram | Fractured Bloughts</title>
	<atom:link href="http://fracturedbloughts.rolandhesz.com/tag/sequence-diagram/feed/" rel="self" type="application/rss+xml" />
	<link>http://fracturedbloughts.rolandhesz.com</link>
	<description>Musings about work and life</description>
	<lastBuildDate>Mon, 10 May 2010 19:52:08 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4-alpha-19827</generator>
		<item>
		<title>Some thoughts on the UML Sequence Diagram</title>
		<link>http://fracturedbloughts.rolandhesz.com/2009/08/25/some-thoughts-on-the-uml-sequence-diagram/</link>
		<comments>http://fracturedbloughts.rolandhesz.com/2009/08/25/some-thoughts-on-the-uml-sequence-diagram/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 17:31:22 +0000</pubDate>
		<dc:creator>Roland Hesz</dc:creator>
				<category><![CDATA[Popular]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[asynchronous messages]]></category>
		<category><![CDATA[sequence diagram]]></category>
		<category><![CDATA[uml]]></category>

		<guid isPermaLink="false">http://fracturedbloughts.heszroland.hu/?p=617</guid>
		<description><![CDATA[Earlier this year I had an interesting talk about sequence diagrams. The topic was asynchronous messages and how UML models them. As I find the topic interesting, I thought I will write a bit about that. So how does UML models asynchronous messages, and how can you tell from a sequence diagram if a message...]]></description>
			<content:encoded><![CDATA[<p>Earlier this year I had an interesting talk about <a class="zem_slink" title="Sequence diagram" rel="wikipedia" href="http://en.wikipedia.org/wiki/Sequence_diagram">sequence diagrams</a>. The topic was <a class="zem_slink" title="Asynchrony" rel="wikipedia" href="http://en.wikipedia.org/wiki/Asynchrony">asynchronous</a> messages and how <a class="zem_slink" title="Unified Modeling Language" rel="wikipedia" href="http://en.wikipedia.org/wiki/Unified_Modeling_Language">UML</a> models them. As I find the topic interesting, I thought I will write a bit about that.</p>
<p>So how does UML models asynchronous messages, and how can you tell from a sequence diagram if a message is asynchronous? During the talk there were four signs mention that shows that a call is asynchronous:</p>
<ol>
<li>There are dashed arrows showing the return calls.</li>
<li>The activity boxes are not continuous on the main lifeline</li>
<li>The arrowhead is not filled for the asynchronous message</li>
<li>The asynchronous message is not horizontal but diagonal.</li>
</ol>
<p>My favourite one is the diagonal message, and I first I intended to write only about that, but then I thought better and decided to write bout all four statements above.</p>
<p>I will show you which ones are false statements, and why the last one &#8211; which was called simply nonsense &#8211; is actually true.</p>
<p><span id="more-617"></span></p>
<p><strong>1) There are dashed arrows showing the return calls.</strong></p>
<p>Well, asynchronous messages definitely have return calls. But so does synchronous messages. The UML specification does not restrict the use of return call to either of them. So having return calls on your diagram is not an indicator of whether the call is asynchronous or synchronous .</p>
<p style="text-align: center"><a href="http://fracturedbloughts.rolandhesz.com/wp-content/uploads/2009/02/windowslivewritersomethoughtsontheumlsequencediagram-12207returncall-2.png"><img class="aligncenter" style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://fracturedbloughts.rolandhesz.com/wp-content/uploads/2009/02/windowslivewritersomethoughtsontheumlsequencediagram-12207returncall-2.png" border="0" alt="returncall" width="333" height="237" /></a></p>
<p style="text-align: center;"><em>UML Superstructure Specification, v2.1.2 page 472 Figure 14.11</em></p>
<p><strong>2) The activity is not continuous on the lifeline of the called or the calling object</strong></p>
<p>That can be true. Or not. It actually does not show with 100% certainity if it&#8217;s a synchronous or asynchronous flow.<br />
The activity can go on and off for a couple of reasons.</p>
<p>a) On the called object&#8217;s lifeline it goes off after a return call (whether shown or not)</p>
<p style="text-align: center"><a href="http://fracturedbloughts.rolandhesz.com/wp-content/uploads/2009/02/windowslivewritersomethoughtsontheumlsequencediagram-12207activityonoff-1.png"><img class="aligncenter" style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://fracturedbloughts.rolandhesz.com/wp-content/uploads/2009/02/windowslivewritersomethoughtsontheumlsequencediagram-12207activityonoff-1.png" border="0" alt="activityonoff_1" width="362" height="223" /></a></p>
<p>b) When you do a callback from an asynchronous call</p>
<p style="text-align: center"><a href="http://fracturedbloughts.rolandhesz.com/wp-content/uploads/2009/02/windowslivewritersomethoughtsontheumlsequencediagram-12207activityonoff-3.png"><img class="aligncenter" style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://fracturedbloughts.rolandhesz.com/wp-content/uploads/2009/02/windowslivewritersomethoughtsontheumlsequencediagram-12207activityonoff-3.png" border="0" alt="activityonoff_3" width="367" height="192" /></a></p>
<p>c) When you do a callback from a synchronous call with an explicit End Source Activation on the original synchronous call</p>
<p style="text-align: center"><a href="http://fracturedbloughts.rolandhesz.com/wp-content/uploads/2009/02/windowslivewritersomethoughtsontheumlsequencediagram-12207activityonoff-4.png"><img class="aligncenter" style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://fracturedbloughts.rolandhesz.com/wp-content/uploads/2009/02/windowslivewritersomethoughtsontheumlsequencediagram-12207activityonoff-4.png" border="0" alt="activityonoff_4" width="370" height="196" /></a></p>
<p><strong>NOTE:</strong> Ok, this is a <a class="zem_slink" title="Red herring (narrative)" rel="wikipedia" href="http://en.wikipedia.org/wiki/Red_herring_%28narrative%29">red herring</a>. It only seems to be a synchronous message, and the only reason you can do this is because the CASE tool allows you to do stupid things. This is an asynchronous call despite the misleading arrowhead. Now, can you tell me if the guy who drew this diagram was doing it deliberately to mess with the reader, or wanted to create an asynchronous message and did not bother with the correct arrow heads, or tried to be clever, and this is a synchronous message and wants to get a point through in an awkward way, or simply does not understand the whole synchronous/asynchronous business? No? Thought so.</p>
<p>So this one you can discard, bad use of the modeling tool / notation is simply that.</p>
<p>d) On the calling object&#8217;s lifeline the activity rectangle gets disrupted when you start a new message group<a href="http://fracturedbloughts.rolandhesz.com/wp-content/uploads/2009/02/windowslivewritersomethoughtsontheumlsequencediagram-12207activityonoff-2.png"><img class="aligncenter" style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://fracturedbloughts.rolandhesz.com/wp-content/uploads/2009/02/windowslivewritersomethoughtsontheumlsequencediagram-12207activityonoff-2.png" border="0" alt="activityonoff_2" width="362" height="235" /></a></p>
<p>You have to take into consideration that although it is not a good practice &#8211; at least in my opinion &#8211; nothing on Earth prevents or forbids you from displaying more than one flow on one diagram, and that can mess up the activity rectangles even more.</p>
<p><strong>On the activity rectangle</strong></p>
<p>This activity rectangle thing, where we state that the object is &#8220;active&#8221; or &#8220;inactive&#8221; based on the presence of the rectangle, is not well handled. For one thing in the UML specification they are called: ExecutionOccurences (that name is telling a bit more about the meaning of it). The other thing is, if you think about the rectangle as an indicator of whether an object is active or not, then why does a callback from an asynchronous call disrupts the activeness of the object? The object does not become less active when he receives a call back.</p>
<blockquote><p><strong>Notation</strong></p>
<p>ExecutionOccurences are represented as thin rectangles (grey or white) on the lifeline (see &#8220;Lifeline (from BasicInteractions, Fragments)&#8221; on page 490).<br />
We may also represent an ExecutionSpecification by a wider labeled rectangle, where the label usually identifies the action that was executed. An example of this can be seen in Figure 14.13 on page 475.<br />
For ExecutionSpecifications that refer to atomic actions such as reading attributes of a Signal (conveyed by the Message),  the Action symbol may be associated with the reception OccurrenceSpecification with a line in order to emphasize that the whole Action is associated with only one OccurrenceSpecification (and start and finish associations refer to the very  same OccurrenceSpecification).</p>
<p>Overlapping execution occurrences on the same lifeline are represented by overlapping rectangles as shown in Figure  14.15</p>
<p><em>UML Superstructure Specification, v2.1.2 page 479</em></p>
<p><a href="http://fracturedbloughts.rolandhesz.com/wp-content/uploads/2009/02/windowslivewritersomethoughtsontheumlsequencediagram-12207occurence.png"><img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://fracturedbloughts.rolandhesz.com/wp-content/uploads/2009/02/windowslivewritersomethoughtsontheumlsequencediagram-12207occurence.png" border="0" alt="occurence" width="566" height="205" /></a></p></blockquote>
<p>If you think about it as an Execution Occurence, and not whether the Object is active or not, it will make more sense.</p>
<p><strong>3) The arrowhead is not filled</strong></p>
<p>Actually that&#8217;s the only way to show an asynchronous message according to the UML Superstructure specification.</p>
<blockquote><p><strong>Notation</strong><br />
A message is shown as a line from the sender message end to the receiver message end. The line must be such that every line fragment is either horizontal or downwards when traversed from send event to receive event. The send and receive  events may both be on the same lifeline. The form of the line or arrowhead reflects properties of the message:</p>
<ul>
<li>Asynchronous Messages have an open arrow head.</li>
<li>Synchronous Messages typically represent operation calls and are shown with a filled arrow head.</li>
<li>The reply message from a method has a dashed line.</li>
</ul>
<p><em>UML Superstructure Specification, v2.1.2 page 493</em></p></blockquote>
<p style="text-align: center"><a href="http://fracturedbloughts.rolandhesz.com/wp-content/uploads/2009/02/windowslivewritersomethoughtsontheumlsequencediagram-12207arrows.png"><img class="aligncenter" style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://fracturedbloughts.rolandhesz.com/wp-content/uploads/2009/02/windowslivewritersomethoughtsontheumlsequencediagram-12207arrows.png" border="0" alt="arrows" width="401" height="344" /></a></p>
<p>A quick note: some books and CASE tools use the half-stick arrowhead to differentiate the asynchronous messages &#8211; an open arrowhead with the bottom half missing -, because for a time that was the UML specification. But even then, the asynchronous message is shown by a different arrowhead than the synchronous message.</p>
<p>Sadly, on big diagrams printed on small papers that&#8217;s not too easy to read &#8211; <a href="http://www.informit.com/articles/article.aspx?p=169507&amp;seqNum=3">Martin Fowler proposes the us of the half-stick arrowhead</a>, stating that the filled/open distinction is too subtle. I am not sure that the half-stick arrowhead will solve this, but definitely was a bigger difference than the current one.</p>
<p><strong>4) The message is not horizontal but diagonal.</strong></p>
<p>It seems weird, doesn&#8217;t it? An asynchronous message &#8220;does not cause the invoking operation to halt execution while it awaits the return of control.&#8221; That means it can take it&#8217;s own sweet time to execute and that means it is not neccessarily an instantaneous call. So, we can define how long it can take to execute and return a result for example &#8211; i.e. timeout.</p>
<p>As the lifeline of an object in a sequence diagram represents time, the simple fact that an asynchronous message have 5 seconds to start, or 5 seconds to execute, can be shown by a diagonal message line &#8211; plus we write the Duration and Timing constraints &#8211; as it happens that&#8217;s the way you show it in UML.</p>
<p style="text-align: center"><a href="http://fracturedbloughts.rolandhesz.comu/wp-content/uploads/2009/02/windowslivewritersomethoughtsontheumlsequencediagram-12207timing.png"><img class="aligncenter" style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://fracturedbloughts.rolandhesz.com/wp-content/uploads/2009/02/windowslivewritersomethoughtsontheumlsequencediagram-12207timing.png" border="0" alt="timing" width="381" height="222" /></a></p>
<p>Of course most of the time we don&#8217;t apply timing constraints on a message. But it is good to know that there is a possibility to do that. So you can say, that for simplicity&#8217;s sake an asynchronous message is diagonal except when the set of timing constraints is empty. Then it&#8217;s a diagonal with an angle of 0 degrees.</p>
<p>{ Don&#8217;t do that. It&#8217;s pointless and just shows you always wanted to be a theoretical mathematician, and failed for a good reason ;) }</p>
<p>And if we are talking about time, there are a few other possibilities according to the UML specifications.</p>
<blockquote>
<p style="text-align: center;"><a href="http://fracturedbloughts.rolandhesz.com/wp-content/uploads/2009/02/windowslivewritersomethoughtsontheumlsequencediagram-12207timing-2.png"><img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://fracturedbloughts.rolandhesz.com/wp-content/uploads/2009/02/windowslivewritersomethoughtsontheumlsequencediagram-12207timing-2.png" border="0" alt="timing_2" width="410" height="220" /></a></p>
<p style="text-align: center;"><em>Figure 14.26 &#8211; Sequence Diagram with time and timing concepts</em><strong></strong></p>
<p style="text-align: left;">The Sequence Diagram in Figure 14.26 shows how time and timing notation may be applied to describe time observation  and timing constraints. The :User sends a message Code and its duration is measured. The :ACSystem will send two  messages back to the :User. CardOut is constrained to last between 0 and 13 time units. Furthermore the interval between  the sending of Code and the reception of OK is constrained to last between d and 3*d where d is the measured duration  of the Code signal. We also notice the observation of the time point t at the sending of OK and how this is used to  constrain the time point of the reception of CardOut.</p>
<p><em>UML Superstructure Specification, v2.1.2 page 513</em></p></blockquote>
<p>We can define the timing interval for the message, and we can define Observation timing and duration for the message &#8211; useful in the case of time sensitive systems, and contrary to what some people maintaint, that there is no possibility to define time related behaviour in the UML, there is a few ways to show that.</p>
<p>That was it. All my first thoughts on the sequence diagramme and the asynchronous message notations. I had an inclination to cut it into two separate posts, but in the end, I think it&#8217;s complete this way.</p>
<p>As always, any criticism, comment, question or idea on what I have left out, or what should I delve into a bit more, or mistakes I made are welcome.</p>
<h6 class="zemanta-related-title" style="font-size: 1em;">Related articles by Zemanta</h6>
<ul class="zemanta-article-ul">
<li class="zemanta-article-ul-li"><a href="http://www.slideshare.net/stevenl/phoenix-session-5-architecture-without-big-design-up-front-garibay">PHX Session #5 : Architecture Without Big Design Up Front (Garibay)</a> (slideshare.net)</li>
<li class="zemanta-article-ul-li"><a href="http://www.slideshare.net/vilaltajo/tradposterworkshopmds">UML &amp; SCRUM Workshop</a> (slideshare.net)</li>
<li class="zemanta-article-ul-li"><a href="http://modeling-languages.com/blog/content/usability-uml-tools-should-beat-pencil-and-paper-alternative">Usability of UML tools should beat the &#8220;pencil and paper&#8221; alternative</a> (modeling-languages.com)</li>
<li class="zemanta-article-ul-li"><a href="http://modeling-languages.com/blog/content/omg-trying-improve-interoperability-umlmofxmi-based-tools">OMG is trying to improve the interoperability of UML/MOF/XMI-based tools</a> (modeling-languages.com)</li>
</ul>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Reblog this post [with Zemanta]" href="http://reblog.zemanta.com/zemified/26f66656-b98a-4be3-96ff-28433489d5f5/"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/reblog_e.png?x-id=26f66656-b98a-4be3-96ff-28433489d5f5" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related pretty-attribution paragraph-reblog"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
]]></content:encoded>
			<wfw:commentRss>http://fracturedbloughts.rolandhesz.com/2009/08/25/some-thoughts-on-the-uml-sequence-diagram/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<series:name><![CDATA[Some thoughts on the UML]]></series:name>
	</item>
		<item>
		<title>Trace Modeler Review</title>
		<link>http://fracturedbloughts.rolandhesz.com/2009/02/17/trace-modeler-review/</link>
		<comments>http://fracturedbloughts.rolandhesz.com/2009/02/17/trace-modeler-review/#comments</comments>
		<pubDate>Tue, 17 Feb 2009 06:10:32 +0000</pubDate>
		<dc:creator>Roland Hesz</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[design tool]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[sequence diagram]]></category>
		<category><![CDATA[sequence diagrams]]></category>
		<category><![CDATA[sketch tool]]></category>
		<category><![CDATA[trace modeler]]></category>

		<guid isPermaLink="false">http://fracturedbloughts.heszroland.hu/?p=597</guid>
		<description><![CDATA[A few weeks ago I wrote a post titled The best design tool, where I argued that paper is the best tool for initial planning and design and making sketches, and such. It did not take Yanic Inghelbrecht too much time to point out that his tool is better for sketching sequence diagrams, and asked...]]></description>
			<content:encoded><![CDATA[<p>A few weeks ago I wrote a post titled <a href="http://fracturedbloughts.rolandhesz.com/2009/01/21/the-best-design-tool/">The best design tool</a>, where I argued that paper is the best tool for initial planning and design and making sketches, and such.</p>
<p>It did not take Yanic Inghelbrecht too much time to point out that his tool is better for sketching <a href="http://en.wikipedia.org/wiki/Sequence_diagram">sequence diagrams</a>, and asked if I would review his tool, <a href="http://www.tracemodeler.com/">Trace Modeler</a>. Of course I said sure, and it was not because he offered me a personal licence &#8211; I just have to tell you that yes, he offered one, also as he wrote in his mail:</p>
<blockquote><p>Please understand that I do not wish to influence you in any way by this. I&#8217;m pretty confident you&#8217;ll like it and of course I&#8217;m hoping for a favorable evaluation, but above all I hope you&#8217;ll give your honest opinion.</p></blockquote>
<p>So there we go, all transparent and you all know the complete background.</p>
<p>So I just downloaded Trace Modeler, and started to poke around. I have to admit that at first sight I did not like it. The fact that there is no class diagram, so I just have to draw the sequence diagram &#8220;in the air&#8221; so to speak made me balk. I tried it anyway and after a while it dawned on me that this is a sketch tool, not a design tool, and for that there is no real need for a class diagram. Keeping that in mind I concentrated on how well it supports the sequence diagram sketching.</p>
<p>So after playing with it and poking at it I have a well formed opinion, and it boils down to a list of &#8220;Things I like&#8221; and a list of &#8220;Things I don&#8217;t like&#8221;. The latter is more like a wish-list and some suggestions. One more thing. I will not show you how to use it, what are the menus and will not tell you what a sequence diagram is &#8211; for that there are resources like the <a href="http://www.tracemodeler.com/manual/manual.html">Trace Modeler User Manual</a> and the <a href="http://www.omg.org/spec/UML/2.1.2/Superstructure/">UML Superstructure Specification</a>.</p>
<p>So lets see the likes and dislikes.</p>
<h4>Things I like</h4>
<ol>
<li>
<h3>The handling.</h3>
<p>I like it. It is self evident and easy to understand most of the time &#8211; the exception see under Things I don&#8217;t like &#8211; and honestly one of the easiest I have met so far.</li>
<li>
<h3>Diagram Style</h3>
<p>First place to go.Beside the possibility to set up the layout rules &#8211; distance between objects, message spacing, layout direction, etc. &#8211; you can set whether empty returns are shown or not &#8211; I usually hide them, make it less cluttered, but sometimes it&#8217;s good to see them &#8211; and you can display the Control Flow &#8211; with configurable colour, so you can make it bright red and see the control flow from a mile.</p>
<p style="text-align: center;"><object width="400" height="400" data="http://fracturedbloughts.rolandhesz.com/wp-content/uploads/2009/02/controlflow.swf" type="application/x-shockwave-flash"><param name="quality" value="high" /><param name="wmode" value="opaque" /><param name="src" value="http://fracturedbloughts.heszroland.hu/wp-content/uploads/2009/02/controlflow.swf" /></object></p>
</li>
<li>
<h3>It&#8217;s small and no install</h3>
<p>Really, the whole thing takes up 4.2MB, no installation required, so you can carry it around on a USB stick.</li>
</ol>
<h4>Things I don&#8217;t like (suggestions + wishlist)</h4>
<ol>
<li>
<h3>The message dragging</h3>
<p>It is handy and convenient, but there are a few problems:<br />
<del datetime="2009-02-18T16:09:40+00:00">- Sometimes the drawing is oversensitive and you have to re-drag the line</del><strong><br />
UPDATE:</strong> Ok, it was pointed out that you don&#8217;t have to drag the arrow, you simply place it over the target line and it will put it there.<br />
- there are &#8220;dead spaces&#8221;, which means that between two lifelines the red trace disappears (signaling that it won&#8217;t be a &#8216;self message&#8217;) and you have to drag the mouse further right for it to reappear (signaling it will be a message to the next lifeline). This dead zone is about half a centimeter on my screen.</p>
<p style="text-align: center;"><object width="400" height="400" data="http://fracturedbloughts.rolandhesz.com/wp-content/uploads/2009/02/deadzone.swf" type="application/x-shockwave-flash"><param name="quality" value="high" /><param name="wmode" value="opaque" /><param name="src" value="http://fracturedbloughts.rolandhesz.com/wp-content/uploads/2009/02/deadzone.swf" /></object></p>
<p><del datetime="2009-02-18T16:09:40+00:00">Solution: you don&#8217;t start from the originating object but place the arrow on the target object.<br />
However, if you do this, it will take a while to discover that you actually can send messages both direction.</del><br />
<strong>Update</strong>: Ok, see above, it is not the solution, it is how it was intended to work.</p>
<p style="text-align: center;"><object width="400" height="400" data="http://fracturedbloughts.rolandhesz.com/wp-content/uploads/2009/02/dircetion.swf" type="application/x-shockwave-flash"><param name="quality" value="high" /><param name="wmode" value="opaque" /><param name="src" value="http://fracturedbloughts.rolandhesz.com/wp-content/uploads/2009/02/dircetion.swf" /></object></p>
<p>I would like it better if there were no dead zone, and the source-target objects would be highlighted, but this deadzone is the result of testing and user feedback, so apparently works for the majority of users.<strong><br />
</strong></li>
<li>
<h4>Can&#8217;t move the end of the arrows.</h4>
<p>One of the more interesting examples in the UML Superstructure specification under the Sequence diagram section is overtaking messages &#8211; actually an asynchronous message with a duration constraint, but calling it &#8220;overtaking message&#8221; sounds more car-race like.</p>
<p style="text-align: center;"><img src="http://fracturedbloughts.rolandhesz.com/wp-content/uploads/2009/02/crossing.bmp" alt="" /></p>
<blockquote><p>The message CardOut overtakes the message OK in the way that the receiving event occurrences are in the<br />
opposite order of the sending OccurrenceSpecifications. Such communication may occur when the messages are<br />
asynchronous.</p></blockquote>
<p>But as this is a sketch oriented tool it is not a big loss &#8211; just make a note somewhere. And there is a promise that multiple-flow of control, and more will be implemented this year.</li>
</ol>
<p>So after all the above, and taking into consideration that we are talking about a sketching application, not a full blown CASE tool, I think Trace Modeler is up to that task. It won&#8217;t replace any big, integrated CASE tools, but it is perfect when you have to do a quick sketch and paper is not an option.</p>
<p>For a sequence diagram sketchpad it is good. What would be even better if there was an export option to some of the usual CASE formats &#8211; Rational Rose, EA, etc. &#8211; so after I made the sketch I could import it into my usual case tool and use it &#8211; Yanic&#8217;s response to this wish was</p>
<blockquote><p>Unfortunately there is no easy way to do this. XMI was supposed to be a standard way of exchanging UML diagrams and models, but every CASE tool has its own little quirks and inconsistencies so interchanging data is not straightforward.</p></blockquote>
<p>The sad truth is that he is totally right and I am well aware that the standard is not a standard at all. But I still wish. Wouldn&#8217;t it be nice if standards were treated like standards?</p>
<p>So Tracemodeler is definitly on my list of &#8220;on-site tools&#8221;. And in the end, a 30sec demo from the</p>
<p style="text-align: center;">
<p style="text-align: center;"><object width="600" height="480" data="http://fracturedbloughts.rolandhesz.com/wp-content/uploads/2009/02/demo.swf" type="application/x-shockwave-flash"><param name="quality" value="high" /><param name="wmode" value="opaque" /><param name="src" value="http://fracturedbloughts.rolandhesz.com/wp-content/uploads/2009/02/demo.swf" /></object></p>
<div class="zemanta-pixie"><a class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/121315da-b79a-45fa-86a8-a30ea5a3ac61/" title="Reblog this post [with Zemanta]"><img class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_e.png?x-id=121315da-b79a-45fa-86a8-a30ea5a3ac61" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related pretty-attribution paragraph-reblog"><script type="text/javascript" src="http://static.zemanta.com/readside/loader.js" defer="defer"></script></span></div>
]]></content:encoded>
			<wfw:commentRss>http://fracturedbloughts.rolandhesz.com/2009/02/17/trace-modeler-review/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

