56
1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book.

1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

Embed Size (px)

Citation preview

Page 1: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

1

Chapter 6: Use CasesChapter 6 in Applying UML and Patterns Book.

Page 2: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

2

Overview

What use cases are and how to write them.

Different format of use cases.

How to draw a use case diagram.

Extend and include use cases.

Page 3: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

3

By the end of this chapter, you will..

Understands the use case diagram and the different relationship types inside the use case diagram.

Understands the meaning of “Use Case”.

Understands the different methods in writing the use cases.

Page 4: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

4

Capturing functional requirementswith use case diagram

It describes the main system functions from the standpoint of an external observer.

Used during requirements elicitation to represent external behavior.

It emphasize on what the system does rather than how it.

It is created during the early stages of a project – during the analysis phase rather than during the design phase.

It provides a high-level view of what the system does and who uses it.

It provides the basis for determining the user interfaces (UIs) to the system.

Page 5: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

5

Example: Use Case DiagramATM Banking System

Page 6: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

6

Use Case Diagram

Any use case diagram should contain:

Actor(s). Use cases. Associations/Relationships among

actors and use cases.

Page 7: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

7

Use Case DiagramActor

Actors are drawn as stick persons with the role of the actor written below.

Actor names are unique typically represent the role that an actor plays with respect to the system.

Is someone (e.g. human beings) or something (e.g. other objects or systems) that interact with the system.

Is entity external to the system who participates in the story of the use case (receive or input), such as a person, computer system or organization.

Example: a library clerk, cashier, customer, Passenger, GPS satellite, bank, customer department.

Actor role name

Page 8: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

8

Use Case DiagramUse Case

Use cases are drawn as ellipses with the name of the use case written inside the ellipse.

Use case name typically consists of an active verb and one or more nouns that concisely describe the system function modeled.

Use caseUse case Use caseUse case

Page 9: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

9

Use Cases: is a collection of related scenarios that describe actors using a system to support a goal.

Scenario (Use Case instance):

Is a possible example of what happens when an actor interacts with the system.

Represents a unit of functionality that the system provides.

Contains a specific sequence of actions and interactions between actors and the system under discussion.

Example: the scenario of entering book information into the catalog, or buying items at a store, or using an ATM.

Use Case DiagramUse Case

Page 10: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

10

Use Case DiagramAssociation/Relationship

Actors are connected to the use case(s) with which they interact by a line, which represents the relationship between the actor(s) and the use case(s).

One actor may be associated with one or more use cases.

One use case may be associated with one or more actors.

Page 11: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

11

Example 1: Use Case DiagramBanking System

Page 12: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

12

Example 2: Use Case DiagramRegistration System

Page 13: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

13

Example 3: Use Case DiagramLibrary System

Page 14: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

14

Activity: Use Case Diagram

Draw the use case diagram for an online airline reservation system (min. 3 use cases).

Page 15: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

15

Use Case(s)

Each use case have an associated behavior specification which describes the sequence of actions making up a use case scenario.

Use case behavioral description has two formats:

High Level Use CaseHigh Level Use Case Expanded Use CaseExpanded Use Case

Describes a process very briefly, usually in 2 or 3 sentences.

Describes a process in details. It has an additional section not present in HL.

It consists of :•Use Case: Use case name.•Actors: List of actors (external agents) indicating who initiates the use case.•Description (Success scenario): Narrative description of the process.

• Purpose: Intention of the use case.• Type:

1- Primary, Secondary or Optional. 2- Essential or Real.

• Cross References: Related use cases and system functions.

• Typical course of actions: describes in detail the conservation of interaction between the actors and the system.

Page 16: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

16

High Level Use Case Format: HLExample 1: Buy Items

Use Case: Buy Items

Actor: Customer(initiator) , Cashier

Description (Success Scenario):A customer arrives at a checkout with items to purchase. The Cashier records the purchase items and collects payment. On completion, the Customer leaves with the items.

Page 17: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

17

Use Case: Add Resources

Actor: Librarian

Description (Success Scenario):The use case begins when the Librarian receives new resources (books and videos) to add to the catalog. The title, call number, and other information are recorded. Then the resources are placed on a shelf organized by resource type and call numbers.

High Level Use Case Format: HLExample 2: Library - Add Resources

Page 18: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

18

Expanded Use Case TypesPrimary - Secondary - Optional

PrimaryPrimary Secondary Secondary OptionalOptional

Describes a major, common process.

Ex: Buy items.

Describes a rare, unusual, or exceptional processes.

Ex: Request for stocking new product.

Represents processes that may not be tackled.

Page 19: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

19

Expanded Use Case TypesEssential - RealAbstract level use cases:

EssentialEssential RealReal

• The essence of the process.

• Analysis-oriented.• Expanded use cases that are expressed

in an ideal form free of technology and implementation details.

• HL are always essential.• Expresses process relatively independent

of HW/SW solutions.

• Concretely describes the process in terms of its real current design, committed to specific input and output Technology.

• Design-oriented.• Expressed in terms of the solution. Ex:

screen shots of windows, entry into input fields, and so forth.

Page 20: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

20

Examples of essential vs. real types:

EssentialEssential RealReal

Ex1 The Librarian records the call number.

The Librarian uses the laser wand to scan the bar code for the call number, which is

transmitted to the computer.

Ex2 The Account Holder identifies himself to the ATM.

The Account Holder inserts the card into the ATM card reader. He is prompted to enter his PIN (see screen shot 4), which

he inputs with a numeric keypad.

Expanded Use Case TypesEssential - Real

Page 21: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

21

Expanded Use Case Format Example: Buy Items with Cash

Use Case: Buy Items with Cash.

Actor: Customer (initiator), cashier.

Purpose: Capture a sale & its cash payment.

Overview (Success Scenario):A customer arrives at a checkout with items to purchase. The Cashier records the purchase items and collects a cash payment. On completion, the Customer leaves with the items.

Type: Primary.

Cross References: Functions R1.2,…

Page 22: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

22

Actor ActionActor Action System ResponseSystem Response1. This use case begins when a Customer

arrives at the POST checkout with items to purchase.

2. The Cashier records the identifier from each item. If there is more than one of the same item, the Cashier can enter the quantity as well.

3. Determines the item price and adds the item information to the running sales transaction. The description and price of the current item are presented.

4. On completion of item entry, the Cashier indicates to the POST that item entry is complete.

5. Calculate and presents the sale total.

6. The Cashier tells the Customer the total.

Expanded Use Case Format Example: Buy Items with Cash (cont.)

Page 23: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

23

Actor ActionActor Action System ResponseSystem Response7. The Customer gives a cash payment

possibly greater than the sale total.

8. The Cashier records the cash received amount.

9. Shows the balance due back to the Customer & generate a receipt.

10. The Cashier deposits the cash received & extracts the balance owing. The Cashier gives the balance owing, & the printed receipt to the Customer.

11. Logs the completed sale.

12.The Customer leaves with the items purchased.

Alternatives: Line 2. Invalid identifier entered. Indicate errors.Line 7. Customer didn’t have enough cash. Cancel sales transaction.

Expanded Use Case Format Example: Buy Items with Cash (cont.)

Page 24: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

24

Essential use case

Real use case

Actor ActionActor Action System ResponseSystem Response

This Cashier records the identifier for each item.

Determines the item price & adds the item information to the running sales transaction. The description and the price of the items are presented.

Actor ActionActor Action System ResponseSystem Response

For each item, the Cashier types in the UPC field of Window1. They then press “Enter Item” button with the mouse or Enter key.

Display the item price & adds the item information to the running sales transaction. The description & price of the current item are displayed inTextbox 2 of Window1.

Expanded Use Case - Essential vs. Real Types Example 1: Buy Items with Cash

Page 25: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

25

Essential use case

Real use case

Actor ActionActor Action System ResponseSystem Response

This Customer identifies themselves. Presents options.

Actor ActionActor Action System ResponseSystem Response

1. The Customer inserts his card. 2. Prompts for PIN.

3. Enter PIN on keypad. 4. Display options menu.

Expanded Use Case - Essential vs. Real Types Example 2: ATM Withdraw Cash

Page 26: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

26

Identifying Use Cases

Either by:

Example:

Type1: Actor basedType1: Actor based Type 2: Event basedType 2: Event based

• Identify the actors related to an organization.

• For each actor, identify the processes they initiate or participate in.

• Identify the external events that a system must respond to.

• Relate the events to actors and use cases.

Cashier Log in, Cash out.

Customer Buy items, Refund items.

Page 27: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

27

Use Cases = Processes

A use case describes a process, such as business process.

A process describes, from start to finish, a sequence of events, actions and transactions required to produce or complete something of value.

Example:

• Withdraw cash from an ATM.• Order a product.• Register for courses at a school.• Check the spelling.• Handle a call.

Page 28: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

28

Decision Point & Branching

A Use case may contain decision points such as in Buy Items, the customer may choose to pay via cash, credit or check.

If one of them is the typical case (usual), then the typical case is the one written in Typical course of events, and the other alternatives should be written in the Alternatives section.

If all the alternatives are equal in their likelihood, (like the payment types), write in the main section of Typical course of events a branch event, that indicates that the possible branches are written in subsections.

Then write a subsection for each branch, again using Typical course of events.

If subsections have alternatives, write them in an Alternatives section.

Page 29: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

29

Decision Point & BranchingExample: Buy items

Actor ActionActor Action System ResponseSystem Response1. This use case begins when a Customer arrives at

POST checkout with items to purchase.2. …..

3. Customer chooses payment type:a. If cash payment, see section pay by Cash.b. If credit payment, see section pay by Credit.c. If check payment, see section pay by Check.

4. Logs the completed sale.5. Print the receipt.

6. The cashier gives the receipt to the customer.7. The customer leaves with the items.

Section: Main

Page 30: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

30

Actor ActionActor Action System ResponseSystem Response1. The customer gives a cash payment- possible

greater than the sale total.2. The Cashier records the cash tendered.

3. Shows the balance due back to the Customer.

4. The Cashier deposits the cash received and extracts the balance owing.

The Cashier gives the balance owing to theCustomer.

Alternatives: Line 4. Insufficient cash in drawer to pay balance. Ask for cash from supervisor or ask Customer for a payment closer to sale total.

Decision Point & BranchingExample: Buy items (cont.)

Section: Pay by cash

Page 31: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

31

Plan and Elaborate Phase Steps

1. Define system function.

2. Define system boundary, actors & use cases.

3. HL use cases.

4. Draw use case diagram.

5. Expand critical use cases (Essential / Analysis).

6. Real use case (Design).

7. Rank use case (not discussed).

Page 32: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

32

Example 12- Define actors and use cases:

Cashier Log in, Cash out.

Customer Buy items, Refund items.

Manager Start up, Shut down.

System Administrators Add new users.

Page 33: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

33

Example 1 (cont.)3- Use cases in HL format:

Use Case: Buy ItemsActors: Customer (initiator), CashierType: PrimaryDescription: A Customer arrives at a checkout with items to purchase. The Cashier records the purchase items and collects a payment. On completion, the Customer leaves the store with the items.

Use Case: Start UpActors: ManagerType: PrimaryDescription: A Manager powers on a POST in order to prepare it for use by Cashiers. The Manager makes sure the date and time are correct, after which the system is ready for Cashiers’ use.

Page 34: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

34

Example 1 (cont.)4- Use cases diagram:

Page 35: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

35

Example 1 (cont.) 5- Expand critical use cases:

Page 36: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

36

Example 1 (cont.) 5- Expand critical use cases:

Page 37: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

37

Example 1 (cont.) 5- Expand critical use cases:

Page 38: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

38

Example 2

Use Case: UC1 - Make Book Entry

Actor: Library clerk

Success Scenario:A library clerk accesses a terminal in order to enter one or possibly many book entries in a database. At the end of every entry, the system displays a confirmation message. At the end of the session the system would display an informative message.

Use Case: Make a book Entry

Page 39: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

39

Example 2 (cont.)

Use Case Diagram

Page 40: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

40

The <<extends>> Relationship

<<extends>> relationships represent exceptional or seldom invoked cases.

A reusable use case (component) that conditionally interrupts (is invoked optionally - like a menu selection in an application) the execution of another use case to augment its functionality.

The functionality in the original problem statement needs to be extended.

The exceptional event flows are factored out of the main event flow for clarity.

The base use case can be executed without the use case extension in extend associations.

The responsibility for deciding when the extending use case should be used lies with the extending use case.

Arrow points to use case being extended.

Page 41: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

41

The <<extends>> Relationship

Use cases representing exceptional flows can extend more than one use case.

The direction of an <<extends>> relationship is to the extended use case.

For example: the use case “ReportEmergency” is complete by itself, but can be extended by the use case “Help” for a specific scenario in which the user requires help.

Page 42: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

42

The <<extends>> Relationship

Major variation: If you have a major alternative path in the use case, and it’s complex enough to have its own alternative paths, then placing it on your diagram will honestly expose the complexity - which is helpful in costing, assignment and scheduling.

Optional subgoal: If you have parts of the use case that would be optional to implement (or even optional to execute) to meet the actor’s goals, put those parts into their own use case. Doing so clarifies the relationships between actors and their goals. It also emphasizes that you may deliver these optional goals in later releases.

Page 43: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

43

The <<extends>> Relationship

Page 44: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

44

The <<extends>> Relationship

Page 45: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

45

The <<extends>> Relationship

Page 46: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

46

The <<extends>> Relationship

Page 47: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

47

The <<extends>> Relationship

Page 48: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

48

The <<include>> Relationship

<<includes>> relationship represents behavior that is factored out of the use case.

A use case uses another use case (“functional decomposition”).

Used to indicate that one use case includes the functionality of another use case.

A function in the original problem statement is too complex to be solvable immediately.

Describe the function as the aggregation of a set of simpler functions. The associated use case is decomposed into smaller use cases.

A reusable use case (component) that is unconditionally called into the execution of another use case (always included in the process – like running BIOS in a system boot).

Page 49: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

49

The <<include>> Relationship

Responsibility for the decision about when to use it lies with the calling use case.

Arrow points to the included use case. The direction of a <<includes>> relationship is to the using use case (unlike <<extends>> relationships).

Page 50: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

50

The <<include>> Relationship

Page 51: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

51

The <<include>> Relationship

Page 52: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

52

The <<include>> Relationship

Page 53: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

53

Generalization/Specialization Relationship

Called inheritance relationship.

Occurs when there is a general sequence of events, but when considering the details, there are many specialised variations of the use case.

Graphically, this is shown by a generalisation line pointing from the specialised use case to the more general use case.

Page 54: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

54

Actor Generalization

Page 55: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

55

Actor Generalization

Page 56: 1 Chapter 6: Use Cases Chapter 6 in Applying UML and Patterns Book

56

Actor Generalization