<?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.6/uma.ecore" xmlns:epf="http://www.eclipse.org/epf" epf:version="1.5.1" xmlns:rmc="http://www.ibm.com/rmc" rmc:version="7.5.1" xmi:id="-Rcm_MlViENAvFFyIe9V3dQ" name="identify_and_outline_actors_and_ucs,_eyL0wCu-EdqSxKAVa9kmvA" guid="-Rcm_MlViENAvFFyIe9V3dQ" changeDate="2009-03-27T04:07:00.000-0700" version="1.0.0">
  <mainDescription>&lt;h4>&#xD;
    Identifying actors&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Find the external entities with which the system under development must interact. Candidates include groups of users&#xD;
    who will require help from the system to perform their tasks and run the system's primary or secondary functions, as&#xD;
    well as external hardware, software, and other systems.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Define each candidate actor by naming it and writing a brief description. Includes the actor's area of responsibility&#xD;
    and the goals that the actor will attempt to accomplish when using the system. Eliminate actor candidates who do not&#xD;
    have any goals.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    These questions are useful in identifying actors:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        Who will supply, use, or remove information from the system?&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Who will use the system?&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Who is interested in a certain feature or service provided by the system?&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Who will support and maintain the system?&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        What are the system's external resources?&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        What other systems will need to interact with the system under development?&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;p>&#xD;
    Review the list of stakeholders that you captured in the Vision statement. Not all stakeholders will be actors&#xD;
    (meaning, they will not all interact directly with the system under development), but this list of stakeholders is&#xD;
    useful for identifying candidates for actors.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
    Identifying&amp;nbsp;use cases&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    The best way to find use cases is to consider what each actor requires of the system. For each actor, human or not,&#xD;
    ask:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        What are the goals that the actor will attempt to accomplish with the system?&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        What are the primary tasks that the actor wants the system to perform?&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Will the actor create, store, change, remove, or read data in the system?&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Will the actor need to inform the system about sudden external changes?&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Does the actor need to be informed about certain occurrences, such as unavailability of a network resource,&amp;nbsp;in&#xD;
        the system?&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Will the actor perform a system startup or shutdown?&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;p>&#xD;
    Understanding how&amp;nbsp;the target&amp;nbsp;organization works and how this information system might be incorporated into&#xD;
    existing operations gives an idea of system's surroundings. That information can reveal other use case candidates.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Give a unique name and brief description that clearly describes the goals for each use case. If the candidate use case&#xD;
    does not have goals, ask yourself why it exists, and then either identify a goal or eliminate the use case.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
    Outlining Use Cases&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Without going into details, write a first draft of the flow of events of the use cases identified as being of high&#xD;
    priority. Initially, write a simple step-by-step description of the basic flow of the use case. The step-by-step&#xD;
    description is a simple ordered list of interactions between the actor and the system. For example, the description of&#xD;
    the basic flow of the Withdraw Cash use case of an automated teller machine (ATM) would be something like this:&#xD;
&lt;/p>&#xD;
&lt;ol>&#xD;
    &lt;li>&#xD;
        The&amp;nbsp;customer inserts a bank card.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        The system validates the card and prompts the person to enter a personal identification number (PIN).&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        The customer&amp;nbsp;enters a PIN.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        The system validates the PIN and prompts the customer to select an action.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        The customer selects Withdraw Cash.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        The system prompts the customer to choose which account.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        The customer selects the checking account.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        The system prompts for an amount.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        The customer enters the amount to withdraw.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        The system validates the amount (assuming sufficient funds), and then issues cash and receipt.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        The customer takes the cash and receipt, and then retrieves the bank card.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        The use case ends.&#xD;
    &lt;/li>&#xD;
&lt;/ol>&#xD;
&lt;p>&#xD;
    As you create this step-by-step description of the basic flow of events, you can discover alternative and exceptional&#xD;
    flows. For example, what happens if the customer enters an invalid PIN? Record the name and a brief description of each&#xD;
    alternate flow that you identified.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
    Representing relationships between actors and use cases&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    The relationship between actors and use cases&amp;nbsp;can be captured, or documented.&amp;nbsp; There are several ways to do&#xD;
    this. If you are using a use-case model on the project, you can create use-case diagrams to show how&amp;nbsp;actors and&#xD;
    use cases&amp;nbsp;relate to each other.&amp;nbsp; Refer to&amp;nbsp;&lt;a&#xD;
    href=&quot;./../../../practice.tech.use_case_driven_dev.base/guidances/guidelines/use_case_model_4C64E97D.html&quot;&#xD;
    guid=&quot;_0VAUsMlgEdmt3adZL5Dmdw&quot;>Guideline: Use-Case Model&lt;/a>&amp;nbsp;for more information.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    If you are not using a use-case model for the project, make sure that each use case identifies the associated primary&#xD;
    and secondary actors.&#xD;
&lt;/p></mainDescription>
</org.eclipse.epf.uma:ContentDescription>
