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