<?xml version="1.0" encoding="UTF-8"?>
<org.eclipse.epf.uma:GuidanceDescription 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="-JviMIao63C7w9C8W6iPJrw"
    name="new_example,_t4QdAMNqEdu2IdAIaWZyAw" guid="-JviMIao63C7w9C8W6iPJrw" authors="Chris Sibbald"
    changeDate="2007-07-20T13:55:59.251-0700">
  <mainDescription>&lt;h3>&#xD;
    Introduction&#xD;
&lt;/h3>&#xD;
&lt;p>&#xD;
    This example illustrates how the use-case model and associated use-case specification will evolve during the lifecycle.&#xD;
    It shows the state of the use case model at two points in the lifecycle: early inception and towards the end of&#xD;
    elaboration. The purpose is to illustrate how one would &lt;a class=&quot;elementLink&quot; href=&quot;./../../../openup/tasks/find_and_outline_requirements_90D272B9.html&quot; guid=&quot;_P9cMUPV_EdmdHa9MmVPgqQ&quot;>Find and Outline Requirements&lt;/a> and &lt;a class=&quot;elementLink&quot; href=&quot;./../../../openup/tasks/detail_requirements_9747F71E.html&quot; guid=&quot;_0e1mIMlgEdmt3adZL5Dmdw&quot;>Detail Requirements&lt;/a> so as to maximize stakeholder value and minimize risk early in&#xD;
    the project, as well as to minimize re-work later.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    The example uses an Automated Teller Machine as the example system, because it is familiar to most people. This&#xD;
    familiarity simplifies understanding the principles without getting lost in domain specific terminology.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
    Early inception&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Assume you have just started on the project as the Analyst. You have identified the key stakeholders and met with them&#xD;
    to discuss their needs. During your meetings, you identified a number of key actors, use cases, and supporting&#xD;
    requirements for the ATM system. You captured the use cases and actors, with names and brief descriptions only, in the&#xD;
    use-case model. An example of this work is given in the document &lt;strong>ATM UC Model Inception&lt;/strong>.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Prior to committing significant time to detailing these use cases now, you recognize that a “breadth before depth”&#xD;
    approach can save you valuable time and permit you to identify the highest value and highest risk items so that you can&#xD;
    concentrate on those first.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    You hold a brainstorming session with the stakeholders and outline the basic flow of each of the main use cases. As you&#xD;
    are working through, you may identify some additional alternative flows. Fight the urge to “dive-in” to the details on&#xD;
    these alternative flows at this point, simply list them and come back later when you have a better understanding of the&#xD;
    “big picture”.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Examples of the notes you took during this exercise are attached (&lt;strong>Withdraw Cash Outline&lt;/strong>,&#xD;
    &lt;strong>Deposit Funds Outline&lt;/strong> and &lt;strong>Transfer&lt;/strong> &lt;strong>Funds Outline&lt;/strong>).&lt;br />&#xD;
    &lt;b>Note:&lt;/b> the choice of font is intentional to illustrate that these are notes, not formal documents.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Reviewing your notes, you recognize that there is some behavior that is common to most of the use cases, namely the&#xD;
    steps required to validate the Bank Customer. Factoring this behavior out into an &amp;lt;&amp;lt;included&amp;gt;&amp;gt; use case&#xD;
    will simplify communications, iteration planning, and maintenance.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    You update the use case model accordingly: &lt;strong>ATM UC Model Elaboration&lt;/strong>.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
    Elaboration&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    With a better understanding of the system, you can now prioritize your effort to maximize value and minimize risk. You&#xD;
    start by detailing the common behavior captured in the use case: Validate User. This use case captures key&#xD;
    architectural requirements that will exercise a significant portion of the system (communications with the Bank, card&#xD;
    reader interface, and so on). Implementing this one key scenario will go a long way to reducing risk.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    An example of the Validate User use-case specification is attached: &lt;strong>Use Case Spec - Validate User.&lt;/strong>&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Note that there may still be some un-answered questions, but that’s OK. Capture these directly in the use-case&#xD;
    specification and get them answered (see Section 5.6 of the &lt;strong>Validate User UC Specification&lt;/strong>, for an&#xD;
    example).&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Continuing with another architecturally significant thread, you detail the basic flow and some key alternative flows of&#xD;
    the use case: Withdraw Cash. You know that if the team can implement this, much of the other functionality will be low&#xD;
    risk.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    An example of the Withdraw Cash use-case specification is attached:&amp;nbsp;&lt;strong>Use Case Spec - Withdraw&#xD;
    Cash&lt;/strong>.&#xD;
&lt;/p>&#xD;
&lt;h3>&#xD;
    Summary&#xD;
&lt;/h3>&#xD;
&lt;p>&#xD;
    By following a breadth before depth approach to outlining and detailing use cases, you can make better decisions on&#xD;
    priorities. Start by identifying actors. Then for each actor, ask “What is the main purpose this actor would like to&#xD;
    use the system?”. This will lead to the identification of the use cases. Capture the actors and use cases in the&#xD;
    use-case model along with a brief description.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Prioritize the use cases, and then draft the main scenario or basic flow. As you are working through this you may&#xD;
    identify alternate flows (what can go wrong, what options are available, and so on). Capture these, along with a brief&#xD;
    description.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Review the use-case model and reprioritize and assess risk. For the high priority (based on value to the stakeholders)&#xD;
    or high risk use cases,&amp;nbsp;detail the main scenario and the critical alternate flows.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    If you follow this approach, you will increase the likelihood of delivering value early, minimizing risk, and&#xD;
    minimizing re-work.&lt;br />&#xD;
&lt;/p></mainDescription>
  <attachments>resources/atm_uc_model_inception.doc|resources/withdraw_cash_outline.doc|resources/deposit_funds_outline.doc|resources/transfer_funds_outline.doc|resources/atm_uc_model_elaboration.doc|resources/use_case_spec_validate_user.doc|resources/use_case_spec_withdraw_cash.doc</attachments>
</org.eclipse.epf.uma:GuidanceDescription>
