Authoring Use Cases (Filled and Focused) from Use Case Modeling, by Bittner and Spence, Chapters 4, 6, and 7.

Slides:



Advertisements
Similar presentations
RP Designs Semi-Custom e-Commerce Package. Overview RP Designs semi- custom e-commerce package is a complete website solution. Visitors can browse a catalog.
Advertisements

Use-Cases.
Withdrawal Transaction Use Case Primary Actor: Customer Pre-conditions: The customer must have a valid ATM card and PIN. Post-conditions: The customer.
Use Case & Use Case Diagram
1Spring 2005 Specification and Analysis of Information Systems Specifying Requirements with Use Case Diagrams Part II.
© 2010 Bennett, McRobb and Farmer1 Use Case Description Supplementary material to support Bennett, McRobb and Farmer: Object Oriented Systems Analysis.
Biller Direct Getting Started
e-DMAS Consumer Web Order Entry (WEBOE8) An Enhancement For iSeries 400 DMAS from  Copyright I/O International, 2003, 2004, 2005 Skip Intro.
Use Case Modeling SJTU. Unified Modeling Language (UML) l Standardized notation for object-oriented development l Needs to be used with an analysis and.
USE CASE – ATM EXAMPLE Actors: ATM Customer ATM Operator Use Cases: The customer can withdraw funds from a checking or savings account query the balance.
Extending the Requirements Model - techniques for detailing use cases
CPSC 333: Foundations of Software EngineeringJ. Denzinger Small Test: Bank account manager System has to run on an automated teller machine. User must.
Introduction to Software Testing Chapter 2.6 Graph Coverage for Use Cases Paul Ammann & Jeff Offutt
Authoring Use Cases (Filled and Focused)
Conversation Form l One path through a use case that emphasizes interactions between an actor and the system l Can show optional and repeated actions l.
SwE 313 Case Study Registration System.
Chapter 6 Functional Modeling
Works Cardholder Tutorial Initial Login, Transaction Review, & Reports.
Functional Modeling Chapter 6.
Use Case Modeling. Kendall & Kendall© 2005 Pearson Prentice Hall18-2 Commonly Used UML Diagrams The most commonly used UML diagrams are: – Use case diagram,
UML exam advice. Minimal, yet sufficient UML course 80% of modeling can be done with 20% of the UML. Which 20% was that again? We’re supposed to be “Use.
Use Case Modeling. Use case diagram For each use case we develop  Object class diagram (with attributes only)  System sequence diagram (analysis) 
SYS366 Systems Use Case Descriptions. SYS3662 Contents Review Systems Use Case Descriptions Systems Use Case Authoring.
RUP Requirements RUP Artifacts and Deliverables
® IBM Software Group © 2006 IBM Corporation Writing Good Use Cases Module 4: Detailing a Use Case.
Structure and Content of Use Cases. Will look at a Use Case template Much more detail on preconditions and post-conditions and other use case properties.
Use Cases 2 ENGR ♯10 Peter Andreae
Requirements Spec Revisited Dan Fleck. Responsibility - if you don’t do well in class, who’s problem is it?
1 © 2005 course technology University Of Palestine Chapter 6 Storyboarding the User’s Experience.
Intro: Use Case and Use Case Diagram Documentation.
Interaction Modeling. Introduction (1) Third leg of the modeling tripod. It describes interaction within a system. The class model describes the objects.
Chapter 6 Use Cases. Use Cases: –Text stories Some “actor” using system to achieve a goal –Used to discover and record requirements –Serve as input to.
© 2005 course technology1 1 1 University Of Palestine UML for The IT Business Analyst A practical guide to Object Oriented Requirement Gathering Hoard.
Faculty of Computer & Information Software Engineering Third year
171 Use Case Descriptions Chapter 4 – Facade Iteration Initial Requirements (Inception Phase)
Payroll System Bank System Any bank(s) to which direct deposit transactions are sent. Employee A person that works for the company that owns and operates.
Faculty of Computer & Information
Originated by K.Ingram, J.Westlake.Edited by N.A.Shulver Use Case Scripts What is a Use Case Script? The text to describe a particular Use Case interaction.
Writing Use Case Descriptions - Revisited Materials taken directly from Use Case Modeling by Kurt Bittner and Ian Spence.
Requirements Analysis and Design Engineering Southern Methodist University CSE 7313.
1 Object-Oriented Modeling Using UML CS 3331 Section 2.4 Modeling Requirements with Use Cases.
Use Cases Use Cases are employed to describe the functionality or behavior of a system. Each use case describes a different capability that the system.
1 Version /05/2004 © 2004 Robert Oshana Requirements Engineering Use cases.
1 Graph Coverage (6). Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Section
CS212: Object Oriented Analysis and Design Lecture 32: Use case and Class diagrams.
Life Cycle of Use Cases and Deliverable #3 Identified Use Cases Authored Use Cases Agreed Use Cases (Finish with Requirements…..)
Scenario A scenario is a sequence of steps describing an interaction between a user and a system. Use case is a set of scenarios tied together by a common.
22 August, 2007Information System Design IT60105, Autumn 2007 Information System Design IT60105 Lecture 8 Use Case Diagrams.
1 Requirements Engineering From System Goals to UML Models to Software Specifications Axel Van Lamsweerde.
Use Case Model Use case description.
Chapter 6: Structuring Requirements: Use Case Description and Diagrams Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph.
Use Case Diagrams. Introduction In the previous Lecture, you saw a brief review of the nine UML diagrams. Now that you have the clear, you'll start to.
Navigation: If the tutorial opens up in your web browser, simply click your mouse to advance to the next slide. Use the “Backspace”
PowerPoint Presentation for Dennis, Wixom, & Tegarden Systems Analysis and Design with UML, 5th Edition Copyright © 2015 John Wiley & Sons, Inc. All rights.
Slide 1 Systems Analysis and Design with UML Version 2.0, Second Edition Alan Dennis, Barbara Wixom, and David Tegarden Chapter 6: Functional Modeling.
Chapter 3: Software Design –Use case Diagram Nouf Alghanmi.
UC Diagram & Scenario RKPL C & D. Using Use Case Diagram Use case diagrams are used to visualize, specify, construct, and document the (intended) behavior.
1 Case Study and Use Cases for Case Study Lecture # 28.
Use Cases Discuss the what and how of use cases: Basics Examples Benefits Parts Stages Guidelines.
Contents What is “RUP?” What are Requirement Types
Chapter 4: Business Process and Functional Modeling, continued
Use Case Modeling - II Lecture # 27.
Use Cases Discuss the what and how of use cases: Basics Benefits
Use Case Modeling - techniques for detailing use cases
Software Engineering System Modeling Chapter 5 (Part 1) Dr.Doaa Sami
Use Case Model Use case diagram – Part 2.
Using Use Case Diagrams
Use Case Document Example
Software Engineering System Modeling Chapter 5 (Part 1) Dr.Doaa Sami
Object-Oriented Software Engineering
Presentation transcript:

Authoring Use Cases (Filled and Focused) from Use Case Modeling, by Bittner and Spence, Chapters 4, 6, and 7

Introduction  Know that Use Cases represent / can capture the functional requirements of an application.  Know that there are ‘levels of maturity’ of Use Cases.  Know about Façade Use Cases and  Know about the use of a template.  Let’s continue. Here is our template…  and we know different organizations will likely require different formats, attributes…

Use Case Number: Use Case Name: Actor (s): Maturity: (Façade/Focused/… Summary: Basic Course of Events:Actor ActionSystem Response Alternative Paths: Exception Paths:

Extension Points: Triggers: Assumptions: Preconditions: Post Conditions: Reference: Business Rules: Reference: Risks Author(s): Date:

Façade Use Cases  Placeholders  Help to establish a framework for further maturity development  Help to establish application boundary  Contain a number of attributes, but no basic course of events is included.  Now we address the paths…

Outline the Use Case  Difficult to assess the complexity of some use cases from sources of description  Use Cases can be a short as half a page to as long as a number of pages – required to capture both the basic and alternative flows in a form that satisfies ALL of the stakeholders.

Start off with an Outline of Use Case  Start off with the Use Case name, a brief description of the use case and identify actors (persons, systems, …)  Identify the basic flow of events as steps.  Walk through these!  Enumerate the alternate flows as A1, A2, etc. - just outlining here. Will undertake the real use case authoring shortly.  Example:

Sample Outline  The initial outline for use case, Withdraw Money in an ATM system could be:  Basic Flow (Outline format) Insert Card Validate Card Validate Bank Customer Select Withdraw Select Amount from List of Standard Amounts Confirm Transaction with Banking System Dispense Money Eject Card  List of Alternate Flows A1. Card cannot be identified A2. Customer cannot be identified A3. Withdraw not required A4. Non-standard amount required A5. No money in the account A6. Attempt to withdraw more than daily amount A7. No connection to the banking system A8. Link goes down A9. Card stolen – the card is on the hot-card list A10. The ATM is out of money A11. The card cannot be dispensed A12. A receipt is required A13. The withdrawal is not from the card’s primary account etc.

Sample Outline - Comments  Can see from outline format some decisions might be made regarding core functionalities and what is extra, or complementary functionality. E.g. If receipt is always required, A12 is NOT an alternate flow (found in basic flow). Also shows some non-essential flows (like withdrawing from other accounts than primary) Might not be needed. Trace the use cases back to business rules, features, constraints, …

Sample Conversational Form User Action System Response Display product offerings showing categories selected by user Browse product offerings Select items for purchase For each selected item in stock record selected items and quantities, reserving them in the inventory Provide payment instructions Record payment instructions capturing payment terms and credit card type, number and expiration date using secure protocol Provide shipping instructions record shipping instructions, capturing billing address, shipping address preferences, and delivery options Complete transaction Record transaction and provide receipt containing a list of the products ordered, their quantity and prices as well as payment terms. Credit card information should be partially omitted, displaying only the last four digits of the cc number.

Comments – on Conversational Style  Good for single actor; where system/actor engage in interactive dialog.  Can contain a lot of detail – good – but this can become a liability.  Not good for capturing a number of actors  Not good for complex responses, like controlling an antilock braking system.

Styles – a short list…  Outline formats  Conversational Format (illustrated)  Narrative formats in sentence format  The user ….  The system ….  The system…  The user…. (almost like prose) Flexible format; can show multiple actions and actors. Supports ongoing evolution of use case and use of subflows…. Often the preferred format for complex systems.  There are other formats too, naturally…

Incidentally, Bittner and Spence: (their maturity levels  Discovered  Briefly Described  Bulleted Outline  Essential Outline  Detailed Description  Fully Described….

Flows in Use Cases  Many and varied.  Called different things by different authors.  Doesn’t really matter what they are called as long as they are captured and are understandable by all stakeholders.

Subflows, Extension Points, Alternate Behaviors  Some Use Cases are just complex and long – and we need to remove some of the complexity and break it up into more manageable segments. (Subflows) We may abstract these parts out of basic flow.  Some use cases have behaviors that are executed conditionally. (Alternate / Exceptions)  Some use cases need to be able to insert additional placeholders, bound statements, or alternate behaviors that are not necessarily “conditional.”  We also need a syntax for indicating WHERE in the flow of events, these other behaviors are associated, inserted, referenced, etc. (Extension Points).  Essential thinking for mature use cases.  Let’s look at these…

Subflows (1 of 4)  Subflows are often used for complex use cases.  Subflows are used to break down the complexity of some use cases.  Different authors have different styles…  Normally (not always) given tags of S1, …, Sn and/or names.  Subflows are documented separately rather than inserting text…and cluttering basic flow.  Executions are atomic.  Use Case can ‘perform’ subflows in optional sequences or in loops or even several at a time.  Abstraction greatly assists ‘complexity.’

Subflow Examples  Within the body of the flow of events, one might see: … The system captures the payment instructions using a secure prototcol Perform Subflow Validate Payment Instructions The system prompts the Customer to enter shipping instructions The system captures the shipping instructions using a secure protocol Perform Subflow Validate Shipping Instructions …  Another might be: … Perform Subflow Login ….  In this case, Login is not a use case…

Sample Subflow Narrative (3 of 4) Subflow: S1 Login 1.When the user enters the system for the first time, the system prompts them for the password 2.The user enters this password (the system echos only ‘*’ characters to the screen as they do so). When the user indicates (note: no implementation details…) completion of entering the password, the system compares the password to the one associated with the user’s profile. 3.If the password matches, the user is granted access to the system and the use case continues  note this…we’d ‘return.’ a. If the user does not enter the correct password the system reports that the password is incorrect i. The user is given two additional opportunities to enter the correct password ii. If the user fails to enter a correct password in three attempts, the system logs the failure attempt date and time along with the user profile and the user is logged off the system b. If the password matches, the user is granted access to the system and the use case continues  note this; return otherwise, the system reports that the password is incorrect.

Subflows - more  Must be documented as a flow of events.  Notice: “Perform” or “Do”….  Like a subroutine / subprogram ‘call.’  Captures specific functionality…

Extension Points (1 of 6)  Extension Points are named places in the flow of events where additional behavior can be inserted or attached.  May be ‘private’ (used only in the user case in which they appear) or ‘public’ (used by other extending use cases).  Can be found anywhere in flow of events.  Within a flow of events, extension points are shown in bold and enclosed in curly brackets (braces)  Example: {Display Product Catalog}, {Out of Stock}, {Process the Order}, and {Order Processed}.  These extension points are normally included as text in the Extension Point attribute of a standard Use Case template.

Extension Points - Continued No specific naming conventions for extension points. The named extension point should sum up some aspect of where the position is in the use case such as {Process Order} or what the use case has achieved. {Order Processed} Extension Point is like a ‘tag’ or ‘label’ While the extension point can normally occur anywhere in flow of events, it is best implemented when placed on their own line and not embedded in a chunk of text.

Extension Points – Continued (3 of 6)  Three kinds of extension points A single location – here, it defines a single point in the flow of events (insert behavior) May be used to define a ‘state’ that the flow of events is in. (May appear multiple times) May delineate a range of activities.  Examples: (next two slides)

Use Case Including Extension Points (4 of 6) (In the flow of events) 1.The use case starts when the actor Customer selects to browse the catalog of product offerings (note glossary indicator….) {Display Product Catalog} (note, on a line by itself) e.g.2 2. The system displays the product offerings highlighting the product categories associated with the Customer’s profile. {Select Products} shows the state the flow is in. e.g 2 3.The Customer selects a product to be purchased, entering the number of items required. 4.For each selected item that is in stock, the system records the product identifier and the number of items required, reserving them in the inventory and adding them to the Customer’s shopping cart. {Out of Stock} will address ahead e.g. 1 5.Steps 3 and 4 are repeated until the Customer selects to order the products. {Process the Order} shows the state the flow is in. 6.The system prompts the Customer to enter payment instructions.….

Use Case Including Extension Points (5 of 6) (In the flow of events) Note the {Out of Stock}. This can be placed in multiple places in the flow of events if there were/are multiple places where the use case is dependent on the system not being out of stock. {Out of Stock} //additional behavior could be placed in hereor referenced from here… (see slides on Alternatives/Exception) 5. Steps 3 and 4 are repeated until the Customer selects to order the products. …

Example of Extension Point (6 of 6)  And…example of the third kind: In a use case for a system that controls a pump to dispense fuel, you could delimit the section of the flow of events where fuel is being dispensed with extension points: {pump activated} … and {pump deactivated}.

Alternate and Exception Behaviors (1 of 6)  Note: These are alternate or exceptional behaviors.  Always dependent upon some condition occurring at an explicit point in another flow of events. Alternate / Exceptional Flows are conditional flows! May be absolutely essential flows basic to the Use Case May be Errors – also important to the Use Case. Can use ‘step’ references Other mechanisms…

Alternate / Exception Flows (2 of 6)  Three kinds:  1. Specific Alternate Flow Can start at a specific named point in another flow of events (public reference)  2. General Alternate Flow Can start at any point within a use case  3. Bounded Alternate Flow Like the general flow, but can only occur between two named points.  First, the syntax for alternative flows…

General Syntax for Alternative Flows (3 of 6)  Alternative (and exception) flows are named and numbered.  Can number the alternative flows A1…An and give them names that sums their purpose.  The first line of the alternative flow’s flow of events identifies the point at which the alternative will be activated and the conditions under which it will occur.  This clause is always of the form: At {extension point} when …or At {extension point} if  (Can name these in Extension Points attribute) e.g. {Funds Not Available in Checking Account}

General Syntax for Alternative Flows (4 of 6)  The last line of the alternate flow and any other exit points within it must state explicitly where the actor resumes the flow of events! Will be where original extension point was triggered, or Another extension point elsewhere in the flow of events – unless the use case ends.  If behavior is optional, return is normally to the original extension point  For ‘exceptional’ (e.g. error condition) behavior, return may be to the end of the use case  (If use case ends in the alternative flow, then an explicit ‘use case ends here’ needs to be included.)

Examples of specific alternate flow (5 of 6)  A3. Product Out of Stock Could indicate this in Extension Points attribute. At {Out of Stock}, if there are insufficient amounts of the product in the inventory to fulfill the Customer request The system informs the user that the order cannot be fulfilled … the flow continues to describe the offering of alternative amounts and products to the customer The flow of events is resumed from the point at which it was interrupted.

Example of a Bounded Alternate Flow  A1. Undertake a Keyword Search  Documentation: At any point between {Display Product Catalog} and {Process Order}, when the Customer selects to undertake a keyword search The system prompts the Customer to enter the product search criteria The Customer enters the product search criteria …the flow continues to describe what the Customer and the System do to complete the search… The flow of events is resumed at {Select Product}

Summary  So, there is no ‘one style fits all.’  Remember: the most important thing – by far – is to be certain to capture and document all the required functionality.  Ensure sufficient detail is present to support follow-on design.  All the ‘whats’ must be addressed.