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