CMSC 345, Version 9/07 S. Mitchell Use Cases Concepts, Specifications, and Diagrams.

Slides:



Advertisements
Similar presentations
Writing Good Use Cases - Instructor Notes
Advertisements

Business Transaction Management Software for Application Coordination 1 Business Processes and Coordination.
DIVIDING INTEGERS 1. IF THE SIGNS ARE THE SAME THE ANSWER IS POSITIVE 2. IF THE SIGNS ARE DIFFERENT THE ANSWER IS NEGATIVE.
Week 2 The Object-Oriented Approach to Requirements
Requirements Diagrams With UML Models
Table 22.1 Stakeholder summary for the Odd Shoe Company
Use Case Diagrams.
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 Diagrams Damian Gordon.
Addition 1’s to 20.
25 seconds left…...
Week 1.
1 PART 1 ILLUSTRATION OF DOCUMENTS  Brief introduction to the documents contained in the envelope  Detailed clarification of the documents content.
Use Case & Use Case Diagram
1Spring 2005 Specification and Analysis of Information Systems Specifying Requirements with Use Case Diagrams Part II.
Introduction to Software Testing Chapter 2.6 Graph Coverage for Use Cases Paul Ammann & Jeff Offutt
Use Case Model. C-S 5462 Use case model describes what the user expects the system to do –functional requirements may describe only the functionalities.
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.
CPSC 333: Foundations of Software EngineeringJ. Denzinger Small Test: Bank account manager System has to run on an automated teller machine. User must.
SWENET.org1 Applying Use Case Templates Paul Grabow - Baylor University Stephen Frezza – Gannon University.
Introduction to Software Testing Chapter 2.6 Graph Coverage for Use Cases Paul Ammann & Jeff Offutt
Sequence Diagrams. Introduction A Sequence diagram depicts the sequence of actions that occur in a system. The invocation of methods in each object, and.
CS3773 Software Engineering Lecture 03 UML Use Cases.
ATM User Interface Design. Requirements A bank customer is able to access his or her account using an automatic teller machine. To be able to use an ATM.
Tutorial 2. What is a UML Use Case Diagram? Use case diagrams model the functionality of a system using actors and use cases. Use cases are services or.
Interaction Diagrams Activity Diagram State Machine Diagram
Object Oriented Analysis Process
COMP1007 Intro to Systems Requirements © Copyright De Montfort University 2002 All Rights Reserved COMP1007 Intro to System Requirements Lecture 2 Use-Cases.
Requirements Analysis 4. 1 Use Case I b504.ppt © Copyright De Montfort University 2000 All Rights Reserved INFO2005 Requirements Analysis Use-Cases.
{ How to Use An ATM A simple tutorial to teach how to use ATM Machines.
1 Lab Beginning Analysis and Design 4 Completion of first version of use case diagram initiates the processes of analysis and design. 4 UML provides.
Use Case Modeling. Use case diagram For each use case we develop  Object class diagram (with attributes only)  System sequence diagram (analysis) 
Rational Unified Process (Part 1) CS3300 Fall 2015.
Software Waterfall Life Cycle Requirements Construction Design Testing Delivery and Installation Operations and Maintenance Concept Exploration Prototype.
Faculty of Computer & Information Software Engineering Third year
Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 2. Understanding User and Stakeholder Needs 3. Defining the System 4. Managing Scope 5.
Faculty of Computer & Information
Requirements Reference: Chapters 5, 6, & 8. CMSC 345, Fall Objectives To introduce the concepts of user and system requirements To explain functional.
IS3320 Developing and Using Management Information Systems Lecture 9: Use Cases and Scenarios Rob Gleasure
Use Case Modeling Chapter 7 Part of Requirements Modeling Designing Concurrent, Distributed, and Real-Time Applications with UML Hassan Gomaa (2001)
1 Graph Coverage (6). Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Section
Unit 3 Functional Requirements. Syllabus Introduction Features and usecases Use case Scenarios Documenting use cases Levels of details SRS Document.
CS212: Object Oriented Analysis and Design Lecture 32: Use case and Class diagrams.
USE CASE Pertemuan 7 Matakuliah: Konsep object-oriented Tahun: 2009.
UML - Development Process 1 Software Development Process Using UML.
25/2/16. 2 DVD MovieVHS MovieVideo Game Rental Item Rental Invoice 1..* 1 Customer Checkout Screen CusID Name Address Phonenumber Transactionlist.
Lecture Outline Monday 23 rd February (Week 4) 3 – 3:10pm Review of Requirements Eng. and use cases 3:10 – 3:40pm Exercise on Use Case 3:40-4:40 Class.
Chapter 3: Software Design –Use case Diagram Nouf Alghanmi.
1 After the scenarios are formulated Find all the use cases in the scenario Describe each of these use cases in more detail Participating actors Describe.
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.
Using Use Case Diagrams
Paul Ammann & Jeff Offutt
CMPE 280 Web UI Design and Development August 29 Class Meeting
Use Case Modeling - II Lecture # 27.
ATM OO Design and Implementation Case Study
Systems Analysis and Design in a Changing World, 6th Edition
Dynamic Modeling of Banking System Case Study - I
Use Case Model.
Rob Gleasure IS3320 Developing and Using Management Information Systems Lecture 8: Use Cases and Scenarios Rob Gleasure.
SE-565 Software System Requirements IV. Use Cases
Concepts, Specifications, and Diagrams
SAD ::: Spring 2018 Sabbir Muhammad Saleh
Systems Analysis and Design in a Changing World, 6th Edition
Software Engineering System Modeling Chapter 5 (Part 1) Dr.Doaa Sami
Using Use Case Diagrams
Software Engineering System Modeling Chapter 5 (Part 1) Dr.Doaa Sami
Object-Oriented Software Engineering
Presentation transcript:

CMSC 345, Version 9/07 S. Mitchell Use Cases Concepts, Specifications, and Diagrams

2 CMSC 345, Version 9/07 S. Mitchell Introduction Invented by Ivar Jacobson in the late 1960s (where have we seen his name before?) Introduced to the OO community in the late 1980s Alistair Cockburn has extended Jacobsons model Is a way to specify functional requirements Is notated using a use case specification Is not part of the Unified Modeling Language (UML), but is many times used in conjunction with it

3 CMSC 345, Version 9/07 S. Mitchell What is a Use Case? (Cockburn) A use case captures a contract between the stakeholders of a system about its behavior. Describes the systems behavior under various conditions as the system responds to a request from one of the stakeholders called the primary actor. 1. The primary actor initiates some interaction with the system to accomplish some goal. 2. The system responds, protecting the interests of all of the stakeholders. 3. Different sequences of behaviors, or scenarios, can unfold, depending on the requests and the conditions surrounding the request. The use case gathers these scenarios together.

4 CMSC 345, Version 9/07 S. Mitchell Use Case Specification: Natural Language Example Use Case 1. Withdraw Money The system displays the account types available to be withdrawn from and the user indicates the desired type. The system asks for the amount to be withdrawn and the user specifies it. Next, the system debits the users account and dispenses the money. The user removes the money, the system prints a receipt, and the user removes the receipt. Then the system displays a closing message and dispenses the users ATM card. After the user removes his card, the system displays the welcome message.

5 CMSC 345, Version 9/07 S. Mitchell Number Name Summary Priority Preconditions Postconditions Primary Actor(s) Secondary Actor(s) Trigger Main ScenarioStepAction ExtensionsStepBranching Action Open Issues Use Case Specification Template* *Adapted from A. Cockburn, Basic Use Case Template

6 CMSC 345, Version 9/07 S. Mitchell NumberUnique use case number NameBrief verb-noun phrase SummaryBrief summary of use case major actions Priority1-5 (1 = lowest priority, 5 = highest priority) Preconditions Postconditions Primary Actor(s) Secondary Actor(s) Trigger Main ScenarioStepAction ExtensionsStepBranching Action Open Issues Use Case Specification Template* *Adapted from A. Cockburn, Basic Use Case Template

7 CMSC 345, Version 9/07 S. Mitchell Number Name Summary Priority PreconditionsWhat needs to be true before the use case executes PostconditionsWhat will be true after the use case successfully executes Primary Actor(s) Secondary Actor(s) Trigger Main ScenarioStepAction ExtensionsStepBranching Action Open Issues Use Case Specification Template* *Adapted from A. Cockburn, Basic Use Case Template Precondition: y != 0 Postcondition: x / y double divide(double x, double y) { return (x / y); } Precondition: None Postcondition: if y==0 Illegal, else x / y double divide(double x, double y) { if (y == 0) cout << Illegal\n; else return (x / y); }

8 CMSC 345, Version 9/07 S. Mitchell Number Name Summary Priority Preconditions Postconditions Primary Actor(s)Primary actor name(s) Secondary Actor(s)Secondary actor name(s) Trigger Main ScenarioStepAction ExtensionsStepBranching Action Open Issues Use Case Specification Template* *Adapted from A. Cockburn, Basic Use Case Template Actor Anyone or anything with behavior May be a person or system Primary: The stakeholder who or which initiates an interaction with the system to achieve a goal. Is generally a category of individuals (a role). Secondary: Provides a service to the system. Is almost never a person.

9 CMSC 345, Version 9/07 S. Mitchell Number Name Summary Priority Preconditions Postconditions Primary Actor(s) Secondary Actor(s) TriggerThe action that caused the use case to be invoked Main ScenarioStepAction Step #This is the main success scenario or happy path Step #Description of steps in successful use case execution Step #This should be in a system-user-system, etc. format ExtensionsStepBranching Action Open Issues Use Case Specification Template* *Adapted from A. Cockburn, Basic Use Case Template

10 CMSC 345, Version 9/07 S. Mitchell Number Name Summary Priority Preconditions Postconditions Primary Actor(s) Secondary Actor(s) Trigger Main ScenarioStepAction ExtensionsStepBranching Action Step #Alternative paths that the use case may take Open Issues Use Case Specification Template* *Adapted from A. Cockburn, Basic Use Case Template Extension Could be an optional path(s) Could be an error path(s) Denoted in use case diagrams (UML) by >

11 CMSC 345, Version 9/07 S. Mitchell Number Name Summary Priority Preconditions Postconditions Primary Actor(s) Secondary Actor(s) Trigger Main ScenarioStepAction ExtensionsStepBranching Action Open IssuesIssue #Issues regarding the use case that need resolution Use Case Specification Template* *Adapted from A. Cockburn, Basic Use Case Template

12 CMSC 345, Version 9/07 S. Mitchell NumberUnique use case number NameBrief noun-verb phrase SummaryBrief summary of use case major actions Priority1-5 (1 = lowest priority, 5 = highest priority) PreconditionsWhat needs to be true before use case executes PostconditionsWhat will be true after the use case successfully executes Primary Actor(s)Primary actor name(s) Secondary Actor(s)Secondary actor name(s) TriggerThe action that causes this use case to begin Main ScenarioStepAction Step #This is the main success scenario or happy path. …Description of steps in successful use case execution …This should be in a system-user-system, etc. format. ExtensionsStepBranching Action Step #Alternative paths that the use case may take Open IssuesIssue #Issues regarding the use case that need resolution Use Case Specification Template* *Adapted from A. Cockburn, Basic Use Case Template

13 CMSC 345, Version 9/07 S. Mitchell Number1 NameWithdraw Money SummaryUser withdraws money from one of his/her accounts Priority5 PreconditionsUser has logged into ATM PostconditionsUser has withdrawn money and received a receipt Primary Actor(s)Bank Customer Secondary Actor(s)Customer Accounts Database Use Case Specification Template Example Continued …

14 TriggerUser has chosen to withdraw money Main ScenarioStepAction 1System displays account types 2User chooses account type 3System asks for amount to withdraw 4User enters amount 5System debits users account and dispenses money 6User removes money 7System prints and dispenses receipt 8User removes receipt 9System displays closing message and dispenses users ATM card 11User removes card 10System displays welcome message ExtensionsStepBranching Action 5aSystem notifies user that account funds are insufficient 5bSystem gives current account balance 5cSystem exits option Open Issues1Should the system ask if the user wants to see the balance?

15 CMSC 345, Version 9/07 S. Mitchell Specification Writing Guidelines No trace of design Describes what the use case will do, not how it will do it (e.g., UI type is irrelevant) A dialogue between the user and the system Complete, clear, and consistent

16 CMSC 345, Version 9/07 S. Mitchell Use Case Diagrams A way of visualizing the relationships between actors and use cases among use cases A graphical table of contents for the use case set (Fowler)

17 CMSC 345, Version 9/07 S. Mitchell 1 Withdraw Money 2 Deposit Money 3 Transfer Money 4 Check Balance ATM System Bank Customer Customer Accounts Database primary actor role system name system boundary secondary actor use case <<Customer Accounts Database>> alternative actor notation stereotype association

18 CMSC 345, Version 9/07 S. Mitchell Using Use Case Specifications in Conjunction with Use Case Diagrams UML is a graphical modeling tool only. Use case specifications are not part of the UML But, since each ellipse in a UML use case diagram represents a functional requirement, it may in turn have an associated use case specification.

19 CMSC 345, Version 9/07 S. Mitchell 1 Withdraw Money 2 Deposit Money 3 Transfer Money 4 Check Balance ATM System Bank Customer Customer Accounts Database Teller 5 View Transaction History primary actor Why cant a Teller do the things that a Bank Customer can do? Especially if he is a customer? He can. But he must step into the role of a Bank Customer.

20 CMSC 345, Version 9/07 S. Mitchell 1 Withdraw Money Bank Customer Customer Accounts Database 1b Withdraw from Savings 1a Withdraw from Checking > Sub-use Case Diagram This is an extend dependency. It indicates that use case 1b is part of use case 1, but it may or may not be invoked. The same is true of use case 1a. All dependencies are extend unless stereotyped otherwise. note/comment

21 CMSC 345, Version 9/07 S. Mitchell 1 Withdraw Money Bank Customer Customer Accounts Database 1b Withdraw from Savings 1a Withdraw from Checking Sub-use Case Diagram generalization

22 CMSC 345, Version 9/07 S. Mitchell 3 Transfer Money Bank Customer Customer Accounts Database 3b Update Account Balances 3a Select Accounts > Sub-use Case Diagram This is an include dependency. It indicates that use case 3b is included in use case 3 and will be invoked. The same is true of use case 3a.

23 CMSC 345, Version 9/07 S. Mitchell References Cockburn, A., Writing Effective Use Cases. New York: 2001, Addison-Wesley. Cockburn, A., Resources for Writing Use Cases. ng_use_cases, accessed 9/18/07. Cockburn, A., Basic Use Case Template. 1998, Humans and Technology. Cockburn, Alistair, WWW home page, Fowler, M., UML Distilled. 3 rd ed. 2004, New York: Addison Wesley. Fowler, M., WWW home page, Jacobson, Ivar, WWW home page,