a u use case analysis prof. j. alberto espinosa business requirements analysis itec-630 fall 2010

118
A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

Post on 19-Dec-2015

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

AUUse Case Analysis

Prof. J. Alberto Espinosa

Business Requirements AnalysisITEC-630 Fall 2010

Page 2: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

2

Objectives Introduction to Context Diagrams Introduction to Use Case modeling Transitional Artifacts Initial, Base and Elaborated Use Cases Extended Use Cases Refactoring: Included Use Cases

Page 3: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

3

The Big Picture

Figure out what the application will to

do to support these processes (and the system qualities)

Business Process Analysis

InformationAnalysis

Functional and Non-Functional System Requirements Analysis

Page 4: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

4

System Vision & Concept

Vision: what is the purpose of the system? Business case: what business problem does it solve? “the work” Development case: what artifacts to use in analysis? Who is the client? i.e., who’s paying for the system? Who are the customers? i.e., who will buy the system? Who are the stakeholders? i.e., who has a vested interest in the

system? who will be affected by the system? Who are the users? i.e., who will operate the system? Other relevant facts, assumptions and constraints Project glossary Rough estimation of costs and risks

Page 5: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

5

The Context Diagram

Page 6: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

6

The Context Diagram

Not a use case artifact, but very useful for a high level overview of the system

It is a representation of the system boundary and all the actors that interact with the system

It has a long history with various modeling methods for systems analysis

If drawn and formatted nicely, it provides a nice depiction of the system up front

It provides a simple high level view of the system It helps visualize:

– What is inside and what is outside the system boundary

– Who are the actors that interact with the system

– Which actors are human and which are external systems

– What are the basic information flows into and out of the system

Page 7: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

7

The Context Diagram:The System

It’s BoundaryThe Actors

Information Flows

Page 8: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

8

The Meaning of Arrows in Context Diagrams

Meaning of the direction of arrows = information flow

Arrows from actor to the system represent actors supplying information to the system

Arrows from system to the actor represent the system returning information to the actor

Double-headed arrows represent both actor and system exchanging information with each other

The arrows should contain text with a brief description of the information flow being exchanged

Page 9: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

9

Context Diagram Example

ATM System

Customer

Bank Manager

ATM Service

Customer Accounts System

Another System

Enters account and transaction information &

gets transaction confirmation receipts

Getscustomeractivity

information

Gets ATM statusinformation

Gets customertransaction

data

Page 10: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

10

Use Cases

Page 11: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

11

Use Cases

Introduced in 1986 by Ivar Jacobson (1 of 3 amigos)

As a supplement to object modeling Central artifact of the UP An important aspect of the UML Purpose: to capture, document and communicate

requirements Essence: discover and record functional

requirements by writing stories about using the system to fulfill stakeholders’ goals

Use cases describe a system from the actors’ perspective

Page 12: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

12

Why/Where AreUse Cases Useful

Help find, record and communicate the system’s behavioral (i.e., functional) requirements (not all)

Use cases describe distinct processes that will be handled by the system, and the events that trigger these processes, so it is a great tool to model how a system will provide a solution consistent with the BPM.

Fosters good communication with stakeholders Intuitive, text-based tool, easy to understand And with system designers/developers Reference for testing and quality reviews Good for system documentation Good for end-user training

Page 13: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

13

Definition

A Use Case: “a sequence of transactions in a system whose task is to yield a result of measurable value to an individual actor of the system” – Jacobson, 1995

i.e., a collection of scenarios that describe actors using a system to support a goal

i.e., a behavior of the system that produces a result of value to the actor

Page 14: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

14

Key Aspects ofUse Case Modeling

Identify system boundaries Identify system actors:

something (human or non-human) that has behavior and interacts with the system

Identify actors’ goals for the system Identify business events that fulfill these goals Model (success/failure) scenarios for these events Write use cases to document these scenarios

Page 15: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

15

Use Case Diagram Illustration

Note how some arrows in this diagram have different direction than in the context diagram because arrows have a different meaning in use case diagrams!!

ATM System

Customer

Bank Manager

ATM Service Rep

Customer Accounts System

Withdraws Funds

Makes Deposits

Manages Account

Inquires CustomerActivity

Monitors ATM Status

Replenishes Cash

Upload TransactionData

SystemBoundary

(External)HumanActors

(External)SystemActor

(Internal)Use Cases

Page 16: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

16

Actors

Page 17: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

17

Actors

An actor is “anything outside of the system that exchanges information with it, including users and other systems” – Armour et. al. 2001

An actor is “an entity that interacts with the system for the purpose of completing an event – Jacobson 1992

Actors play roles (e.g., client, salesperson, etc.) An actor is not a person, but the role the person plays A person can have many roles (e.g., user, manager) And a role can be played by many persons (e.g., clients) An actor can be a person or any (non-human) external

entity (e.g., external system, device, external service organization) that the system will interact with

Page 18: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

18

Importance of Actors Systems need to provide value to actors

– i.e., identifying actors help find use cases Actors help analysts focus on how the system will

be used, not how it will be implemented Actors are external to the system, so they help

define the boundary of the system

Page 19: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

19

Actor Types

Primary Actor: one who receives value from the system– You need to identify all primary actors upfront because the goal

of your system is to deliver value to these actors

Secondary Actor: one who provides service to the system in one or more use cases– i.e., helps create value for primary actors

– i.e., would not exist without primary actors or system

– You can discover these later because your system doesn’t need to fulfill their goals

Page 20: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

20

Actor Personalities

Initiator: an actor who initiates events that trigger a use case (e.g., customer places an order)

External Server: an actor who provides a service to the system in the use case (e.g., query to a credit bureau to process a loan)

Receiver: an actor that receives information from the use case (e.g. IRS receives corporate tax return)

Facilitator: an actor that supports another actor’s interaction with the system (e.g., data entry clerks)

Page 21: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

21

Actor Specification Card

Actor Specification

Actor Name: Customer

Type: Primary Personality: Initiator Abstract: No

Role Description: A customer is a person who has opened an account with the bank. The customer is the main reason for the existence of ATM machines. The customer interacts with the ATM to obtain convenient banking services at times when he/she cannot or is not convenient to obtain such services at the bank’s premises.

Actor Goals (no need to fill this box for secondary actors): Withdraw cash Deposit funds Make transfers Inquire balances

Use Cases Involved with (events that fulfill goals above; a goal will map to one or more use cases; a use case will map to one or more primary actor goals; no need to fill this box initially, only after use cases have been indentified):

Withdraw funds Deposit funds Manage account (make transfers, inquire balances)

Page 22: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

22

Finding Use Cases

List all goals for all primary actors(e.g., obtain a loan, obtain banking services)

Identify business events that will accomplish these goals (e.g., apply for a loan, withdraw cash)

Each business event or goal that yields observable value to a primary actor maps to a use case

Actor specification cards are useful for this As we will see next week, goals are not always

fulfilled by the system (e.g. ATM has no cash), so Use Cases need to model “sunny day” (i.e., optimistic) and “rainy day” (i.e., pessimistic) scenarios.

Page 23: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

23

A Use Case Model

Is a complete set of artifacts of the use cases describing how actors interact with a system

Artifacts are any diagrams, models, cards, tables, documents and other descriptions that define and describe the system requirements

We will focus on two artifacts initially: diagrams and textual descriptions

The use case model should fully describe the entire “functional scope” of the application

Each use case within a use case model has its own smaller functional scope, which encompasses the functional responsibility of the use case

Collectively, all use cases combined should encompass the entire functional scope of the system (i.e., the whole is equal to the sum of the parts).

Page 24: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

24

Main Use Case Model Artifacts

Context Diagram: not really! part of a formal Use Case Model, but it is often included because it provides a great high level representation of the system

Use Case Diagram: shows the system boundary, actors and all use cases involved

Activity Diagrams: use case descriptions (below) are some times diagrammed using this type of UML artifact

Use Cases: text descriptions that describe all possible scenarios of how actors interact with the system to deliver the required system functionality (i.e., functional scope).

Page 25: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

25

Use CaseDiagrams

Page 26: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

26

Use Case Diagram Symbols

UseCase

Actor

Actor

UseCase

UseCase

Actor

System Triggered

Event

Actor initiates

interactionwith thesystem

System Boundary

Page 27: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

27

Meaning of the Direction of Arrows

UseCase

Actor initiatesthe use case

UseCase

The systeminitiates

the use case

Arrows have a DIFFERENT meaning in Use Case Diagrams than in context diagrams

Direction of arrows DO NOT represent information flow

Instead, they indicate WHO INITIATES the use case

Page 28: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

28

Direction of Arrows

UseCase

User initiatesuse case

Human Actors

UseCase

Internal systeminitiates

use case

UseCase

External system initiates use case: rarely happens external system

must have this capability

External System Actors

UseCase

Internal system initiates use case:happens often the use case

needsdescribe how it interacts with the external system

H

H

S

S

Page 29: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

29

Use Case Diagram Symbols

UseCase

Actor

Actor

UseCase

UseCase

Actor

System Triggered

Event

Actor InitiatedEvents

System Boundary

Page 30: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

30

Evaulate Loan Request

Applicant

Accept a Loan

Loan Clerk

Customer

Request Credit ReportCredit Bureau

Submit a Loan Request

Send out late Notice

Send standard Payment Notice

Account Management System

Collection Agency

Refer Deliquent Loan for Debt Collection

Book a Loan

Approve Override request

Loan ManagerReport on Loan Portfolio

Loan Officer

An Example:A Loan Application System

Page 31: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

31

TransitionalArtifacts

Page 32: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

Transitional Artifacts

• Help associate two different artifacts – it can be difficult to figure out how components of two artifact relate to each other

• You can build a transitional artifact for any pair of artifacts, e.g.:• Business Process Model / Use Case Model

• Use Case Model / Data Model

• This can help keep track of things and ensure that no artifact component is superfluous.

• It also helps make your artifacts more cohesive with each other• There are different types of artifacts, but one of the most popular

is a transition matrix or table containing:• One row for each component of one artifact

• One column for each component of the other artifacts

• Some notation or explanation in each cell about how particular components from one artifact relate to the components of the other

Page 33: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

BPM/Use Case Transitional Matrix

• It has one row (or column) for every BPM process step and decision

• And one column (or row) for every use case in your solution

• Mark or make annotations in each cell in which a given BPM process step or decision is associated with a particular use case

• All empty rows should be manual steps

BPM UC-101 UC-102 UC-103 UC-104

P1 X X

P2 X

D1 X

P3

No use cases associated with

this process step

No process steps associated with

this UC

Page 34: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

Example: BPM – Car Rental Process

34

Page 35: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

Example: Use Case Model

Car Rental Application

35

Car Rental Application

Rental Clerk

Office Staff

Operations Crew

UC-01: ProcessPaper Work

UC-02: Vehicle Prep

UC-03 Contract

Page 36: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

Example: BPM/Use Case Transitional MatrixBPM Name Type UC-01: Process

PaperworkUC-02:

Vehicle PrepUC-03

Contract Work

P1 Retrieve Docs M, C

D1 Approve? S, C

P2 Notify Client S, C

P3 Record Approval S, N

P4 Vehicle Options S, C

P5 Select Vehicle S, C

P6 Inquire Status S, N

P7 Check Status S, N

D2 Vehicle Available? S, C

D3 Vehicle Ready? S, N

P8 Report Status S, N

P9 Find Vehicle S, N

P10 Prepare Contract S, C

P11 Sign Contract M, C

P12 Submit Contract S, C

P13 Record Contract S, C

P14 Notify Location S, N

P15 Give Car Keys M, CM=Manual; S=System; C=Current; N=New

Page 37: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

37

The Use CaseModeling Process

Page 38: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

38

The Use CaseModeling Process

Ongoing Use Case Management

Prepare for Use Case Modeling

Initial Use Case

Modeling

Expand Use Case Model

Test Use Cases &

Doc

Organize the Use Cases

Page 39: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

39

The Use Case Modeling Process

Ongoing Use Case Management

Prepare for Use Case Modeling

Initial Use Case

Modeling

Expand Use Case Model

Test Use Cases &

Doc

Organize the Use Cases

Define/Refine Conceptual

Business Objects

Use CaseDiagrams

Initial Use Case Descriptions

Develop Context Diagram

Identify the Major Actors

DevelopInstance

Scenarios

Map Use Cases to Object Models

Model Extend, Include & Generaliz

Elaborate Base Use Case Descriptions

Develop Base Use Case Descriptions

= Required in the project

Page 40: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

40

The Use Case Modeling Process

Ongoing Use Case Management

Prepare for Use Case Modeling

Initial Use Case

Modeling

Expand Use Case Model

Test Use Cases &

Doc

Organize the Use Cases

Define/Refine Conceptual

Business Objects

Initial Use Case Diagrams

Initial Use Case Descriptions

Develop Context Diagram

Identify the Major ActorsDone

Done

Next

DevelopInstance

Scenarios

Map Use Cases to Object Models

Model Extend, Include & Generaliz

Elaborate Base Use Case Descriptions

Develop Base Use Case Descriptions

Done

Page 41: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

41

Initial Use Cases

Page 42: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

42

“Initial” Use Cases

More on base and elaborated use cases later Prepare a list of all use cases based on the actor goals identified in

all Primary Actor Specification cards Per the UP, not all use cases need to be identified at this stage;

more use cases will probably be discovered during the elaboration phase

For each Use Case, fill in a Use Case form to record all the information you have about the responsibilities of that use case

Focus on general descriptions initially (i.e., Initial Use Cases) Per the UP, you will add details later as you further elaborate the use

cases But warning! a description is NOT the same as a glorified name

(e.g., Cash Withdrawal Use Case: allows customers to withdraw cash), but an actual description of what the system needs to do to accomplish the actors’ goals

Page 43: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

43

Use Case Form (“initial” use case or short form)

Use Case ID UC-100 (Stage: Initial)

Use Case Withdraw Funds

Actors (P) Customer

Description The customer inserts card in the ATM, logs in with a pass code, and makes a selection from the available choices to withdraw funds. Once in the funds withdrawal screen, the customer is prompted to enter the amount to withdraw. After the amount is entered, the system will check for availability of funds for that customer. Provided that funds are available, the system will dispense the amount requested in cash and then debit that amount in the customer’s bank account records.

Priority (only if you have this information at this point)

Non-Functional Requirements

(only if noteworthy at this point)

Assumptions (only if noteworthy at this point)

Source Bank funds withdrawal process outline in the bank’s Operational Procedures Manual

Page 44: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

44

The Use Case Modeling Process

Ongoing Use Case Management

Prepare for Use Case Modeling

Initial Use Case

Modeling

Expand Use Case Model

Test Use Cases &

Doc

Organize the Use Cases

Define/Refine Conceptual

Business Objects

Initial Use Case Diagrams

Initial Use Case Descriptions

Develop Context Diagram

Identify the Major ActorsDone

Done

Done

Next

DevelopInstance

Scenarios

Map Use Cases to Object Models

Model Extend, Include & Generaliz

Elaborate Base Use Case Descriptions

Develop Base Use Case Descriptions

Done

Page 45: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

45

Base Use Cases

Page 46: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

46

Expanding the Use Cases:Adding Flow of Events

Base Use Cases

Event Course:

Name:

Actors:

Description:

Flow of Events:

Pre-condition:

Post-condition:

Assumptions:

Etc.

Name:

Actors:

Description:

Initial Use Cases

Page 47: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

47

Base Use Cases

The base use cases describe the specific behaviors and interactions that take place between actors and the system, within the scope of the use case.

An base use case provides a complete description of the normal set of primary interactions between the actors and the system, within a use case

i.e., “sunny day”, “success” or “optimistic” scenarios only, i.e., the scenarios that fulfill actors’ goals

No need to model “rainy day”, “failure” or “pessimistic” scenarios yet – this comes later

Page 48: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

48

Purpose of Base Use Cases

Understand the primary interactions between the system and user as well as system behaviors in the use case

Provide detailed description of “sunny day” scenarios

Begin to identify/document exceptions or alternative scenarios, but don’t model these yet

Begin to identify non-functional requirements and assumptions associated with the use case

Document the priority of each use case in the development effort

Page 49: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

49

Base Use Case Contents

Same as with initial Use Cases: Use case number and name Names of the actor or actors who interact with the system Description of the use case (the description can be shortened if

needed at this point to avoid redundancy with the flows of events)

Plus: “Optimistic” flow of events of the use case

i.e., “sunny day” scenarios Pre-Conditions and Post-Conditions of the use case Priority of the use case Known non-functional requirements (e.g., performance,

security) specifically associated with the use case Any other assumptions concerning this use case A list of exceptions or alternatives found during the definition of

activities in the flow of events

Page 50: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

50

Use Case Template

Use Case ID

Use Case

Actors

Description (brief)

Pre-conditions

Flow of Events 1. 1.1 1.2

2.

Post-conditions

Alternative Flows (briefly described)

Priority (High, Medium or Low)

Non-Functional Requirements

(only those associated with this use case, if any)

Assumptions

Outstanding Issues

Source

Page 51: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

51

Developing Base Use Cases

Take each initial use case description and expand it Focus on defining the basic or ideal processing flow

of an event Usually there is a mapping of one base use case for

each initial use case description However, as more is understood about the

requirements, multiple base use cases may be discovered as the details of a single initial use case description are better understood

The use case model can be simplified by splitting complex and long use cases into smaller, simpler and more manageable use cases

Page 52: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

52

The Flow of Events

The flow of events describes the basic activities (i.e. behaviors and interactions) that occur during the interactions between the actors and the use case

It records the order in which activities are performed Activities are documented as a series of steps Some use numbered steps, others use free text Numbered steps establish reference and sequence They describe the primary activities in the use case The use case should be written so that users can

easily understand and validate them

Page 53: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

53

Use Case Length

There is no industry standard on use case length In theory, use cases can be of any length Most use case experts recommend more numerous, but

shorter use cases, not to exceed 1 or 2 pages It keeps the use case understandable It helps manage the complexity of the flow of events more

effectively Long, complex and convoluted use cases can become very

hard to read and understand, as the readers get lost in pages of detail, defeating the purpose of use cases: communicating requirements clearly!!

Long use cases can always be broken down into shorter ones

Page 54: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

54

Pre-conditions &Post-conditions

Important to know the functional SCOPE of a use case’s responsibilities and the implications of a complete use case execution.

Use cases do not stand alone, they represent functionality that is performed within the context of other use cases

Some use cases depend on others, with one use case leaving the system in a state that is a precondition for another use case to be able to execute

The system states that delimit a use case’s functional scope and its place within a larger set of use cases are known as pre-conditions and post-conditions

Page 55: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

55

For Example

To evaluate a loan request, a loan request must have been submitted

To withdraw funds from an ATM, the customer must have logged in and authenticated

To process an order cancellation, the order must have been received, but not shipped

To process a merchandise return, the merchandise must have been shipped

Page 56: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

56

Definitions:

Preconditions describe the state or status the system must be in, prior to the execution of a use case. What must be true before the use case can execute?

Postconditions describe the state or status of the system as a result of the execution of the use case.

Page 57: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

57

Initial Use Case Example

Use Case ID UC-100

Use Case Withdraw Funds

Actors (P) Customer

Description The customer inserts card in the ATM, logs in with a pass code, and makes a selection from the available choices to withdraw funds. Once in the funds withdrawal screen, the customer is prompted to enter the amount to withdraw. After the amount is entered, the system will check for availability of funds for that customer. Provided that funds are available, the system will dispense the amount requested in cash and then debit that amount in the customer’s bank account records.

Priority High

Non-Functional Requirements

Cash dispensed within 10 seconds after amount is entered

Assumptions Customer speaks English

Source Bank’s Operational Procedures Manual

Page 58: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

58

Base Use Case Example

Use Case ID UC-100

Use Case Withdraw Funds

Actors (P) Customer

Description Customer logs in, selects withdraw funds, enters an amount and receives cash and receipt

Pre-conditions Welcome screen is on

Flow of Events 1.Customer slides card in and out2.Machine prompts customer for password3.Customer enters password4.System authenticates customer5.System presents user with a choice menu6.Customer selects Withdraw Funds option7.System asks customer to select account8.Customer selects account9.System asks customer for amount to withdraw10.Customer enters amount11.System dispenses cash and prints receipt12.System logs customer out

Post-conditions

Welcome screen is back on

Alternative Flows

Customer may not be authenticated; customer may not have sufficient funds; machine may not have enough cash

Priority High

Non-Functional Requirements

Cash dispensed within 10 seconds after amount is entered

Assumptions Customer speaks English

Source Bank’s Operational Procedures Manual

Page 59: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

59

FunctionalScope: 2 Use CaseModelingExtremes

System Scope = Use Case Scope

Individual Use Case Scope is too Small

Do Everything

UseCase1

UseCase2

UseCase3

UseCase4

UseCase5

UseCase6

UseCase7

UseCase8

UseCase9

UseCase10

UseCase11

UseCase13

UseCase14

UseCase15

UseCase16

UseCase17

UseCase18

Actor1Actor2

Actor1

Actor2

Actor3

Actor4

Page 60: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

60

The Use Case Modeling Process

Ongoing Use Case Management

Prepare for Use Case Modeling

Initial Use Case

Modeling

Expand Use Case Model

Test Use Cases &

Doc

Organize the Use Cases

Define/Refine Conceptual

Business Objects

Initial Use Case Diagrams

Initial Use Case Descriptions

Develop Context Diagram

Identify the Major ActorsDone

Done

Done

Done

DevelopInstance

Scenarios

Map Use Cases to Object Models

Model Extend, Include & Generaliz

Elaborate Base Use Case Descriptions

Develop Base Use Case Descriptions

Done

Next

Page 61: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

61

Fully ElaboratedUse Cases

Page 62: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

62

Elaborating on the Base Use Cases

Base use cases provide an excellent perspective of the system, but we need to add more detailed information about the system’s behavior to complete the analysis

Base Use Cases describe “sunny day” scenarios that fulfill the goals of the actor(s) involved (e.g., get cash)

During the execution of a use case there will be variations such as alternatives and exceptions that occur as a result of the interactions between the actors and the system.

Elaborated Use Cases also include “rainy day” scenarios, some of which don’t fulfill actors’ goals (e.g., insufficient funds, no cash in the ATM machine)

Later, we will also add Included and Extended Use Cases, and also Generalizations

Page 63: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

63

What is Added in the Elaborated Use Case?

More details about the activities performed during the flow of events of a Base use case, as needed

Conditional and alternative flow of events to document exception and alternative processing as needed

Splitting the Base Use Case into two or more narrowly focused Elaborated Use Cases, when the Base Use Case is too broad or complex

Adding non-functional requirements specifically associated with the Use Case (e.g., performance, capacity, availability, security), as needed

Adding constraints imposed on the Use Case (e.g., must operate on Linux OS and Oracle database)

Page 64: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

64

Conditional vs. Alternative Flow of Events

The are both very similar– Conditional flow of events are described within

the use case– Alternative flow of events are described in

separate but related Use Cases When to use Conditional Flow of Events:

– Variations are key to understanding the Use Case– Variations occur frequently– Variations are short and simple

When to use Alternative Flow of Events:– Variations are long and complex– Variations have different priorities

Page 65: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

65

Conditional Flow of Events

As more elaborated functionality is discovered, conditional logic can be a useful approach to represent the functional complexity

Be sure to keep the conditional logic at a manageable level of detail.

The objective is to understand the functionality, not to write the software code

Use IF statements to initiate conditional flows; Ex.:

7. If ATM machine is out of cash7.1 Notify customer of no cash availability7.2 Log customer out7.3 Notify ATM service group

Page 66: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

66

Conditional Flow of Events

BaseUse Case

ElaboratedUse Case w/Conditional

Flow of Events

If xxx

If zzz

Page 67: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

67

Use Case Template w/Conditional FlowsUse Case ID (e.g., UC 101)

Use Case

Actors

Description

Pre-conditions

Flow of Events 1. 2. If xx go to 8 (conditional flow)3. 4. If yy go to Use Case UC 101-A1 (alternative flow)5. Etc

Conditional Flows 8. (list/describe relevant events and return to 3)

9. Etc.

Post-conditions

Alternative Flows (if simple, briefly describe it; if long or complex, move to a separate Use Case)

Priority (High, Medium or Low)

Non-Functional Requirements

(only those associated with this use case, if any)

Assumptions

Outstanding Issues

Source

Page 68: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

68

Another Way to Describe Conditional FlowsUse Case ID (e.g., UC 101)

Use Case

Actors

Description

Pre-conditions

Flow of Events 1. 2. If xx (conditional flow listed where it occurs) 2.1 2.23. 4. If yy go to Use Case UC 101-A1 (alternative flow)5. Etc

Post-conditions

Alternative Flows (if simple, briefly describe it; if long or complex, move to a separate Use Case)

Priority (High, Medium or Low)

Non-Functional Requirements

(only those associated with this use case, if any)

Assumptions

Outstanding Issues

Source

Page 69: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

69

Initial Use Case Example

Use Case ID UC-100

Use Case Withdraw Funds

Actors (P) Customer

Description The customer inserts card in the ATM, logs in with a pass code, and makes a selection from the available choices to withdraw funds. Once in the funds withdrawal screen, the customer is prompted to enter the amount to withdraw. After the amount is entered, the system will check for availability of funds for that customer. Provided that funds are available, the system will dispense the amount requested in cash and then debit that amount in the customer’s bank account records.

Priority High

Non-Functional Requirements

Cash dispensed within 10 seconds after amount is entered

Assumptions Customer speaks English

Source Bank’s Operational Procedures Manual

Page 70: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

70

Base Use Case Example

Use Case ID UC-100

Use Case Withdraw Funds

Actors (P) Customer

Description Customer logs in, selects withdraw funds, enters an amount and receives cash and receipt

Pre-conditions Welcome screen is on

Flow of Events 1.Customer slides card in and out2.Machine prompts customer for password3.Customer enters password4.System authenticates customer5.System presents user with a choice menu6.Customer selects Withdraw Funds option7.System asks customer to select account8.Customer selects account9.System asks customer for amount to withdraw10.Customer enters amount11.System dispenses cash and prints receipt12.System logs customer out

Post-conditions

Welcome screen is back on

Alternative Flows

Customer may not be authenticated; customer may not have sufficient funds; machine may not have enough cash

Priority High

Non-Functional Requirements

Cash dispensed within 10 seconds after amount is entered

Assumptions Customer speaks English

Source Bank’s Operational Procedures Manual

Page 71: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

71

Example:Elaborated Use Case w/ Conditional Flows

Use Case ID UC-100

Use Case Withdraw Funds

Actors (P) Customer

Description Customer logs in, selects withdraw funds, enters amount, gets cash

Pre-conditions Welcome screen is on

Flow of Events 1.Customer slides card in and out2.Machine prompts customer for password3.Customer enters password4.If password is incorrect

4.1 Go back to step 2 4.2 If password is incorrect 3 times 4.2.1 Retain card and notify user 4.2.2 Go to step 13

5.System authenticates customer6.System presents user with a choice menu7.Customer selects Withdraw Funds option8.System asks customer to select account9.Customer selects account10.System asks customer for amount to withdraw11.Customer enters amount12.System dispenses cash and prints receipt13.System logs customer out

Post-conditions Customer is logged out an welcome screen is back on

Alternative Flows customer may not have sufficient funds; machine may not have enough cash

Etc. High

Non-Functional Requirements

Cash dispensed within 10 seconds after amount is entered

Assumptions Customer speaks English

Source Bank’s Operational Procedures Manual

Page 72: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

72

Alternative Use Cases

Normally there are several possible variations, alternatives and exceptions that can occur when a use is executed. Ex.:– What if loan applicant has a bad credit history?– What if loan applicant doesn’t qualify?)

These alternative behaviors can represent significant functionality, so it is necessary to model the implications of these alternatives

We do this in Alternative Use Cases Which describe the Flow of Events that are triggered

when such exceptions occur in the Use Case An alternative Use Case is not independent;

it is tied to the Use Case that originated it

Page 73: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

73

Alternative Flow of Events

BaseUse Case

AlternativeUse Cases

UC 101

UC 101-A1

UC 101-A2

UC 101-A3

Page 74: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

74

Alternative Flow of Events

Documents the specific behaviors that will occur in an Alternative Use Case

An alternative Use Case can involve such things as:– A different processing option based on user input– A decision taken within the use case flow of events, or – An exception condition that triggers a different set of behaviors

Not all alternative events need to go in separate Use Cases; they can be documented quickly and briefly in the base use case description

The Alternative Use Case has a new field indicating the “Insertion Point” (where it starts executing in the Base Use Case

Page 75: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

75

Use Case ID (same ID as the base Use Case ID, but with suffix A1, A2, etc.; e.g., UC 101-A1)

Use Case

Actors (same as Base Use Case’s Actors)

Description

Insertion Point (step in Base Use Case where this alternative flow should be inserted)

Pre-conditions (clearly indicate under which conditions trigger the alternative flow)

Alternative Flow of Events

1. 2. 3.

Conditional Flows (within the Alternative flow)

Post-conditions

Priority

Non-Functional Requirements

Assumptions

Outstanding Issues

Source

Use Case Template for Alternative Flows

Page 76: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

76

Use Case ID UC-100

Use Case Withdraw Funds

Actors (P) Customer

Description Customer logs in, selects withdraw funds, enters amount, gets cash

Pre-conditions Welcome screen is on

Flow of Events 1.Customer slides card in and out2.Machine prompts customer for password3.Customer enters password4.If password is incorrect

4.1 If card used was reported stolen execute UC-100-A1 4.2 Go back to step 2 4.3 If password is incorrect 3 times 4.3.1 Retain card and notify user 4.3.1 Go to step 13

5.System authenticates customer6.System presents user with a choice menu7.Customer selects Withdraw Funds option8.System asks customer to select account9.Customer selects account10.System asks customer for amount to withdraw11.Customer enters amount12.System dispenses cash and prints receipt13.System logs customer out

Post-conditions Welcome screen is back on

Alternative Flows customer may not have sufficient funds; machine may not have enough cash

Etc. High

Non-Functional Requirements

Cash dispensed within 10 seconds after amount is entered

Assumptions Customer speaks English

Source Bank’s Operational Procedures Manual

Example:Elaborated Use Case w/ Alternative Flows

Page 77: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

77

Use Case ID UC-100-A1

Use Case Withdraw Funds Alternative for Stolen Card Use

Actors (P) Customer

Description Notify security when use of a stolen card is detected

Insertion Point UC-100, flow 4.1

Pre-conditions User entered incorrect password and card had been reported stolen

Flow of Events 1.Immediately notify bank security2.Place a call to local authorities3.Take multiple pictures with ATM camera4.Interact with user as if it were a normal transaction5.Disable cash dispensing functions temporarily6.Introduce processing delays to keep customer distracted7.Retain card8.Timeout if user stops interacting with ATM 30 seconds or

more9.Timeout if new user inserts a legitimate card10.System logs customer out

Post-conditions Welcome screen is back on

Alternative Flows

Etc. High

Non-Functional Requirements

Assumptions System has local authority notification feature

Source Bank’s Operational Procedures Manual

Example:Alternative Use Case

Page 78: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

78

The Use Case Modeling Process

Ongoing Use Case Management

Prepare for Use Case Modeling

Initial Use Case

Modeling

Expand Use Case Model

Test Use Cases &

Doc

Organize the Use Cases

Define/Refine Conceptual

Business Objects

Initial Use Case Diagrams

Initial Use Case Descriptions

Develop Context Diagram

Identify the Major ActorsDone

Done

Done

Done

DevelopInstance

Scenarios

Map Use Cases to Object Models

Model Extend, Include & Generaliz

Elaborate Base Use Case Descriptions

Develop Base Use Case Descriptions

Done

Next

Done

Page 79: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

79

Extended Use Cases

When developing a use case model, there will be times when significant behaviors will be identified, which extend the behavior of the base use cases

Extended behaviors are commonly used to model:– Future extensions to the system

(it is a good development practice to include all known future extensions in the analysis model)

– Extended versions of the system (e.g., “Premium”, “Professional”)

– Possible extensions, which can be added or removed later These additional behaviors are documented using

Extend Relationships and Extended Use Cases

Page 80: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

80

Advantages of the Extend Approach:

Helps represent the system’s extended behavior in the Use Case without cluttering, complicating or enlarging the base flow of events.

Rather, significant extensions can be drawn out and represented separately

The Base Use Case flow does not have to be re-written and the Use Case Model does not need to be re-drawn to reflect this new behavior.

As new extensions are discovered they can be added to the model

As extensions are discarded they can be easily removed from the model

Page 81: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

81

Adding Extended Use Cases

The Base Use Case is extended at specific points in its Flow of Events named “Extension Points”

The extending behaviors are executed at these points when the required conditions for extension are met

Control is returned to Base Use Case at the same point in Flow of Events where the extension was triggered

Page 82: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

82

Extended and Extending Flows

Extended Flow

Extending Flow

If the extending condition is metthe extending flow is executed

Page 83: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

83

UML 1.3 Use Case Diagram Notation for the Extend Relationship

ExtendedUse Case

ExtendingUse Case A

ExtendingUse Case B

<<extend>>

<<extend>>

Note: UML 1.2 supported by MS Visiouses <<extends>> instead of <<extend>>

i.e., the use case being extended

i.e., the flows

extending the original use case

Page 84: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

84

Example (Base Use Case is for Consumer Loans)

Process Loan

Application

Additional Flows for Business

Loans<<extend>>

<<extend>>Additional

Flows for Real Estate Loans

The arrow shows

which use case

“knows about”

which use case

Page 85: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

85

Use Case ID (same as the base Use Case ID, but with suffix E1, E2, etc.; e.g., UC 101-E1)

Use Case

Actors (same as Base Use Case’s Actors)

Description

Extended Use Case

Extension Point (step in Base Use Case where this extension occurs)

Guard Conditions (precondition in the Extended Use Case that triggers the extension)

Alternative Flow of Events

1. 2. 3.

Conditional Flows (within the Extended flows)

Post-conditions

Priority

Non-Functional Requirements

Assumptions

Outstanding Issues

Source

Use Case Template for Extended Flows

Page 86: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

86

Use Case ID UC-100-E1

Use Case Print bank statement for a fee

Actors (P) Customer

Description Allows customer to print a bank statement with balances and transactions in the last 30 days for a $1 fee

Extended Use Case UC-100 Withdraw Funds

Extension Point UC-100; after flow step 12

Guard Conditions Statement printing option is implemented and enabled

Flow of Events 1.Ask customer if he/she would like a printed bank statement

2.If customer says yes 2.1 Notify customer of a $1 charge for this service 2.2 Prompt customer to continue or cancel 2.3 If customer selects continue 2.3.1 Print statement 2.3.2 Debit $1 from customer’s account 2.3.3 Display thank you note

Post-conditions Return to UC-100 and continue on flow step 13

Alternative Flows

Etc. Low

Non-Functional Requirements

Statement must print within 20 seconds

Assumptions

Source Bank’s Operational Procedures Manual

ExtendingUse Case

Page 87: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

87

Refactoring and Included Use Cases

The concept of “refactoring” comes from software programming -- as software gets corrected, maintained, updated, etc. its code often becomes disorganized and/or suboptimal

Re-factoring: “is a technique to restructure code in a disciplined way” – Martin Fowler

It involves re-organizing the software code without changing its functionality, to make it easier to understand and maintain

Refactoring is applied today to many aspects of system development, not just programming

In Use Cases, it involves the “Included” Use Cases

Page 88: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

88

Included Use Cases

Included Use Cases provide a way to model similar behaviors that can be used across multiple use cases

As the Use Case is elaborated, you may identify flow of events that are repeated in several Use Cases

You can extract them into generic “Included” Use Cases, and then “Include” them whenever you need them

Examples:– User logs in and gets authenticated

– Check product availability in inventory

Page 89: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

89

Advantages of Included Use Cases

Identify commonalities among use cases

Manage redundancy within the use case model

Facilitate change in the use case model – when things change in the Included case, you only need to make the necessary changes once

Begin to assemble Included Use Case “Libraries” of common behaviors that can be re-used in other projects

Page 90: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

90

Included Use Cases

Base Use Case A

Included Use Case

Point where Use Case is Included

Base Use Case B

Page 91: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

91

UML 1.3 Use Case Diagram Notation for the Include Relationship

Base Use Case A

IncludedUse Case I1

<<include>>

<<include>>

Note: UML 1.2 supported by MS Visioemploys <<uses>> instead of <<include>>

Base Use Case B

Base Use Case C

IncludedUse Case I2

<<include>>

<<include>>

<<include>>

The arrow shows

which use case

“knows about”

which use case

Page 92: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

92

Example(Base Use Case for ATM System)

Withdraw Cash

Check Customer Balances

<<include>>

Inquire Balance

Make a Deposit

Authenticate User

<<include>>

<<include>>

BaseUse Cases

IncludedUse Cases

<<include>>

<<include>>

Page 93: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

93

Using Included Use Cases

Identify all Included Use Cases with the prefix “IUC” instead of “UC”

Indicate in the Base Use Case the point in the Flow of Events where the included use case is included

In the Included Use Case, document all Base Use Cases that use that Included Uses Case

Page 94: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

94

Use Case ID (use IUC suffix instead of UC; e.g., IUC 001)

Use Case

Description

Including Use Cases (list Use Cases that use this Included Use Case)

Pre-conditions

Alternative Flow of Events

1. 2. 3.

Conditional Flows (within the Included flows)

Post-conditions

Priority

Non-Functional Requirements

Assumptions

Outstanding Issues

Source

Use Case Template for Included Flows

Page 95: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

95

Use Case ID UC-100

Use Case Withdraw Funds

Actors (P) Customer

Description Customer logs in, selects withdraw funds, enters amount, gets cash

Pre-conditions Welcome screen is on

Flow of Events 1.Include IUC-001 Log in and Authenticate Customer2.If not successful, go to step 103.System presents user with a choice menu4.Customer selects Withdraw Funds option5.System asks customer to select account6.Customer selects account7.System asks customer for amount to withdraw8.Customer enters amount9.System dispenses cash and prints receipt10.System logs customer out

Post-conditions

Welcome screen is back on

Alternative Flows

customer may not have sufficient funds; machine may not have enough cash

Etc. High

Non-Functional Requirements

Cash dispensed within 10 seconds after amount is entered

Assumptions Customer speaks English

Source Bank’s Operational Procedures Manual

Example:Elaborated Use Case w/ Include Flows

Page 96: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

96

Use Case ID IUC-001

Use Case Log in and Authenticate Customer

Description Customer logs, gets authenticated, card is checked against stolen reports

Including Use Cases

UC-101 Withdraw Funds; UC-102 Deposit Funds; UC-103 Other transactions

Pre-conditions ATM has detected a card in the slot

Flow of Events 1.Customer slides card in and out2.Machine prompts customer for password3.Customer enters password4.If password is incorrect

4.1 If card used was reported stolen execute IUC-001-A1 4.2 Go back to step 2 4.2 If password is incorrect 3 times 4.2.1 Retain card and notify user 4.2.1 Go to step 13

5.System authenticates customer

Post-conditions System is back on the next flow step right after this included case was invoked

Alternative Flows

Etc. High

Non-Functional Requirements

Authentication should take place within 20 seconds after password entered

Assumptions Customer speaks English

Source Bank’s Operational Procedures Manual

Example:IncludedUse Case

Page 97: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

97

Generalization Relationships

With the introduction of UML 1.3, a new relationship was introduced between use cases – Generalization, per UML, it:

“implies that the child Use Case contains [i.e., inherits] all the attributes, sequences of behavior, and extension points defined in the parent use case, and participates in all relationships of the parent use case.”

Like classical generalization and inheritance A more powerful version of “Include”

Page 98: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

98

Generalizations in Use Case Models

AbstractActor

Actor A

Actor B

Parent Use Case

Child Use Case A

Child Use Case B

Use Case

Page 99: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

99

Example of Generalizations

Bank Customer

Consumer

Business Client

Process Loan Application

Business LoanApplication

Consumer LoanApplication

Applies for Loan

Applies for Loan

Inquire Application

Process

Page 100: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

100

Important Rules About Use Case Models

Alternative Use Cases don’t need to be diagrammed they an integral part of the originating Use Case (if you decide to diagram them, apply the same rules for Extended Use Cases)

Use Cases should not connect with other Use Cases in the diagram Actors should not connect with other Actors in the diagram Only Actors connect (interact) with Use Cases But there are 3 exceptions:

– Extended Use Cases connect with their respective extending Use Cases

– Included Use Cases connect with the Use Cases that include them

– Use cases can connect to other use cases and actors can connect to other actors when there is a “generalization” relationship

Extended and Included Use Cases may or may not connect directly with Actors

Extended and Included Use Cases don’t “stand alone” they are always associated with another use case.

Page 101: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

101

Practice Example

We need to develop an order-processing system for a mail-order company that sells musical instruments of all sorts. Currently, the company has a paper catalog from which customers phone in or fax their orders and orders are only taken by hand. The proposed system should automate this process. It needs to allow customers to place orders by mail, phone, fax or directly through the web. Customers can pay with a money order or credit card. Customers can buy multiple items in various quantities with a single order. The system needs allow sales clerks to monitor the status of order fulfillment and notify customers when delays are anticipated. The system also needs to handle returns and cancellations. The system needs to interface with two existing external systems: (1) a Warehouse System – to send re-stocking orders to the central warehouse when necessary and to inquire about stock availability; and (2) an Accounting System – to record customer receivables and pre-payments and inquire about customer payments.

Page 102: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

AUActivity Diagrams

Page 103: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

Activity Diagrams

Are used to describe sequencing of activities They are particularly useful to visualize business

workflows and processes Activity diagrams are often used to diagram:

– Business process models using UML notation– Test cases– Flows of events within a particular use case– Dependencies between use cases– Describe instance scenarios involving more

than one use case

Page 104: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

Use Case ID UC-100

Use Case Withdraw Funds

Actors (P) Customer

Description Customer logs in, selects withdraw funds, enters amount, gets cash

Pre-conditions Welcome screen is on

Flow of Events 1.Customer slides card in and out2.Machine prompts customer for password3.Customer enters password4.If password is incorrect

4.1 Go back to step 2 4.2 If password is incorrect 3 times 4.2.1 Retain card and notify user 4.2.1 Go to last step

5.System authenticates customer6.System presents user with a choice menu7.Customer selects Withdraw Funds option8.System asks customer for amount to withdraw9.Customer enters amount10.Check funds in customer account

10.1 If not enough funds, notify user 10.2 Go to last step

11.Check availability of cash in ATM 11.1 If not enough cash, notify user 11.2 Notify ATM Service 11.3 Go to last step

12.Update customer account balance 13.Dispense cash and print receipt14.Log out and thank you customer

Post-conditions Etc.

Example:

WithdrawFundsUse Case

Page 105: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

Example:

Withdraw Funds Activity Diagram (notice similarity with BPMs)

Page 106: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

AUTest Cases

Page 107: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

TestingEnsuring that the system performs as required

Test types: UNIT TESTING:

Ensure that each part of the system work well individually SYSTEM TESTING:

Ensure that all the parts work well together REGRESSION TESTING:

Ensure that new software work well with the existing software ACCEPTANCE TESTING: By users and/or clients

Methods: BLACK BOX TESTING: Testing if the system does what is

supposed to, without inspecting the internals of the system CLEAR BOX TESTING: Inspecting and testing the internals of

the system (opening the black box)

Test cases are useful for

Page 108: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

Test Cases

• Each Use Case should have a “test suite” associated with it

• Each test case in the suite represent a path in the Use Case Flow of Events

• Ideally, each path should have a test case (difficult with large complex systems)

• Pay attention to borderline conditions (e.g., customer withdraws maximum allowable cash, customer withdraws all funds available), which is usually where software fails

Page 109: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

Test Cases

Use Case Test Suite

UC 101

TC 101 - 1Pre-conditions

Post-conditions

TC 101 - 2Pre-conditions

Post-conditions

TC 101 - 3Pre-conditions

Post-conditions

Page 110: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

Prompt for password

Enter password

PasswordCorrect?

Welcome screen is on

Yes

Third miss?No

Yes

No

Retain card

Notify user

Authenticate user

Present menu choice

Select wthdraw funds

Select amount

Enoughfunds?

Yes NoNotify User

Enoughcash inATM?

No

YesNotify User

Notify ATM Service

Update Balance

Dispense Cash

Log Out

Welcome screen is on

Test SuiteExample:Withdraw CashUse Case

Path 1

Path 2

Path 3

Path 4

Path 5

A

S

E

E

SE

SE

S

S

A

A

S

S

SESE

SE

S

E

E

A = Input or other action from an ActorS = An action performed by the systemE = An exception (e.g., conditional flow)

Page 111: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

Example:

Test Case for Path 2

Use Case ID TC-100-2

Use Case Withdraw Funds

Actors (P) Customer

Description Customer logs in, selects withdraw funds, enters amount, customer has fund, ATM has no cash

Pre-conditions Welcome screen is on

Flow of Events A1. Customer slides card in and outS1. Machine prompts customer for passwordA2. Customer enters passwordS2. System authenticates customerS3. System presents user with a choice menuA3. Customer selects Withdraw Funds optionS4. System asks customer for amount to withdrawA4. Customer enters amountS5. System verifies that customer has fundsS6. System checks cash in ATM machineE1. ATM has no cash SE1. Notify customer SE2. Notify ATM serviceS7. Logout customer

Post-conditions Welcome screen is back on

Alternative Flows

Etc.

Page 112: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

AUDocumentation

Page 113: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

Documentation

• Use cases map directly to events that users will be engaged in

• And to events in which external systems will interact with the system

• So Use Cases can be used as the base to provide documentation for users

• And for the interface with external systems• These documentation can be written to mirror Use

Case, but perhaps with more user-friendly language, or

• In the case of external system interfaces, with more technical language that relates to that system (e.g., TCP/IP connection, accounting system, etc.)

Page 114: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

114

BlankTemplates

Page 115: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

115

Requirement Shell

Requirement No.: Requirement Type: Use Cases:

Description:

Rationale:

Source:

Fit Criterion:

Customer Satisfaction Rating: Customer Dissatisfaction Rating:

Dependencies: Conflicts:

History: Supporting Materials:

Page 116: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

116

Actor Specification

Actor Name:

Type: Personality: Abstract:

Role Description:

Actor Goals:

Use Cases Involved with:

Page 117: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

117

Use Case Specification (shortened)

Use Case ID

Use Case

Actors

Description

Priority

Non-Functional Requirements

Assumptions

Source

Page 118: A U Use Case Analysis Prof. J. Alberto Espinosa Business Requirements Analysis ITEC-630 Fall 2010

118

Use Case ID

Use Case

Actors

Description

Pre-conditions

Flow of Events 1.

Post-conditions

Alternative Flows

Priority

Non-Functional Requirements

Assumptions

Source