<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><id>tag:eastman.blog.co.uk,2009-11-12:/</id><title>eastman</title><link rel="self" href="http://eastman.blog.co.uk/feed/atom/posts/"/><link rel="alternate" type="text/html" href="http://eastman.blog.co.uk/"/><generator version="1.0">MokoFeed</generator><updated>2009-11-12T07:07:37+01:00</updated><entry><id>tag:eastman.blog.co.uk,2005-10-04:/2005/10/04/fw_uml_use_case_diagrams~215432/</id><title>FW: UML Use Case Diagrams</title><link rel="alternate" type="text/html" href="http://eastman.blog.co.uk/2005/10/04/fw_uml_use_case_diagrams~215432/"/><author><name>eastman</name></author><published>2005-10-04T09:53:09+02:00</published><updated>2005-10-04T09:53:09+02:00</updated><content type="html">&#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;</content></entry></feed>
