Concepts, Specifications, and Diagrams

Slides:



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

Use-Cases.
Withdrawal Transaction Use Case Primary Actor: Customer Pre-conditions: The customer must have a valid ATM card and PIN. Post-conditions: The customer.
Use Case & Use Case Diagram
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
CS3773 Software Engineering Lecture 03 UML Use Cases.
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.
Documenting Requirements using Use Case Diagrams
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.
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.
Faculty of Computer & Information Software Engineering Third year
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.
Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Engineering Lab Use Cases Faculty of Information system Technology.
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 Structuring Systems Requirements Use Case Description and Diagrams.
1 System Analysis and Design Using UML INSTRUCTOR: Jesmin Akhter Lecturer, IIT, JU.
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.
UML - Development Process 1 Software Development Process Using UML.
Chapter 6: Structuring Requirements: Use Case Description and Diagrams Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph.
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.
UC Diagram & Scenario RKPL C & D. Using Use Case Diagram Use case diagrams are used to visualize, specify, construct, and document the (intended) behavior.
1 Case Study and Use Cases for Case Study Lecture # 28.
Use Cases Discuss the what and how of use cases: Basics Examples Benefits Parts Stages Guidelines.
Contents What is “RUP?” What are Requirement Types
CMPE 135: Object-Oriented Analysis and Design August 31 Class Meeting
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.
Structured Analysis and Design Technique
ATM OO Design and Implementation Case Study
Systems Analysis and Design in a Changing World, 6th Edition
Use Cases Discuss the what and how of use cases: Basics Benefits
Recall The Team Skills Refining the Use cases
Storyboarding and Game Design SBG, MBG620 Full Sail University
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.
Object Oriented Analysis UML Use Case Driven Object Modeling
SE-565 Software System Requirements IV. Use Cases
Use Case Modeling - techniques for detailing use cases
SAD ::: Spring 2018 Sabbir Muhammad Saleh
Systems Analysis and Design in a Changing World, 6th Edition
Paul Ammann & Jeff Offutt
Chapter 9 Use Cases.
Object Oriented Analysis and Design
Software Engineering System Modeling Chapter 5 (Part 1) Dr.Doaa Sami
Use Cases 1.
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
CS 420/620 HCI Use Case Modeling Project Preparation
CS 425 Software Engineering
CS 425/625 Software Engineering
Use cases Dr. X.
Presentation transcript:

Concepts, Specifications, and Diagrams Use Cases Concepts, Specifications, and Diagrams

Introduction “Invented” by Ivar Jacobson in the late 1960’s (where have we seen his name before?) Introduced to the OO community in the late 1980’s Alistair Cockburn has extended Jacobson’s 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 CMSC 345, Version 1/11

What is a Use Case? (Cockburn) A use case captures a contract between the stakeholders of a system about its behavior. Describes the system’s behavior under various conditions as the system responds to a request from one of the stakeholders called the primary actor. The primary actor initiates some interaction with the system to accomplish some goal. The system responds, protecting the interests of all of the stakeholders. 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. CMSC 345, Version 1/11

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 user’s 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 user’s ATM card. After the user removes his card, the system displays the welcome message. CMSC 345, Version 1/11

Use Case Specification Template* Number Name Summary Priority Preconditions Postconditions Primary Actor(s) Secondary Actor(s) Trigger Main Scenario Step Action Extensions Branching Action Open Issues CMSC 345, Version 1/11 *Adapted from A. Cockburn, “Basic Use Case Template”

Use Case Specification Template* Number Unique use case number Name Brief verb-noun phrase Summary Brief summary of use case major actions Priority 1-5 (1 = lowest priority, 5 = highest priority) Preconditions Postconditions Primary Actor(s) Secondary Actor(s) Trigger Main Scenario Step Action Extensions Branching Action Open Issues CMSC 345, Version 1/11 *Adapted from A. Cockburn, “Basic Use Case Template”

Use Case Specification Template* Number Name Summary Priority Preconditions What needs to be true before the use case “executes” Postconditions What will be true after the use case successfully “executes” Primary Actor(s) Secondary Actor(s) Trigger Main Scenario Step Action Extensions Branching Action Open Issues 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); } CMSC 345, Version 1/11 *Adapted from A. Cockburn, “Basic Use Case Template”

Use Case Specification 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. Use Case Specification Template* Number Name Summary Priority Preconditions Postconditions Primary Actor(s) Primary actor name(s) Secondary Actor(s) Secondary actor name(s) Trigger Main Scenario Step Action Extensions Branching Action Open Issues CMSC 345, Version 1/11 *Adapted from A. Cockburn, “Basic Use Case Template”

Use Case Specification Template* Number Name Summary Priority Preconditions Postconditions Primary Actor(s) Secondary Actor(s) Trigger The action that caused the use case to be invoked Main Scenario Step Action 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 Extensions Branching Action Open Issues CMSC 345, Version 1/11 *Adapted from A. Cockburn, “Basic Use Case Template”

Use Case Specification Template* Number Name Summary Priority Preconditions Postconditions Primary Actor(s) Secondary Actor(s) Trigger Main Scenario Step Action Extensions Branching Action Step # Alternative paths that the use case may take Open Issues Extension Could be an optional path(s) Could be an error path(s) Denoted in use case diagrams (UML) by <<extend>> CMSC 345, Version 1/11 *Adapted from A. Cockburn, “Basic Use Case Template”

Use Case Specification Template* Number Name Summary Priority Preconditions Postconditions Primary Actor(s) Secondary Actor(s) Trigger Main Scenario Step Action Extensions Branching Action Open Issues Issue # Issues regarding the use case that need resolution CMSC 345, Version 1/11 *Adapted from A. Cockburn, “Basic Use Case Template”

Use Case Specification Template* Number Unique use case number Name Brief noun-verb phrase Summary Brief summary of use case major actions Priority 1-5 (1 = lowest priority, 5 = highest priority) Preconditions What needs to be true before use case “executes” Postconditions What will be true after the use case successfully “executes” Primary Actor(s) Primary actor name(s) Secondary Actor(s) Secondary actor name(s) Trigger The action that causes this use case to begin Main Scenario Step Action 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. Extensions Branching Action Alternative paths that the use case may take Open Issues Issue # Issues regarding the use case that need resolution CMSC 345, Version 1/11 *Adapted from A. Cockburn, “Basic Use Case Template”

Use Case Specification Template Example Number 1 Name Withdraw Money Summary User withdraws money from one of his/her accounts Priority 5 Preconditions User has logged into ATM Postconditions User has withdrawn money and received a receipt Primary Actor(s) Bank Customer Secondary Actor(s) Customer Accounts Database Continued … CMSC 345, Version 1/11

User has chosen to withdraw money Trigger User has chosen to withdraw money Main Scenario Step Action 1 System displays account types 2 User chooses account type 3 System asks for amount to withdraw 4 User enters amount 5 System debits user’s account and dispenses money 6 User removes money 7 System prints and dispenses receipt 8 User removes receipt 9 System displays closing message and dispenses user’s ATM card 11 User removes card 10 System displays welcome message Extensions Branching Action 5a System notifies user that account funds are insufficient 5b System gives current account balance 5c System exits option Open Issues Should the system ask if the user wants to see the balance? CMSC 345, Version 1/11

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 CMSC 345, Version 1/11

A way of visualizing the relationships 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) CMSC 345, Version 1/11

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

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. CMSC 345, Version 1/11

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

Customer Accounts Database Sub-use Case Diagram 1a Withdraw from Checking <<extend>> Bank Customer 1 Withdraw Money Customer Accounts Database <<extend>> 1b Withdraw from Savings 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 CMSC 345, Version 1/11

Customer Accounts Database Sub-use Case Diagram 1a Withdraw from Checking Bank Customer 1 Withdraw Money Customer Accounts Database 1b Withdraw from Savings generalization CMSC 345, Version 1/11

Customer Accounts Database Sub-use Case Diagram 3a Select Accounts <<include>> Bank Customer 3 Transfer Money Customer Accounts Database <<include>> 3b Update Account Balances 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. CMSC 345, Version 1/11

References Cockburn, A., Writing Effective Use Cases. New York: 2001, Addison-Wesley. Cockburn, A., Resources for Writing Use Cases. http://alistair.cockburn.us/index.php/Resources_for_writing_use_cases, accessed 9/18/07. Cockburn, A., Basic Use Case Template. 1998, Humans and Technology. Cockburn, Alistair, WWW home page, http://alistair.cockburn.us/index.php/Main_Page Fowler, M., UML Distilled. 3rd ed. 2004, New York: Addison Wesley. Fowler, M., WWW home page, http://martinfowler.com Jacobson, Ivar, WWW home page, http://www.ivarjacobson.com/locales/ivars-corner.cfm CMSC 345, Version 1/11