<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:default="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:admin="http://webns.net/mvcb/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:content="http://purl.org/rss/1.0/modules/content/"><default:channel xmlns="http://purl.org/rss/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:admin="http://webns.net/mvcb/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" rdf:about="http://eastman.blog.co.uk/"><title>eastman</title><link>http://eastman.blog.co.uk/</link><description></description><dc:language xmlns:dc="http://purl.org/dc/elements/1.1/">en-US</dc:language><admin:generatorAgent xmlns:admin="http://webns.net/mvcb/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" rdf:resource="http://www.blog.co.uk"/><sy:updatePeriod xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">hourly</sy:updatePeriod><sy:updateFrequency xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">8</sy:updateFrequency><sy:updateBase xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">2000-01-01T12:00+00:00</sy:updateBase><image><title>eastman</title><link>http://eastman.blog.co.uk/</link><url>http://data5.blog.de/design/preview/e1/1142a61ea41240843c6b773fb29592_160x200.jpg</url></image><items><rdf:Seq><rdf:li rdf:resource="http://eastman.blog.co.uk/2005/10/04/fw_uml_use_case_diagrams~215432/"/></rdf:Seq></items></default:channel><default:item xmlns:default="http://purl.org/rss/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" rdf:about="http://eastman.blog.co.uk/2005/10/04/fw_uml_use_case_diagrams~215432/"><default:title>FW: UML Use Case Diagrams</default:title><default:link>http://eastman.blog.co.uk/2005/10/04/fw_uml_use_case_diagrams~215432/</default:link><dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2005-10-04T09:53:09+02:00</dc:date><default:description>&#13;&#13;&#13;&#13;&#13;&#13;&#13;&#13;&#13;&#13;&#13;&#13;&#13;&#13;&#13;&#13;UML Use Case&#13;Diagrams &#13;&#13;&amp;nbsp;&#13;&#13;An important part&#13;of the Unified Modeling Language (UML) is the facilities for drawing use case&#13;diagrams. Use cases are used during the analysis phase of a project to identify&#13;and partition system functionality. They separate the system into actors and use cases. &#13;&#13;Actors represent&#13;roles that can are played by users of the system. Those users can be humans,&#13;other computers, pieces of hardware, or even other software systems. The only&#13;criterion is that they must be external to the part of the system being&#13;partitioned into use cases. They must supply stimuli to that part of the&#13;system, and the must receive outputs from it. &#13;&#13;Use cases describe the behavior of&#13;the system when one of these actors sends one particular stimulus. This&#13;behavior is described textually. It describes the nature of the stimulus that&#13;triggers the use case; the inputs from and outputs to other actors, and the&#13;behaviors that convert the inputs to the outputs. The text of the use case also&#13;usually describes everything that can go wrong during the course of the&#13;specified behavior, and what remedial action the system will take. &#13;&#13;For example,&#13;consider a point of sale system. One of the actors is the customer and another&#13;is the sales clerk. Here is just one use case from this system: &#13;&#13;&amp;nbsp;&#13;&#13;Use Case 1: Sales&#13;Clerk checks out an item &#13;&#13;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#13;Customer&#13;sets item on counter. &#13;&#13;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#13;Sales&#13;clerk swipes UPC reader across UPC code on item &#13;&#13;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#13;System&#13;looks up UPC code in database procuring item description and price &#13;&#13;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#13;System&#13;emits audible beep. &#13;&#13;5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#13;System&#13;announces item description and price over voice output. &#13;&#13;6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#13;System&#13;adds price and item type to current invoice. &#13;&#13;7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#13;System&#13;adds price to correct tax subtotal &#13;&#13;&amp;nbsp;&#13;&#13;Error case 1:&amp;nbsp; UPC code&#13;unreadable &#13;&#13;If after step 2,&#13;the UPC code was invalid or was not properly read, emit an audible&#13;‘bonk’ sound. &#13;&#13;Error case 2:&amp;nbsp; No item in&#13;database &#13;&#13;If after step 3 no database entry is&#13;found for the UPC flash the ‘manual entry’ button on the terminal.&#13;Accept key entry of price and tax code from Sales Clerk. Set Item description&#13;to “Unknown item”. Go to step 4. &#13;&#13;Clearly a point of&#13;sale system has many more use cases than this. Indeed, for a complex system,&#13;the number can reach into the thousands. The complete functionality of the&#13;system can be described in use cases like this. This makes use cases a powerful&#13;analysis tool. &#13;&#13;Drawing Use Case&#13;Diagrams. &#13;&#13;Figure 1 shows what the above use&#13;case might look like in UML schematic form. The use case itself is draws as an&#13;oval. The actors are drawns as little stick figures.&amp;nbsp; The actors are&#13;connected to the use case with lines. &#13;&#13;Sales Clerk &#13;&#13;&#13;&#13;&#13;&#13;Customer &#13;&#13;Figure 1 &#13;&#13;Clearly this is a pretty simple notation;&#13;but there is more to it. Use and actor icons can be assembled into large&#13;“system boundary diagrams”. Such diagrams show all the use cases in&#13;a system surrounded by a rectangle. Outside the rectangle are all the actors of&#13;the system, and they are tied to their use cases with lines. The box represents&#13;the system boundary; i.e. it shows all the use cases that are inside a&#13;particular system. Everything inside the box is part of the system. Everything&#13;outside is external to the system. See Figure 2. &#13;&#13;&#13;&#13;Sales Clerk &#13;&#13;&#13;&#13;Inventory &#13;&#13;Clerk&#13;&#13;&#13;Figure 2 &#13;&#13;Aside from showing the system&#13;boundary, a few more actors, and a few more use cases; this diagram shows some&#13;relationships between the use cases. These relationships are &amp;laquo;uses&amp;raquo;&#13;and &amp;laquo;contains&amp;raquo;. The uses relationship is the simplest of the two.&#13;Note that it appears twice in Figure 2, once from Check Out Item to Swipe UPC&#13;Reader. The other is from Inventory Item to Swipe UPC Reader. The Swipe UPC&#13;Reader use case describes the behavior of the actor and the system when the&#13;actor swipes the UPC reader across the bar codes on a product. &#13;&#13;As we saw in our first use case, the&#13;Swipe UPC Reader behavior needs to occur within the Check Out Item description.&#13;However, since inventory clerks also swipe bar codes while counting objects on&#13;the shelves, this same behavior must be part of the Inventory Item use case.&#13;Rather than write the description for this behavior twice; we can employ the&#13;&amp;laquo;uses&amp;raquo; relationship to show that it belongs in both use&#13;cases.&amp;nbsp; Having done this we might change the description of the Check Out&#13;Item use case as follows: &#13;&#13;&amp;nbsp;&#13;&#13;Use Case 1: Sales Clerk checks out an item&#13;&#13;&#13;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#13;Customer&#13;sets item on counter. &#13;&#13;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#13;&amp;laquo;uses&amp;raquo;&#13;Swipe UPC Reader. &#13;&#13;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#13;System&#13;looks up UPC code in database procuring item description and price &#13;&#13;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#13;System&#13;emits audible beep. &#13;&#13;5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#13;System&#13;announces item description and price over voice output. &#13;&#13;6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#13;System&#13;adds price and item type to current invoice. &#13;&#13;7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#13;System&#13;adds price to correct tax subtotal &#13;&#13;&amp;nbsp;&#13;&#13;So, the &amp;laquo;uses&amp;raquo;&#13;relationship is very much like a function call or a subroutine. The use case&#13;being used in this fashion is called an abstract&#13;use case because it cannot exist on its own but must be used by&#13;other uses cases. &#13;&#13;The other interesting relationship&#13;is the &amp;laquo;extends&amp;raquo; relationship between Check Out Item and&amp;nbsp;&#13;Check Out “21” item. In many stores, sales clerks under the age of&#13;21 are not allowed to check out liquor. When an underage sales clerk&amp;nbsp; sees&#13;a liquor item, the clerk shouts “21” over the P.A. system. Soon a&#13;manager walks up and swipes UPC code on the item. This represents a change to&#13;the use case that could be addressed in one of two ways. &#13;&#13;First, we could add ‘if’&#13;statements to the Check Out Item use cases such that it looked like this: &#13;&#13;&amp;nbsp;&#13;&#13;Use Case 1: Sales&#13;Clerk checks out an item &#13;&#13;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#13;Customer&#13;sets item on counter. &#13;&#13;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#13;2.&#13;If item is liquor &#13;&#13;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#13;2.1.&#13;Call “21” over P.A. system &#13;&#13;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#13;2.2.&#13;Wait for manager. &#13;&#13;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#13;2.3.&#13;Manager &amp;laquo;uses&amp;raquo; Swipe UPC Reader &#13;&#13;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#13;2.4.&#13;Goto step 4 &#13;&#13;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#13;&amp;laquo;uses&amp;raquo;&#13;Swipe UPC Reader. &#13;&#13;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#13;System&#13;looks up UPC code in database procuring item description and price &#13;&#13;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#13;System&#13;emits audible beep. &#13;&#13;5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#13;System&#13;announces item description and price over voice output. &#13;&#13;6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#13;System&#13;adds price and item type to current invoice. &#13;&#13;7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#13;System&#13;adds price to correct tax subtotal &#13;&#13;&amp;nbsp;&#13;&#13;Although this works fine, it has a&#13;severe disadvantage. Remember the Open Closed Priniple (OCP)? [ note: &#13;&#13;cite reference from Engineering&#13;Notebook in 1996] It states that we don’t want to create software that&#13;has to be modified when the requirements change. Rather, in well designed&#13;software, a change in requirements should cause of to add new code rather than change old working&#13;code. The same rules apply to the functional specifications of use cases. When&#13;the requirements change we want to add new use cases, not change old existing&#13;use cases. &#13;&#13;Thus, rather than add the if&#13;statement in the use case, we use the &amp;laquo;extends&amp;raquo; relationship. This&#13;relationship allows us to specify a new use cases that contains commands for&#13;overriding and modifying the extended use case. Thus the Check out&#13;“21” item use case in Figure 2 overrides and extends the Check Out&#13;Item”use case. The text for the Check Out Item use case might appear as&#13;follows: &#13;&#13;&amp;nbsp;&#13;&#13;Use Case 2: Check&#13;Out “21” Item &#13;&#13;1. Replace Step 2 of Check Out Item with: &#13;&#13;1.1. Call “21” over P.A.&#13;System &#13;&#13;1.2. Wait for manager &#13;&#13;1.3. Manager&#13;&amp;laquo;uses&amp;raquo; Swipe UPC Reader &#13;&#13;This achieves our goal of allowing new features to be added&#13;to the use case model without needing to change existing use cases. &#13;&#13;&amp;nbsp;&#13;&#13;Extension Points &#13;&#13;Notice that the&#13;Check Out “21” Item use cases mentions the “Check Out&#13;Item” use case directly. This is unfortunate. What if we wanted to extend&#13;several other similar use cases in the same way?&amp;nbsp; We’d have to have&#13;as many extending use cases as extended use cases. And all the extending use&#13;cases would be nearly identical. &#13;&#13;We can remedy this situation by&#13;adding extension points to the extended use cases. Extension points are simply&#13;symbolic names that identify positions in the extended use case that the&#13;extending use cases can call out. Thus, our two use cases might look like this:&#13;&#13;&#13;Use Case 1: Sales&#13;Clerk checks out an item &#13;&#13;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#13;Customer&#13;sets item on counter. &#13;&#13;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#13;XP21:&#13;Sales clerk swipes UPC reader across UPC code on item &#13;&#13;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#13;System&#13;looks up UPC code in database procuring item description and price &#13;&#13;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#13;System&#13;emits audible beep. &#13;&#13;5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#13;System&#13;announces item description and price over voice output. &#13;&#13;6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#13;System&#13;adds price and item type to current invoice. &#13;&#13;7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#13;System&#13;adds price to correct tax subtotal &#13;&#13;&amp;nbsp;&#13;&#13;Use Case 2: Check&#13;Out “21” Item &#13;&#13;2. Replace XP21 of extended use case with: &#13;&#13;2.1. Call “21” over P.A.&#13;System &#13;&#13;2.2. Wait for manager &#13;&#13;2.3. Manager&#13;&amp;laquo;uses&amp;raquo; Swipe UPC Reader &#13;&#13;Text Management. &#13;&#13;One of the problems with document&#13;maintenance is that when a single requirement changes, it may affect many&#13;places within the text of the functional specification. Indeed, sometimes the amount&#13;of redundant information in a functional spec can be very high, causing&#13;significant maintenance problems. The goal of use cases and their relationships&#13;is to manage the textual descriptions within a functional specification, and&#13;thereby reduce the redundant information. By structuring the use cases and&#13;their relationships properly, you can create functional specifications that&#13;never need to be changed in more than one place. For very large projects, this&#13;can be a significant gain. &#13;&#13;The Structure of a&#13;use case is not the structure of the software it represents. &#13;&#13;It is tempting to look at the&#13;structure of a use case document as a precursor or progenitor of the structure&#13;of the software it represents. However, this is not likely to be the case. Use&#13;cases are structured to minimize textual redundancy. While this is a laudable&#13;goal, it has nothing to do with software design considerations. Thus, the&#13;structure of the use cases is not related to the structure of the resultant&#13;software. Use cases do not represent objects or classes in the eventual&#13;designs. The relationships between use cases do not forshadow relationships in&#13;the software design. The structure of the use cases and the structure of the&#13;software are unrelated. &#13;&#13;Use Case Diagrams&#13;have low information content. &#13;&#13;Use case diagrams don’t tell&#13;you very much. They convey the structure of the use cases, but tell you very&#13;little about the text within them. As such, they are not particularly&#13;interesting documents when they are separated from their textual descriptions.&#13;At best the diagrams provide a nice roadmap of relationships so that readers&#13;can reconstruct the whole text of&#13;a given scenario by tracing through the &amp;laquo;uses&amp;raquo; and&#13;&amp;laquo;extends&amp;raquo; relationships inserting the text of the former, and&#13;modifying the text according to the latter. &#13;&#13;Conclusion &#13;&#13;Use cases are powerful tools for analysts to use when&#13;partitioning the functionality of a system. Use case relationships and the&#13;corresponding diagrams help analysts to structure use cases such that their&#13;textual descriptions contain a minimum of redundant information; thus making&#13;the whole text document much easier to maintain. But use cases are not design&#13;tools. They do not specify the structure of the eventual software, nor do they&#13;imply the existence of any classes or objects. They are purely functional&#13;descriptions written in a formalism that is completely separate from software&#13;design. &#13;&#13;&amp;nbsp;&#13;&#13;&#13;&#13;&#13;&#13;
&lt;img src="http://data1.blog.de/blog/e/eastman/img/upload1111.jpeg" border="0" alt="mail2blog"&gt;

&lt;img src="http://data1.blog.de/blog/e/eastman/img/upload11111.jpeg" border="0" alt="mail2blog"&gt;

&lt;img src="http://data1.blog.de/blog/e/eastman/img/upload111111.jpeg" border="0" alt="mail2blog"&gt;

&lt;a href="http://data1.blog.de/blog/e/eastman/img/upload1111111.jpeg" title="mail2blog"&gt;&lt;img src="http://data1.blog.de/blog/e/eastman/img/upload1111111_small.jpg" border="0" alt="mail2blog"&gt;&lt;/a&gt;

&lt;img src="http://data1.blog.de/blog/e/eastman/img/upload11111111.jpeg" border="0" alt="mail2blog"&gt;
&lt;p&gt; &lt;small&gt; &lt;a href="http://eastman.blog.co.uk/2005/10/04/fw_uml_use_case_diagrams~215432/#comments"&gt;Comments&lt;/a&gt; &lt;/small&gt; &lt;/p&gt;</default:description><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[UML Use CaseDiagrams &nbsp;An important partof the Unified Modeling Language (UML) is the facilities for drawing use casediagrams. Use cases are used during the analysis phase of a project to identifyand partition system functionality. They separate the system into actors and use cases. Actors representroles that can are played by users of the system. Those users can be humans,other computers, pieces of hardware, or even other software systems. The onlycriterion is that they must be external to the part of the system beingpartitioned into use cases. They must supply stimuli to that part of thesystem, and the must receive outputs from it. Use cases describe the behavior ofthe system when one of these actors sends one particular stimulus. Thisbehavior is described textually. It describes the nature of the stimulus thattriggers the use case; the inputs from and outputs to other actors, and thebehaviors that convert the inputs to the outputs. The text of the use case alsousually describes everything that can go wrong during the course of thespecified behavior, and what remedial action the system will take. For example,consider a point of sale system. One of the actors is the customer and anotheris the sales clerk. Here is just one use case from this system: &nbsp;Use Case 1: SalesClerk checks out an item 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Customersets item on counter. 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Salesclerk swipes UPC reader across UPC code on item 3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Systemlooks up UPC code in database procuring item description and price 4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Systememits audible beep. 5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Systemannounces item description and price over voice output. 6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Systemadds price and item type to current invoice. 7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Systemadds price to correct tax subtotal &nbsp;Error case 1:&nbsp; UPC codeunreadable If after step 2,the UPC code was invalid or was not properly read, emit an audible&#8216;bonk&#8217; sound. Error case 2:&nbsp; No item indatabase If after step 3 no database entry isfound for the UPC flash the &#8216;manual entry&#8217; button on the terminal.Accept key entry of price and tax code from Sales Clerk. Set Item descriptionto &#8220;Unknown item&#8221;. Go to step 4. Clearly a point ofsale system has many more use cases than this. Indeed, for a complex system,the number can reach into the thousands. The complete functionality of thesystem can be described in use cases like this. This makes use cases a powerfulanalysis tool. Drawing Use CaseDiagrams. Figure 1 shows what the above usecase might look like in UML schematic form. The use case itself is draws as anoval. The actors are drawns as little stick figures.&nbsp; The actors areconnected to the use case with lines. Sales Clerk Customer Figure 1 Clearly this is a pretty simple notation;but there is more to it. Use and actor icons can be assembled into large&#8220;system boundary diagrams&#8221;. Such diagrams show all the use cases ina system surrounded by a rectangle. Outside the rectangle are all the actors ofthe system, and they are tied to their use cases with lines. The box representsthe system boundary; i.e. it shows all the use cases that are inside aparticular system. Everything inside the box is part of the system. Everythingoutside is external to the system. See Figure 2. Sales Clerk Inventory ClerkFigure 2 Aside from showing the systemboundary, a few more actors, and a few more use cases; this diagram shows somerelationships between the use cases. These relationships are &laquo;uses&raquo;and &laquo;contains&raquo;. The uses relationship is the simplest of the two.Note that it appears twice in Figure 2, once from Check Out Item to Swipe UPCReader. The other is from Inventory Item to Swipe UPC Reader. The Swipe UPCReader use case describes the behavior of the actor and the system when theactor swipes the UPC reader across the bar codes on a product. As we saw in our first use case, theSwipe UPC Reader behavior needs to occur within the Check Out Item description.However, since inventory clerks also swipe bar codes while counting objects onthe shelves, this same behavior must be part of the Inventory Item use case.Rather than write the description for this behavior twice; we can employ the&laquo;uses&raquo; relationship to show that it belongs in both usecases.&nbsp; Having done this we might change the description of the Check OutItem use case as follows: &nbsp;Use Case 1: Sales Clerk checks out an item1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Customersets item on counter. 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&laquo;uses&raquo;Swipe UPC Reader. 3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Systemlooks up UPC code in database procuring item description and price 4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Systememits audible beep. 5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Systemannounces item description and price over voice output. 6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Systemadds price and item type to current invoice. 7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Systemadds price to correct tax subtotal &nbsp;So, the &laquo;uses&raquo;relationship is very much like a function call or a subroutine. The use casebeing used in this fashion is called an abstractuse case because it cannot exist on its own but must be used byother uses cases. The other interesting relationshipis the &laquo;extends&raquo; relationship between Check Out Item and&nbsp;Check Out &#8220;21&#8221; item. In many stores, sales clerks under the age of21 are not allowed to check out liquor. When an underage sales clerk&nbsp; seesa liquor item, the clerk shouts &#8220;21&#8221; over the P.A. system. Soon amanager walks up and swipes UPC code on the item. This represents a change tothe use case that could be addressed in one of two ways. First, we could add &#8216;if&#8217;statements to the Check Out Item use cases such that it looked like this: &nbsp;Use Case 1: SalesClerk checks out an item 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Customersets item on counter. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.If item is liquor &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.1.Call &#8220;21&#8221; over P.A. system &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.2.Wait for manager. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.3.Manager &laquo;uses&raquo; Swipe UPC Reader &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.4.Goto step 4 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&laquo;uses&raquo;Swipe UPC Reader. 3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Systemlooks up UPC code in database procuring item description and price 4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Systememits audible beep. 5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Systemannounces item description and price over voice output. 6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Systemadds price and item type to current invoice. 7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Systemadds price to correct tax subtotal &nbsp;Although this works fine, it has asevere disadvantage. Remember the Open Closed Priniple (OCP)? [ note: cite reference from EngineeringNotebook in 1996] It states that we don&#8217;t want to create software thathas to be modified when the requirements change. Rather, in well designedsoftware, a change in requirements should cause of to add new code rather than change old workingcode. The same rules apply to the functional specifications of use cases. Whenthe requirements change we want to add new use cases, not change old existinguse cases. Thus, rather than add the ifstatement in the use case, we use the &laquo;extends&raquo; relationship. Thisrelationship allows us to specify a new use cases that contains commands foroverriding and modifying the extended use case. Thus the Check out&#8220;21&#8221; item use case in Figure 2 overrides and extends the Check OutItem&#8221;use case. The text for the Check Out Item use case might appear asfollows: &nbsp;Use Case 2: CheckOut &#8220;21&#8221; Item 1. Replace Step 2 of Check Out Item with: 1.1. Call &#8220;21&#8221; over P.A.System 1.2. Wait for manager 1.3. Manager&laquo;uses&raquo; Swipe UPC Reader This achieves our goal of allowing new features to be addedto the use case model without needing to change existing use cases. &nbsp;Extension Points Notice that theCheck Out &#8220;21&#8221; Item use cases mentions the &#8220;Check OutItem&#8221; use case directly. This is unfortunate. What if we wanted to extendseveral other similar use cases in the same way?&nbsp; We&#8217;d have to haveas many extending use cases as extended use cases. And all the extending usecases would be nearly identical. We can remedy this situation byadding extension points to the extended use cases. Extension points are simplysymbolic names that identify positions in the extended use case that theextending use cases can call out. Thus, our two use cases might look like this:Use Case 1: SalesClerk checks out an item 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Customersets item on counter. 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XP21:Sales clerk swipes UPC reader across UPC code on item 3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Systemlooks up UPC code in database procuring item description and price 4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Systememits audible beep. 5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Systemannounces item description and price over voice output. 6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Systemadds price and item type to current invoice. 7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Systemadds price to correct tax subtotal &nbsp;Use Case 2: CheckOut &#8220;21&#8221; Item 2. Replace XP21 of extended use case with: 2.1. Call &#8220;21&#8221; over P.A.System 2.2. Wait for manager 2.3. Manager&laquo;uses&raquo; Swipe UPC Reader Text Management. One of the problems with documentmaintenance is that when a single requirement changes, it may affect manyplaces within the text of the functional specification. Indeed, sometimes the amountof redundant information in a functional spec can be very high, causingsignificant maintenance problems. The goal of use cases and their relationshipsis to manage the textual descriptions within a functional specification, andthereby reduce the redundant information. By structuring the use cases andtheir relationships properly, you can create functional specifications thatnever need to be changed in more than one place. For very large projects, thiscan be a significant gain. The Structure of ause case is not the structure of the software it represents. It is tempting to look at thestructure of a use case document as a precursor or progenitor of the structureof the software it represents. However, this is not likely to be the case. Usecases are structured to minimize textual redundancy. While this is a laudablegoal, it has nothing to do with software design considerations. Thus, thestructure of the use cases is not related to the structure of the resultantsoftware. Use cases do not represent objects or classes in the eventualdesigns. The relationships between use cases do not forshadow relationships inthe software design. The structure of the use cases and the structure of thesoftware are unrelated. Use Case Diagramshave low information content. Use case diagrams don&#8217;t tellyou very much. They convey the structure of the use cases, but tell you verylittle about the text within them. As such, they are not particularlyinteresting documents when they are separated from their textual descriptions.At best the diagrams provide a nice roadmap of relationships so that readerscan reconstruct the whole text ofa given scenario by tracing through the &laquo;uses&raquo; and&laquo;extends&raquo; relationships inserting the text of the former, andmodifying the text according to the latter. Conclusion Use cases are powerful tools for analysts to use whenpartitioning the functionality of a system. Use case relationships and thecorresponding diagrams help analysts to structure use cases such that theirtextual descriptions contain a minimum of redundant information; thus makingthe whole text document much easier to maintain. But use cases are not designtools. They do not specify the structure of the eventual software, nor do theyimply the existence of any classes or objects. They are purely functionaldescriptions written in a formalism that is completely separate from softwaredesign. &nbsp;
<img src="http://data1.blog.de/blog/e/eastman/img/upload1111.jpeg" border="0" alt="mail2blog">

<img src="http://data1.blog.de/blog/e/eastman/img/upload11111.jpeg" border="0" alt="mail2blog">

<img src="http://data1.blog.de/blog/e/eastman/img/upload111111.jpeg" border="0" alt="mail2blog">

<a href="http://data1.blog.de/blog/e/eastman/img/upload1111111.jpeg" title="mail2blog"><img src="http://data1.blog.de/blog/e/eastman/img/upload1111111_small.jpg" border="0" alt="mail2blog"></a>

<img src="http://data1.blog.de/blog/e/eastman/img/upload11111111.jpeg" border="0" alt="mail2blog">
<p> <small> <a href="http://eastman.blog.co.uk/2005/10/04/fw_uml_use_case_diagrams~215432/#comments">Comments</a> </small> </p>]]></content:encoded></default:item></rdf:RDF>
