blob: 61efe834b24e22b510ad6ac8a8195fbd1c06e2ec [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<org.eclipse.epf.uma:ContentDescription xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.epf.uma="http://www.eclipse.org/epf/uma/1.0.5/uma.ecore"
xmlns:epf="http://www.eclipse.org/epf" epf:version="1.5.0" xmi:id="-yEWkrWZ3VUcjZPhq6bvScg"
name="new_concept,_2jyfUAhVEduRe8TeoBmuGg" guid="-yEWkrWZ3VUcjZPhq6bvScg" changeDate="2007-02-27T11:29:36.889-0800"
version="1.0.0">
<mainDescription>&lt;h3>&#xD;
Explanation&#xD;
&lt;/h3>&#xD;
&lt;p>&#xD;
A use-case model is a model of how different types of users interact with the system to solve a problem.&amp;nbsp; As such,&#xD;
it describes the goals of the users, the interactions between the users and the system, and the required behavior of&#xD;
the system in satisfying these goals.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
A use-case model consists of a number of model elements.&amp;nbsp; The most important model elements are: use cases, actors&#xD;
and the relationships between them.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
A use-case diagram is used to graphically depict a subset of the model to simplify communications.&amp;nbsp; There will&#xD;
typically be several use-case diagrams associated with a given model, each showing a subset of the model elements&#xD;
relevant for a particular purpose.&amp;nbsp; The same model element may be shown on several use-case diagrams, but each&#xD;
instance must be consistent.&amp;nbsp; If tools are used to maintain the use-case model, this consistency constraint is&#xD;
automated so that any changes to the model element (changing the name for example) will be automatically reflected on&#xD;
every use-case diagram that shows that element.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
The use-case model may contain packages that are used to structure the model to simplify analysis, communications,&#xD;
navigation, development, maintenance and planning.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
Much of the use-case model is in fact textual, with the text captured in the&amp;nbsp;&lt;a class=&quot;elementLink&quot;&#xD;
href=&quot;./../../../openup/guidances/templates/uc_specification.html&quot; guid=&quot;_0cpNwMlgEdmt3adZL5Dmdw&quot;>Use-Case&#xD;
Specification&lt;/a>s that are associated with each use-case model element.&amp;nbsp;These specifications describe the flow of&#xD;
events of the use case.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
The use-case model serves as a unifying thread throughout system development. It is used as the primary specification&#xD;
of the functional requirements for the system, as the basis for analysis and design, as an input to iteration planning,&#xD;
as the basis of defining test cases and as the basis for user documentation&amp;nbsp;&amp;nbsp;&#xD;
&lt;/p>&#xD;
&lt;h3>&#xD;
Basic model elements&#xD;
&lt;/h3>&#xD;
&lt;p>&#xD;
The use-case model contains, as a minimum, the following basic model elements.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
Actor&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
A model element representing&amp;nbsp;each actor. Properties include the actors name and brief description. See&amp;nbsp;&lt;a&#xD;
class=&quot;elementLinkWithType&quot; href=&quot;./../../../openup/guidances/concepts/actor.html&quot;&#xD;
guid=&quot;_zGqO0MDpEduTGJ8i4u8TMw&quot;>Concept: Actor&lt;/a> for more information.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
Use Case&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
A model element representing&amp;nbsp;each use case. Properties include the use case name and use case specification. See&#xD;
&lt;a class=&quot;elementLinkWithType&quot; href=&quot;./../../../openup/workproducts/use_case-2.html&quot;&#xD;
guid=&quot;_0VGbUMlgEdmt3adZL5Dmdw&quot;>Artifact: Use Case&lt;/a> and &lt;a class=&quot;elementLinkWithType&quot;&#xD;
href=&quot;./../../../openup/guidances/concepts/use_case-4.html&quot; guid=&quot;_KudM0NcJEdqz_d2XWoVt6Q&quot;>Concept: Use Case&lt;/a> for&#xD;
more information.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
Associations&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
Associations are used to describe the relationships between actors and the use cases they participate in. This&#xD;
relationship is commonly known as a ‚Äúcommunicates-association‚ÄĚ.&#xD;
&lt;/p>&#xD;
&lt;h3>&#xD;
Advanced model elements&#xD;
&lt;/h3>&#xD;
&lt;p>&#xD;
The use-case model may also contain the following advanced model elements.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
Subject&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
A model element that represents the boundary of the system of interest.&amp;nbsp;&amp;nbsp;&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
Use-Case Package&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
A model element used to structure the use case model to simplify analysis, communications, navigation, and&#xD;
planning.&amp;nbsp; If there are many use cases or actors, you can use use-case packages to further structure the use-case&#xD;
model in much the same manner you use folders or directories to structure the information on your hard-disk.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
You can partition a use-case model into use-case packages for several reasons, including:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
&lt;li>&#xD;
To reflect the order, configuration, or delivery units in the finished system thus supporting iteration planning.&#xD;
&lt;/li>&#xD;
&lt;li>&#xD;
To support parallel development by dividing the problem into bite-sized pieces.&#xD;
&lt;/li>&#xD;
&lt;li>&#xD;
To simplify communication with different stakeholders by creating packages for containing use cases and actors&#xD;
relevant to a particular stakeholder.&#xD;
&lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;h4>&#xD;
Generalizations&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
A relationship&amp;nbsp;between actors to support re-use of common properties.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
Dependencies&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
A number of dependency types between use cases are defined in UML. In particular, &amp;lt;&amp;lt;extend&amp;gt;&amp;gt; and&#xD;
&amp;lt;&amp;lt;include&amp;gt;&amp;gt;.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
&amp;lt;&amp;lt;extend&amp;gt;&amp;gt; is used to include optional behavior from an extending use case in an extended use case.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
&amp;lt;&amp;lt;include&amp;gt;&amp;gt; is used to include common behavior from an included use case into a base use case in order to&#xD;
support re-use of common behavior.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
The latter is the most widely used dependency and is useful for:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
&lt;li>&#xD;
Factoring out behavior from the base use case that is not necessary for the understanding of the primary purpose of&#xD;
the use case to simplify communications.&#xD;
&lt;/li>&#xD;
&lt;li>&#xD;
Factoring out behavior that is in common for two or more use cases to maximize re-use, simplify maintenance and&#xD;
ensure consistency.&#xD;
&lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;h3>&#xD;
Example Use-Case Diagram&#xD;
&lt;/h3>&#xD;
&lt;p>&#xD;
Figure 1 shows a use-case diagram from an Automated Teller Machine (ATM) use-case model.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
&amp;nbsp;&lt;img height=&quot;410&quot; alt=&quot;Figure 1: ATM Use-Case Diagram&quot; src=&quot;./resources/atm_uc_diagram.GIF&quot; width=&quot;565&quot; />&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
Figure 1: ATM Use-Case Diagram&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
This diagram shows the subject (atm:ATM), four actors (Bank Customer, Bank, Cahier and Maintenance Person), five use&#xD;
cases (Withdraw Cash, Transfer Funds, Deposit Funds, Refill Machine and Validate User), three &amp;lt;&amp;lt;includes&amp;gt;&amp;gt;&#xD;
dependencies, and the associations between the performing actors and the use cases.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
The use cases Withdraw Cash, Deposit Funds, and Transfer Funds all need to include how the customer is identified to&#xD;
the system. This behavior can be extracted to a new inclusion use case called Validate User, which the three base use&#xD;
cases &amp;lt;&amp;lt;include&amp;gt;&amp;gt;. The base use cases are independent of the method used for identification, and it is&#xD;
therefore encapsulated in the inclusion use case. From the perspective of the base use cases, it does not matter&#xD;
whether the method for identification is to read a magnetic bank card, or perform a retinal scan. They only depend on&#xD;
the result of Validate Customer.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
Note that Figure 1 is only a partial view of the use-case model. The complete use-case model also includes descriptions&#xD;
of each actor, descriptions of each use case, and use-case specifications for each use case.&amp;nbsp; For a more complete&#xD;
example of this use case model see &lt;a class=&quot;elementLinkWithType&quot;&#xD;
href=&quot;./../../../openup/guidances/examples/uc_model_evolve.html&quot; guid=&quot;_t4QdAMNqEdu2IdAIaWZyAw&quot;>Example: Evolution of&#xD;
the Use-Case Model&lt;/a>.&lt;br />&#xD;
&lt;/p></mainDescription>
</org.eclipse.epf.uma:ContentDescription>