<?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 Bloughts &#187; Software Development</title>
	<atom:link href="http://fracturedbloughts.rolandhesz.com/category/software-development/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</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Promoting business analysis in Hungary</title>
		<link>http://fracturedbloughts.rolandhesz.com/2010/05/02/promoting-business-analysis-in-hungary/</link>
		<comments>http://fracturedbloughts.rolandhesz.com/2010/05/02/promoting-business-analysis-in-hungary/#comments</comments>
		<pubDate>Sun, 02 May 2010 17:13:39 +0000</pubDate>
		<dc:creator>Roland Hesz</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://fracturedbloughts.rolandhesz.com/?p=690</guid>
		<description><![CDATA[In 2008 I have joined the IIBA -International Institute of Business Analysis -, because I think that if you are a business analyst, that is a smart thing to do. After a while, I have noticed that there are chapters everywhere, even around my country &#8211; in Serbia, Slovenia, Bulgaria, the Czech Republic, Poland, etc. [...]]]></description>
			<content:encoded><![CDATA[<p>In 2008 I have joined the <a id="aptureLink_0Dbe68Tfnn" href="http://theiiba.org">IIBA</a> -<a id="aptureLink_bkFc1sBai2" href="http://en.wikipedia.org/wiki/International%20Institute%20of%20Business%20Analysis">International Institute of Business Analysis</a> -, because I think that if you are a <a class="zem_slink" title="Business analyst" rel="wikipedia" href="http://en.wikipedia.org/wiki/Business_analyst">business analyst</a>, that is a smart thing to do.<br />
After a while, I have noticed that there are chapters everywhere, even around my country &#8211; in Serbia, Slovenia, Bulgaria, the Czech Republic, Poland, etc. &#8211; but not in Hungary.<br />
That made me think, and finally I have decided to start the effort to found the Hungarian Chapter of the IIBA.</p>
<p>What became very clear for me in a short time that there is not much interest in a <a class="zem_slink" title="Professional association" rel="wikipedia" href="http://en.wikipedia.org/wiki/Professional_association">professional organization</a>. So after struggling for a few month last year, I turned my attention to other things, mostly to work, and starting my business.<br />
This year however I had a lot of free time again &#8211; see <a href="http://fracturedbloughts.rolandhesz.com/2010/05/02/2010-is-a-tough-year-but-i-m-still-alive/">my previous post</a> -, and picked up the thread.<br />
It is definitely a difficult endeavour. Most of the local business analysts I contacted last year has expressed no interest at all in the initiative, but this time I had more results.<br />
I am not sure how successful this will be, I have hopes, and have gathered some support, but I am well aware of the possibility of failing spectacularly.<br />
But no matter what, I will keep on trying so I can say in the end: I did what I could.</p>
<h3>Why form a local chapter?</h3>
<p>IIBA has the stated goal of advancing the profession of <a class="zem_slink" title="Business analysis" rel="wikipedia" href="http://en.wikipedia.org/wiki/Business_analysis">business analysis</a> by providing standards, best practices, and a supportive environment including meetings, conferences, webinars, and finally, a <a id="aptureLink_kRDvKR8b8T" href="http://en.wikipedia.org/wiki/Certified%20Business%20Analysis%20Professional">certification</a> for those interested.</p>
<p>The local chapter would do the same on a local level, promoting the necessity of the BA profession, hosting conferences, meetings and providing a venue for local? professionals to exchange knowledge and ideas.<br />
In my experience a much needed thing.</p>
<p>If you happen to be a business analyst or an IT person working in Hungary, and you would be interested in helping us, please contact me.</p>
<div class="zemanta-pixie"><a class="zemanta-pixie-a" title="Reblog this post [with Zemanta]" href="http://reblog.zemanta.com/zemified/8068f617-940b-4566-bbbe-8b506abcdb7d/"><img class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_e.png?x-id=8068f617-940b-4566-bbbe-8b506abcdb7d" 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/2010/05/02/promoting-business-analysis-in-hungary/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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>The most annoying myth of software development</title>
		<link>http://fracturedbloughts.rolandhesz.com/2009/02/26/the-most-annoying-myth-of-software-development/</link>
		<comments>http://fracturedbloughts.rolandhesz.com/2009/02/26/the-most-annoying-myth-of-software-development/#comments</comments>
		<pubDate>Thu, 26 Feb 2009 13:15:41 +0000</pubDate>
		<dc:creator>Roland Hesz</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[methodology]]></category>
		<category><![CDATA[myth]]></category>
		<category><![CDATA[software development process]]></category>
		<category><![CDATA[software life cycle]]></category>
		<category><![CDATA[software process]]></category>
		<category><![CDATA[waterfall]]></category>

		<guid isPermaLink="false">http://fracturedbloughts.heszroland.hu/?p=633</guid>
		<description><![CDATA[&#8220;And what method do you use?&#8221; The project manager looked at the lead developer then turned back to me and said &#8220;Well, we are a small company, so we don&#8217;t need a method&#8221; I have run into similar situations a couple of time and I think it is one of the most annoying myths there [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>&#8220;And what method do you use?&#8221;<br />
The <a class="zem_slink" title="Project manager" rel="wikipedia" href="http://en.wikipedia.org/wiki/Project_manager">project manager</a> looked at the lead developer then turned back to me and said &#8220;Well, we are a small company, so we don&#8217;t need a method&#8221;</p></blockquote>
<p>I have run into similar situations a couple of time and I think it is one of the most annoying myths there is.? &#8211; &#8220;We are &#8230;. so we don&#8217;t need a method&#8221;.<br />
Well, the good news is that no matter what the project manager says, the developers usually have a <a href="http://en.wikipedia.org/wiki/Method">method</a>, a <a href="http://en.wikipedia.org/wiki/Software_development_process">software development process</a>, or even a <a href="http://en.wikipedia.org/wiki/Methodology">methodology</a>. What these words mean?</p>
<blockquote><p><strong>method</strong>: 1: a procedure or process for attaining an object: as a (1): a systematic procedure, technique, or mode of inquiry employed by or proper to a particular discipline or art (2): a systematic plan followed in presenting material for instruction b (1): a way, technique, or process of or for doing something (2): a body of skills or techniques. (from Merriem-Webster)</p>
<p><strong>method</strong>: a way of doing something, especially a systematic way; implies an orderly logical arrangement (usually in steps) (from Web definitiosn)</p>
<p><strong>methodology</strong>: 1 <strong>:</strong> a body of <a href="http://www.merriam-webster.com/dictionary/methods">methods</a>, rules, and postulates employed by a discipline <strong>:</strong> a particular procedure or set of procedures 2 <strong>:</strong> the analysis of the principles or procedures of inquiry in a particular field (from Merriem-Webster)</p>
<p><strong>software development process</strong>: a structure imposed on the development of a software product. Synonyms include <a href="http://en.wikipedia.org/wiki/Software_Lifecycle_Processes">software life cycle</a> and <em>software process</em>. There are several <a href="http://en.wikipedia.org/wiki/Software_development_process#Models">models</a> for such processes, each describing approaches to a variety of <a href="http://en.wikipedia.org/wiki/Software_development_process#Software_development_activities">tasks or activities</a> that take place during the process. (from Wikipedia)</p></blockquote>
<p>So what the &#8220;we don&#8217;t need..&#8221; means is that we develop software without any logical process, doing things as we please, no order, no logic, we just hack it together. Given that the company is still running, I suspect the developers know better and they use some method, process or something.</p>
<blockquote><p>The lead developer cleared his throat &#8220;well, we use a waterfall like method. We certainly don&#8217;t want to go agile&#8221;</p></blockquote>
<p>Yes, just as I thought, there is a process. A waterfall one, but if it works then that&#8217;s perfect. The developers need some process &#8211; even when they protest loudly against any process introduced by the management -, otherwise they will get lost. So they build a &#8220;homemade&#8221; one. It is a bit sad though if a project manager thinks they don&#8217;t need it, and doesn&#8217;t even recognize the existence of an already used process or method. Or simply does not know meaning of the word.</p>
<p>The method used is not a trivial or unneccessary thing, it has a big effect on how the development is done, and as a result it has an effect on a lot of other things. The way a company creates a product affects <a class="zem_slink" title="Human resources" rel="wikipedia" href="http://en.wikipedia.org/wiki/Human_resources">HR</a> decisions, sales and <a class="zem_slink" title="Marketing" rel="wikipedia" href="http://en.wikipedia.org/wiki/Marketing">marketing</a> decisions, business decisions, use of resources, and so on.</p>
<p>But still, it seems to be a widespread belief that if a software company is small, or smart, or in a definite business or simply they feel like, then they don&#8217;t need a method, they can just work anyhow.</p>
<p>And by this I don&#8217;t say that you must choose RUP, or UP, or Scrum, or Agile, or any of the buzzwords. But you have to face the fact that you can&#8217;t work without a method &#8211; you don&#8217;t build a doghouse without one, even if it&#8217;s a simple one, so why do you imply that you can build a complicated software without one?</p>
<p>Usually this is one of my first questions on any interview or project startup meeting, and when I hear the &#8220;we don&#8217;t need&#8230;&#8221; answer that&#8217;s the end of the meeting on my side.</p>
<div class="zemanta-related">
<h6 class="zemanta-related-title">Related articles by Zemanta</h6>
<ul class="zemanta-article-ul">
<li class="zemanta-article-ul-li"><a href="http://oreilly.com/catalog/9780596517311/">The Art of Lean Software Development</a> (oreilly.com)</li>
<li class="zemanta-article-ul-li"><a href="http://www.communote.com/blog/2009/01/20/current-status-of-development/">Current Status of Development</a> (communote.com)</li>
<li class="zemanta-article-ul-li"><a href="http://business-project-management.suite101.com/article.cfm/essential_skills_of_project_management_training">Essential Skills of Project Management Training</a> (business-project-management.suite101.com)</li>
</ul>
</div>
<div class="zemanta-pixie"><a class="zemanta-pixie-a" title="Zemified by Zemanta" href="http://www.zemanta.com/"><img class="zemanta-pixie-img" src="http://img.zemanta.com/zemified_c.png?x-id=3f7f4dc2-9b0f-4b0a-9b8a-ebb12af5bb92" alt="Enhanced by Zemanta" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://fracturedbloughts.rolandhesz.com/2009/02/26/the-most-annoying-myth-of-software-development/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Requirements and Use Cases &#8211; part II</title>
		<link>http://fracturedbloughts.rolandhesz.com/2009/02/18/requirements-and-use-cases-part-ii/</link>
		<comments>http://fracturedbloughts.rolandhesz.com/2009/02/18/requirements-and-use-cases-part-ii/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 20:16:31 +0000</pubDate>
		<dc:creator>Roland Hesz</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[alistair cockburn]]></category>
		<category><![CDATA[requirements]]></category>
		<category><![CDATA[uml]]></category>
		<category><![CDATA[use cases]]></category>

		<guid isPermaLink="false">http://fracturedbloughts.heszroland.hu/?p=626</guid>
		<description><![CDATA[This is the second part of the Requirements and Use Cases post, and continues right where I finished with that one. In the first part I laid down some basic thoughts about requirements as I see them, and this post builds on that. If you did not read it, please do that first. 2. Use [...]]]></description>
			<content:encoded><![CDATA[<p>This is the second part of the <a href="http://fracturedbloughts.rolandhesz.com/2009/02/18/requirements-and-use-cases/">Requirements and Use Cases post</a>, and continues right where I finished with that one. In the first part I laid down some basic thoughts about requirements as I see them, and this post builds on that. If you did not read it, please do that first.</p>
<h3>2. Use Cases</h3>
<p>Use cases are an interesting part of the <a class="zem_slink" title="Unified Modeling Language" rel="wikipedia" href="http://en.wikipedia.org/wiki/Unified_Modeling_Language">UML</a>. They predate the UML by years and for me they are a bit &#8220;sticking out&#8221;. The actual UML notation while can give a nice diagram does not really provide much information, most of that info is in the textual description of the Use Case &#8211; which is the actual hard part of the Use Case business.</p>
<p>People like the &#8220;potatos&#8221; nonetheless, they look easy, a stick-man here, a potato there, connect them with arrows, and we have a new requirement, lets go code. Yes, I did it too when I started to use them. Unfortunately, while the resulting diagrams would have made nice posters if I only put them in a frame, the practical value was zero. So here is a few common mistakes I met in the last few years.</p>
<p>1. the potatoes and stick men are the focus of the Use Case model, and the textual part is almost completely ignored &#8211; a really useful and thorough book is <a class="zem_slink" title="Alistair Cockburn" rel="wikipedia" href="http://en.wikipedia.org/wiki/Alistair_Cockburn">Alistair Cockburn</a>&#8216;s <a href="http://www.amazon.com/gp/product/0201702258?ie=UTF8&amp;tag=ahelyremedene-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0201702258">Writing Effective Use Cases</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" src="http://www.assoc-amazon.com/e/ir?t=ahelyremedene-20&amp;l=as2&amp;o=1&amp;a=0201702258" border="0" alt="" width="1" height="1" />.</p>
<p>2. the Use Case model is used as a process flow, with one potato for every step in the process, and &lt;&lt;precedes&gt;&gt; and &lt;&lt;invokes&gt;&gt; associations, or simple associate arrows guiding you through the whole flow. This is evident, how much info does a bubble with a one line description of a 25 step long process give?</p>
<p style="text-align: center;"><a href="http://fracturedbloughts.rolandhesz.com/wp-content/uploads/2009/02/processusecaseflowdiagraml.bmp"><img class="aligncenter" src="http://fracturedbloughts.rolandhesz.com/wp-content/uploads/2009/02/processusecaseflowdiagram_small.bmp" alt="" /></a><br />
<span style="font-size: 0.8em;">Real life example. Sorry.</span></p>
<p>3. the Use Case model is used for the wrong requirements.<br />
4. the Use Case model is used in the wrong phase of the project.</p>
<p>The 1) and 2) are evident, I would talk about the last two points, 3) and 4).
</p>
<h3>3. The Use Case model is used for the wrong requirements</h3>
<p>So here we can tie the different requirement types with the Use Case model. If we look at either Wiegers&#8217; or the BABOK requirement types, we can see that there are only a few kinds of requirements that can be modeled with Use Cases.<br />
The first thing that is evident that Business Requirements cannot be modeled with Use Cases. Neither can Quality of Service Requirements, Assumptions and constraints and Implementation requirements be modeled with Use Cases &#8211; or, if you go with Wiegers&#8217; grouping, no Business Rule, Quality Attribute, External Interface or Constraint can be modeled.<br />
With a quick note that the existence of External Interfaces can be implied by Actors representing external systems.<br />
The only requirements that can be modeled with Use Cases are the User requirements, and part of the Functional Requirements. A Use Case called &#8220;Recovering User Data within 2 seconds&#8221; is not exactly a Use Case.</p>
<h3>4. the Use Case model is used in the wrong phase of the project.</h3>
<p>As Business Requirements cannot be modeled with Use Cases, and Business Requirements are on the top of the chain &#8211; they are the very first requirements to discover &#8211; it is evident that the &#8220;start requirement gathering by drawing a Use Case model&#8221; approach is wrong.<br />
And still, I have met it a few times &#8211; what is more worrying though is that it does not mean that Use Cases are used to model the Business Requirements. It simply means that Business Requirements are skipped.<br />
As a result we don&#8217;t really know why we started the project apart from a hazy &#8220;we need a new system&#8221;, what is the exact goal to achieve, and how to measure if we are there.<br />
What we will know is that there are a lot of functional requirements, an ever growing list, and we will finish the project if every single one of them is implemented.</p>
<p>It is not the fault of the Use Case, or the UML or such, but if the first requirement we see is a Use Case and it is called &#8220;Reserve Hotelroom&#8221; then we should suspect that maybe a few steps and requirements are already missing.</p>
<div class="zemanta-related">
<h5 class="zemanta-related-title">Related articles by Zemanta</h5>
<ul class="zemanta-article-ul">
<li class="zemanta-article-ul-li"><a href="http://woork.blogspot.com/2009/02/interesting-resources-to-learn-object.html">Interesting Resources to learn Object Oriented Design</a> (woork.blogspot.com)</li>
<li class="zemanta-article-ul-li"><a href="http://business-project-management.suite101.com/article.cfm/manage_project_requirements_analysis_and_design">Manage Project Requirements Analysis and Design</a> (business-project-management.suite101.com)</li>
<li class="zemanta-article-ul-li"><a href="http://devlicio.us/blogs/casey/archive/2009/02/16/ddd-aggregates-and-aggregate-roots.aspx">DDD: Aggregates and Aggregate Roots</a> (devlicio.us)</li>
<li class="zemanta-article-ul-li"><a href="http://fishbowl.pastiche.org/2009/02/15/have_you_ever/">Have you ever&#8230;</a> (fishbowl.pastiche.org)</li>
<li class="zemanta-article-ul-li"><a href="http://badiaries.blogspot.com/2007/07/many-modes-of-business-analyst.html">The many modes of a Business Analyst</a> (badiaries.blogspot.com)</li>
<li class="zemanta-article-ul-li"><a href="http://www.tekkie.ro/methodology/should-my-company-use-scrum/">Should my company use Scrum?</a> (tekkie.ro)</li>
<li class="zemanta-article-ul-li"><a href="http://tc.eserver.org/33772.html">Model Driven Architecture: Feasibility or Fallacy?</a> (tc.eserver.org)</li>
</ul>
</div>
<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/ff55a2fe-225d-4399-aa7a-0a8c2d5196f8/"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/reblog_e.png?x-id=ff55a2fe-225d-4399-aa7a-0a8c2d5196f8" 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/02/18/requirements-and-use-cases-part-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<series:name><![CDATA[Some thoughts on the UML]]></series:name>
	</item>
		<item>
		<title>Requirements and Use Cases</title>
		<link>http://fracturedbloughts.rolandhesz.com/2009/02/18/requirements-and-use-cases/</link>
		<comments>http://fracturedbloughts.rolandhesz.com/2009/02/18/requirements-and-use-cases/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 11:55:41 +0000</pubDate>
		<dc:creator>Roland Hesz</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[babok]]></category>
		<category><![CDATA[business requirements]]></category>
		<category><![CDATA[karl e wiegers]]></category>
		<category><![CDATA[requirements]]></category>
		<category><![CDATA[system requirements]]></category>
		<category><![CDATA[uml]]></category>
		<category><![CDATA[use case]]></category>

		<guid isPermaLink="false">http://fracturedbloughts.heszroland.hu/?p=621</guid>
		<description><![CDATA[1. On the Requirements The first topic I want to get a go with is the use of Use Cases. But, before I start on the use cases I would like to clear up some basics about the requirements. I&#8217;ve met a lot of people for who there is only one kind of requirement: business [...]]]></description>
			<content:encoded><![CDATA[<h3>1. On the Requirements</h3>
<p>The first topic I want to get a go with is the use of <a href="http://en.wikipedia.org/wiki/Use_case">Use Cases</a>. But, before I start on the use cases I would like to clear up some basics about the requirements.<br />
I&#8217;ve met a lot of people for who there is only one kind of requirement: business requirements, every single one conforms to the same theoretical and well defined structure and can be documented in the same template.<br />
I personally think that it is an oversimplification of the whole thing, and I think it usually means that:</p>
<ol>
<li>half of the requirements are missing</li>
<li>a lot of different things are not recognized as requirements</li>
</ol>
<p>I think that there are different kinds of requirements, with different goals and as it happens with different documentation needs -<br />
I usually go with the Business Requirement, Functional Requirement, Functional Requirement distinctions and for me it works pretty well -, and in the literature about requirements there are different groupings and types listed. I will just look at two sources now, but I think those two are enough to prove this statement.</p>
<p>In <a href="http://www.processimpact.com/bio.shtml">Karl E. Wiegers</a>: <a href="http://www.amazon.com/gp/product/0735618798?ie=UTF8&amp;tag=ahelyremedene-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0735618798">Software Requirements, Second Edition</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" src="http://www.assoc-amazon.com/e/ir?t=ahelyremedene-20&amp;l=as2&amp;o=1&amp;a=0735618798" border="0" alt="" width="1" height="1" /> the requirements are grouped as follow:</p>
<ul>
<li><strong>Business Requirements</strong>: Business requirements describe why the organization is implementing the system &#8211; the objectives the organization hopes to achieve.</li>
<li><strong>User Requirements</strong>: describe the user goals or tasks that the users must be able to perform with the product.</li>
<li><strong>System Requirements</strong>: describes the top-level requirements for a product that contains multiple subsystems.</li>
<li><strong>Functional Requirements</strong>: specify the software functionality that the developer must build into the product to enable users to accomplish their tasks.</li>
<li><strong>Business Rules</strong>: include corporate policies, government regulations, industry standards, accounting practices and computational algorithms.</li>
<li><strong>Quality Attributes</strong>: desired characteristics like usability, portability, integrity,efficiency, and robustness.</li>
<li><strong>External Interfaces</strong>: describe external interfaces between the system and the outside world.</li>
<li><strong>Constraints</strong>: restrictions concerning the development, restricting the choices available to the developer for design and construction of the product.</li>
</ul>
<p>The <a href="http://www.theiiba.org/AM/Template.cfm?Section=Body_of_Knowledge&amp;Template=/CM/HTMLDisplay.cfm&amp;ContentID=4465">Business Analysis Body of Knowledge (BABOK)</a> lists the following types of requirements:</p>
<ul>
<li><strong>Business Requirements</strong>: are higher-level statements of the goals, objectives, or needs of the enterprise. They describe such things as the reasons why a project is initiated, the things that the project will achieve, and the metrics which will be used to measure its success.</li>
<li><strong>User Requirements</strong>: are statements of the needs of a particular stakeholder or class of stakeholders. They describe the needs that a given stakeholder has and how that stakeholder will interact with a solution. User Requirements serve as a bridge between Business Requirements and the various classes of solution requirements.</li>
<li><strong>Functional</strong> <strong>Requirements</strong>: describe the behavior and information that the solution will manage. They describe capabilities the system will be able to perform in terms of behaviors or operations-a specific system action or response.</li>
<li><strong>Quality of Service Requirements</strong>: capture conditions that do not directly relate to the behavior or functionality of the solution, but rather describe environmental conditions under which the solution must remain effective or qualities that the systems must have. They are also known as non-functional or supplementary requirements.</li>
<li><strong>Assumptions and constraints</strong>: identify aspects of the problem domain that are not functional requirements of a solution, and will limit or impact the design of the solution.</li>
<li><strong>Implementation requirements</strong>: describe capabilities that the solution must have in order to facilitate transition from the current state of the enterprise to the desired future state, but that will not be needed once that transition is complete.</li>
</ul>
<p>The groupings overlap in several places, and are the results of long years of experience &#8211; in the case of BABOK long years of many people&#8217;s experience &#8211; so I think that it can be accepted that there is a real need for separating the different kind of requirements. Especially if you ever want to take the <a href="http://certification.about.com/od/certificationsbytopic/p/cbap.htm">CBAP Exam</a>, because that uses the BABOK as the course material.</p>
<p>But if we accept that there are different kind of requirements, with different goals, levels and content, then we have to admit that they need different documentation, different way to model and present them, and that they can not really be put in the same template.</p>
<p>That&#8217;s enough about laying down the basic assumptions about requirements, that I will use in the rest of the post, and we can move to the use cases.</p>
<div class="zemanta-related">
<h5 class="zemanta-related-title">Related articles by Zemanta</h5>
<ul class="zemanta-article-ul">
<li class="zemanta-article-ul-li"><a href="http://woork.blogspot.com/2009/02/interesting-resources-to-learn-object.html">Interesting Resources to learn Object Oriented Design</a> (woork.blogspot.com)</li>
<li class="zemanta-article-ul-li"><a href="http://business-project-management.suite101.com/article.cfm/manage_project_requirements_analysis_and_design">Manage Project Requirements Analysis and Design</a> (business-project-management.suite101.com)</li>
<li class="zemanta-article-ul-li"><a href="http://devlicio.us/blogs/casey/archive/2009/02/16/ddd-aggregates-and-aggregate-roots.aspx">DDD: Aggregates and Aggregate Roots</a> (devlicio.us)</li>
<li class="zemanta-article-ul-li"><a href="http://fishbowl.pastiche.org/2009/02/15/have_you_ever/">Have you ever&#8230;</a> (fishbowl.pastiche.org)</li>
<li class="zemanta-article-ul-li"><a href="http://badiaries.blogspot.com/2007/07/many-modes-of-business-analyst.html">The many modes of a Business Analyst</a> (badiaries.blogspot.com)</li>
<li class="zemanta-article-ul-li"><a href="http://www.tekkie.ro/methodology/should-my-company-use-scrum/">Should my company use Scrum?</a> (tekkie.ro)</li>
<li class="zemanta-article-ul-li"><a href="http://tc.eserver.org/33772.html">Model Driven Architecture: Feasibility or Fallacy?</a> (tc.eserver.org)</li>
</ul>
</div>
<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/ff55a2fe-225d-4399-aa7a-0a8c2d5196f8/"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/reblog_e.png?x-id=ff55a2fe-225d-4399-aa7a-0a8c2d5196f8" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
]]></content:encoded>
			<wfw:commentRss>http://fracturedbloughts.rolandhesz.com/2009/02/18/requirements-and-use-cases/feed/</wfw:commentRss>
		<slash:comments>2</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>
		<item>
		<title>Some thoughts on the UML&#8230;</title>
		<link>http://fracturedbloughts.rolandhesz.com/2009/02/10/some-thoughts-on-the-uml/</link>
		<comments>http://fracturedbloughts.rolandhesz.com/2009/02/10/some-thoughts-on-the-uml/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 19:23:29 +0000</pubDate>
		<dc:creator>Roland Hesz</dc:creator>
				<category><![CDATA[Series]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[uml]]></category>

		<guid isPermaLink="false">http://fracturedbloughts.heszroland.hu/?p=618</guid>
		<description><![CDATA[When I first met UML &#8211; way back in school, in 1999 &#8211; I instantly liked it. It looked cool, it was new and it went pretty well with Java &#8211; which was new too. Until then and for a long time after that programming was taught with Clipper, Turbo Pascal and such, Java was [...]]]></description>
			<content:encoded><![CDATA[<p>When I first met UML &#8211; way back in school, in 1999 &#8211; I instantly liked it. It looked cool, it was new and it went pretty well with Java &#8211; which was new too. Until then and for a long time after that programming was taught with Clipper, Turbo Pascal and such, Java was not that popular until, if I remember well, 2002. In 2001 I read the Gang of Four book the first time, and dived into patterns. Not too effectively of course, and definitely not using it right at all, but we all start somewhere, I think.</p>
<p>Since then I tried to educate myself, keeping up with the new stuff &#8211; which means buying a lot of books from amazon, and reading the interweb s. Hungarian publishers are not &#8211; or at least were not &#8211;  too mad about this technology stuff, except when it comes to programming languages. The Gang of Four Design Pattern book took 9 years to publish here in Hungarian. But I digress.</p>
<p>I try to stay up to date, and try to make people improve where ever I go &#8211; especially with the &#8220;before coding&#8221; phases of the project, requirement gathering, design, etc. And then I like tools too. That&#8217;s why when Yanic asked if I would do a review of his <a href="http://tracemodeler.com">Trace Modeler</a> application I instantly said yes. And will publish the review the next week. But in the meantime I had a sudden idea &#8211; if I have this blog, why not write about UML an it&#8217;s use as I see it? I am reviewing a modeling tool that uses UML notations, so I could go a bit into the notation parts too. At the least, there will be some content on the blog. At the most some people get ideas.</p>
<p>It&#8217;s my blog, I work with UML, so noone can prevent me doing that. In the next couple of weeks &#8211; or, considering my writing speed, months &#8211; I will run a series of posts about UML and related stuff.</p>
]]></content:encoded>
			<wfw:commentRss>http://fracturedbloughts.rolandhesz.com/2009/02/10/some-thoughts-on-the-uml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<series:name><![CDATA[Some thoughts on the UML]]></series:name>
	</item>
		<item>
		<title>A few links and sites of interest</title>
		<link>http://fracturedbloughts.rolandhesz.com/2009/02/03/a-few-links-and-sites-of-interest/</link>
		<comments>http://fracturedbloughts.rolandhesz.com/2009/02/03/a-few-links-and-sites-of-interest/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 14:31:26 +0000</pubDate>
		<dc:creator>Roland Hesz</dc:creator>
				<category><![CDATA[People]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[analyst community]]></category>
		<category><![CDATA[catalyze]]></category>
		<category><![CDATA[links]]></category>
		<category><![CDATA[modern analyst]]></category>

		<guid isPermaLink="false">http://fracturedbloughts.heszroland.hu/2009/02/03/a-few-links-and-sites-of-interest/</guid>
		<description><![CDATA[I am currently in the middle of two blog posts &#8211; one is reviewing Trace Modeler, the other is about requirements &#8211; but these take time, plus I am working on a private project to build a contact managing application that does what I want, so in the meantime I just share a few interesting [...]]]></description>
			<content:encoded><![CDATA[<p>I am currently in the middle of two blog posts &#8211; one is reviewing Trace Modeler, the other is about requirements &#8211; but these take time, plus I am working on a private project to build a contact managing application that does what I want, so in the meantime I just share a few interesting links here:</p>
<h3><span style="color: #ff6633;"><a href="http://www.batimes.com/">Business Analyst Times</a></span></h3>
<blockquote><p><strong>Within the past year, BA Times has quickly become the ultimate destination for the ever-growing Business Analyst community.</strong></p>
<p>Our team keeps the site consistently updated with the latest news and in-depth articles within the industry, ensuring that BA Times is at the forefront of relevant content surrounding all developments regarding business/systems analysis, CBAP Certification, industry events and cutting-edge BA insights.</p>
<p>Most importantly, BA Times is committed to the advancement and recognition of the Business Analyst Community.</p></blockquote>
<p>If you are involved in Business Analysis, or just want to see what BAs on your team are concerned with, check out this site. There are a lot of useful and interesting stuff.</p>
<h3><span style="color: #ff6633;"><a href="http://www.projecttimes.com/">Project Times</a></span></h3>
<p>Business Analysts and Project Managers go in pairs &#8211; tightknit couples you could say as BAs act as PMs a lot of times.<br />
So here is the site for the Project Managers, same platform, same style as the BA Times.</p>
<h3><span style="color: #ff6633;"><a href="http://www.modernanalyst.com//">Modern Analyst</a></span></h3>
<p>Modern Analyst is another great community with loads of articles, posts, discussions and whatnot.<br />
If you are working as a system or business analyst, and has a website, you can get it on their Resource Directory for free as a member.</p>
<h3><span style="color: #ff6633;"><a href="http://www.requirementsnetwork.com/">Requirements Network</a></span></h3>
<p>Yet another site for BAs, or anyone interested in requirements, with blogs, forums, podcasts and whitepapers.</p>
<h3><span style="color: #ff6633;"><a href="http://www.catalyze.org/">Catalyze</a></span></h3>
<blockquote><p>Catalyze is a community for professionals who define and design software applications and websites.</p></blockquote>
<p>Yes, blogs, forums, resources and events. And community.</p>
<p>They all are good and useful, with lots of great discussions and posts and articles. Check them out, and see if you like.</p>
]]></content:encoded>
			<wfw:commentRss>http://fracturedbloughts.rolandhesz.com/2009/02/03/a-few-links-and-sites-of-interest/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The best design tool</title>
		<link>http://fracturedbloughts.rolandhesz.com/2009/01/21/the-best-design-tool/</link>
		<comments>http://fracturedbloughts.rolandhesz.com/2009/01/21/the-best-design-tool/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 19:19:36 +0000</pubDate>
		<dc:creator>Roland Hesz</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[best practice]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[design tool]]></category>
		<category><![CDATA[software design]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://fracturedbloughts.heszroland.hu/?p=583</guid>
		<description><![CDATA[What is the best design tool? Lately I have been running into this question a lot. Both from people asking me or a group, or when I was looking for it. We have to do the work, and for that we need tools. And a good one, that is perfect &#8211; or at least good [...]]]></description>
			<content:encoded><![CDATA[<p><img style="float: left; margin: 5px 10px 5px 5px;" src="http://fracturedbloughts.rolandhesz.com/wp-content/uploads/2009/01/windowslivewriterthebestdesigntool-fb9ctoolbox-thumb.jpg" alt="" />What is the best design tool? Lately I have been running into this question a lot. Both from people asking me or a group, or when I was looking for it. We have to do the work, and for that we need tools. And a good one, that is perfect &#8211; or at least good &#8211; for the task we have, so we have to pick carefully.</p>
<p>Whatever you have to design there are a lot of choices, different ones, aimed at different targets by company preference, ease of use, price, whatever.</p>
<p>And as it is, we usually end up with more than one tool to deliver our goal. By the time I publish this post I have used Darkroom, <a href="http://download.live.com/writer">Windows Live Writer</a>, <a href="http://gimp.org/">GIMP</a>, <a href="http://imindmap.com/">iMindMap</a> and my web browser. When I work, I use <a href="http://they.misled.us/dark-room">Darkroom</a> (thanks to <a href="http://www.doshdosh.com/darkroom-helped-me-to-write-better-content/">Dosh Dosh</a>), <a href="http://www.sparxsystems.com.au/products/ea/">Enterprise Architect</a>, iMindMap, <a href="http://www-01.ibm.com/software/awdtools/reqpro/">Requisite Pro</a>, MS Word, Excel, MS Project, or anything else that the current job &#8211; and the company &#8211; requires me to use.</p>
<p>And of course, I use the best design tool ever.</p>
<p>The best design tool has to support the design of different things from software to database to web layouts, pictures, web posts, novels, weekend programmes, in fact, it has to be good for the design of almost everything.</p>
<p>In addition the best design tool has the following important technical features:</p>
<ol>
<li>It has to be easy to use.</li>
<li>Has to have a short learning curve.</li>
<li>Must support different notations &#8211; and in the same design</li>
<li>Must have a clean and simple user interface</li>
<li>It has to be distraction free</li>
<li>And a lot more&#8230;</li>
</ol>
<p><a href="http://fracturedbloughts.rolandhesz.com/wp-content/uploads/2009/01/windowslivewriterthebestdesigntool-fb9cpaperpen-2.jpg"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px; border-right-width: 0px" src="http://fracturedbloughts.rolandhesz.com/wp-content/uploads/2009/01/windowslivewriterthebestdesigntool-fb9cpaperpen-thumb.jpg" border="0" alt="paperpen" width="240" height="185" align="right" /></a>Looking at this list, I realized that the best design tool is the paper+pencil combination. It&#8217;s pretty easy to use, it certainly has a clean and simple user interface, and at the same time you can design pretty much anything with it. You don&#8217;t have to upgrade it regularly, you don&#8217;t have to worry that it will get slow, you can use whatever notation and style you want, and on the same piece of paper.</p>
<p>You can fill half the paper with <a class="zem_slink" title="Unified Modeling Language" rel="wikipedia" href="http://en.wikipedia.org/wiki/Unified_Modeling_Language">UML</a> standard notations, the other half with screen design, then on the other side of the paper you can scribble formatted texts &#8211; using any kind of bulletin points, skulls or flowers if you want &#8211; and draw a <a href="http://images.google.com/images?hl=en&amp;q=mind+map&amp;um=1&amp;ie=UTF-8&amp;sa=X&amp;oi=image_result_group&amp;resnum=4&amp;ct=title">mind map</a> , and on top add an <a href="http://en.wikipedia.org/wiki/Structured_Systems_Analysis_and_Design_Methodology">SSADM</a> style <a href="http://www.jacksonworkbench.co.uk/stevefergspages/papers/entity_event_modelling/index.html">entity life history</a>, no limits. And you can mix it even, and put an association link between a UML class and a <a href="http://www.mindtools.com/pages/article/newISS_01.htm">mind map</a>. And of course you can decorate it easily.</p>
<p>There are a few problems with it of course: you need place to store the the results, and there is no copy paste function implemented &#8211; although, thinking about the amount of problem copy+paste generates it can be a benefit.</p>
<p>Best of all, the paper has no distracting features. Have you ever noticed that you sit down in front of your favourite &#8211; or company issued &#8211; designer programme, and after placing a few boxes and linking them you suddenly realize that in the last 10 minutes all you did was aligning them properly, and straightening the lines? And of course, colouring the boxes.</p>
<p>Then, in the middle of your thinking Skype beeps, and starts to blink in the task bar, and Outlook notifies you of an incoming e-mail which you start to read and next thing you know you are googling the answer to some question your boss asked you. Or your spouse. Or whatever. No such things with paper. No menus, icons, blinking and beeping.</p>
<p>And then there is creativity &#8211; when you drag a box on the screen, that&#8217;s all, you drag a box. When you draw it with your hand your brain starts to move and pick up the speed &#8211; at least, that&#8217;s what the smart ones say <sup class='footnote'><a href='#fn-583-1' id='fnref-583-1'>1</a></sup> &#8211; and you have to concentrate more, pay attention more when you draw the shape than when you just drag it up.</p>
<p>My main problem with the paper is that people are prone to think you did nothing if there are no new files in the repository or the old ones are not updated. But that can be managed &#8211; most of the time. Of course there are people who claim that if it&#8217;s not in the machine it does not exist. Fortunately they are rare.</p>
<p><a href="http://fracturedbloughts.heszroland.hu/wp-content/uploads/2009/01/windowslivewriterthebestdesigntool-fb9ctool01-2.jpg"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px 10px 5px 5px; border-right-width: 0px" src="http://fracturedbloughts.heszroland.hu/wp-content/uploads/2009/01/windowslivewriterthebestdesigntool-fb9ctool01-thumb.jpg" border="0" alt="tool01" width="244" height="112" align="left" /></a>So I say you stick with the paper when you design. It&#8217;s convenient, easy to carry around, and when you have something that won&#8217;t make you cringe when you take a second look, you can sit down in front of your machine and copy it from the paper into your chosen programme. Sure, it takes time, but you already saved a lot of time by working with a more active and more creative mind, and not getting distracted by the &#8220;Check it out!! It&#8217;s hilarious&#8221; mails you got from your friends.</p>
<p><em>This post wouldn&#8217;t have been written if I weren&#8217;t asked so many times: What&#8217;s the best design tool for&#8230;.</em><a class="zemanta-pixie-a" title="Zemified by Zemanta" href="http://www.zemanta.com/"><br />
</a>
<div class='footnotes'>
<div class='footnotedivider'></div>
<ol>
<li id='fn-583-1'>I read about it in several books and magazines but no links I can provide. If anyone could point me to sites about this topic I would be grateful. <span class='footnotereverse'><a href='#fnref-583-1'>&#8617;</a></span></li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://fracturedbloughts.rolandhesz.com/2009/01/21/the-best-design-tool/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Just in Case Tool</title>
		<link>http://fracturedbloughts.rolandhesz.com/2008/07/25/just-in-case-tool/</link>
		<comments>http://fracturedbloughts.rolandhesz.com/2008/07/25/just-in-case-tool/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 16:26:00 +0000</pubDate>
		<dc:creator>Roland Hesz</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[case tool]]></category>
		<category><![CDATA[MS Visio]]></category>
		<category><![CDATA[project lifecycle]]></category>
		<category><![CDATA[uniform documents]]></category>

		<guid isPermaLink="false">http://fracturedbloughts.heszroland.hu/?p=181</guid>
		<description><![CDATA[I had the opportunity to listen to an argument on why a project does not use a case tool. The main reasoning went along the line that there is no need for it, because Visio is just as good to create the neccessary diagrams. Apart from the fact that even Visio was not used optimally, [...]]]></description>
			<content:encoded><![CDATA[<p>I had the opportunity to listen to an argument on why a project does not use a case tool. The main reasoning went along the line that there is no need for it, because <a href="http://office.microsoft.com/en-us/visio/default.aspx">Visio</a> is just as good to create the neccessary diagrams.<br />
Apart from the fact that even Visio was not used optimally, I think the whole argument against the case tool missed the point.</p>
<p>I think the Case Tool&#8217;s strenght is not the ability to draw nice diagrams and such, but the resulting documents &#8211; among many others. I just stress documentation now for a given reason.</p>
<p><span id="more-181"></span></p>
<p>On this project as it happened, there were several people gathering requirements, writing specifications, producing written documents and diagrams, sheets and sheets of data. The only problem was that these documents were not uniform. The style of numbering was different, the layout of the tables were not the same, and all the small things. Diagrams were created in Visio, and as noone set up a mandatory stencil for the project, the diagrams had some small differences in appearance.</p>
<p>What advantage a Case tool would provide to the project? Well, first of all, in a case tool everyone uses the same set of elements for the diagram. The information is entered into well defined places. And the resulting documents are generated by the tool, thus every single one would result in the same layout, font types, headings, ordering of the data, text and graphical thingies, following the same numbering conventions.</p>
<p>All in all, a case tool would have provided the project with a set of uniform documents, without the project members hunting for small errors, like using a &#8216;-&#8217; instead of a &#8216;.&#8217; and so on.</p>
<p>And then, we did not even go into the wonders of tracing between different parts of the documents and deliverables throughout the project lifecycle.</p>
<p>So, does it worth to invest into a case tool? If you just use it as a glorified diagram drawing application, then no way.  But if you spend 5 minutes to look at what other values it has, then certainly. And you don&#8217;t have to get the most costly one. <a href="http://sparxsystems.com.au/">Sparxsystem&#8217;s Enterprise Architect</a> is more than adequate if you are just start to learn it. And you can get one from 135USD, which is definitely cheap.</p>
<p>NOTE: I know, that with some tweaking and adding Data fields to shapes, you can set up some elaborate documentation even with Visio.  I just think it is too much hassle. Visio has it&#8217;s uses, but can not &#8211; and is not intended to &#8211; replace case tools.</p>
]]></content:encoded>
			<wfw:commentRss>http://fracturedbloughts.rolandhesz.com/2008/07/25/just-in-case-tool/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
