Use Cases -Use Case Diagram Chapter 3
Outline Use Case – defined Techniques for Identifying Use Cases User Goal Event Decomposition CRUD UML's Use Case Diagram
Use Case - Defined Use case - an activity that the system performs usually in response to a request by a user Functional Requirements Verb + Noun Place order Issue complaint Techniques to Identify use cases: User Goal Event Decomposition CRUD
Identifying Use Cases- User Goal Technique Ask the users what they need the system to do Identify the users Interview them Create the list of use cases Some users may need the same use case Watch out for duplicates, inconsistencies Verify the list with the users
Identifying Use Cases- Event Decomposition Identify the events that occur to which the system must respond. Event - an occurrence at a specific time & place which needs to be remembered Use Case - what the system does when the event occurs Prior Conditions & Events
Identifying Use Cases- Event Decomposition Types of Events External Temporal State
Identifying Use Cases - CRUD Analysis Can be a tool for: use case identification and/or validation Ensure that there are use cases to cover the CRUD CRUD - For 1 data entity C R U D CRUD Matrix All use cases All data entities Shows responsibilities
CRUD CRUD Use Cases Cancel order Place order Change order Update customer profile Print order report View order status … Order C Create R Read U Update D Delete CRUD Matrix Use Cases Order OrderItem Customer Item Place Order Update Customer Profile …
UML's Use Case Diagram
UML - The Unified Modeling Language An Object-Oriented modeling language "3 Amigos" - Booch, Rumbaugh, and Jacobson Adopted & now managed by OMG (Object Management Group) Models both structure & behavior Structure diagrams Class diagram, Component diagram, Deployment diagram, Object diagram, Package diagram, etc. Behavior diagrams Activity diagram , Use Case diagram , Sequence diagram, State machine, Communication diagram, etc. 10
<<system>> Use Case Diagram A UML diagram depicting the relationship between actors & use cases Defines Scope/Functional Requirements Automation Boundary The boundary between the software and the actors of the system Actor Anyone or thing that interacts with the system Use Case an activity that the system performs Association Depicts a usage relationship between an actor and a use case <<include>> & <<extend> Associations Customer Billing <<system>> Time <<include>> <<extend>>
Use Case Diagram - Sales Subsystem Prefer "Place an order"
Use Case Diagram – ATM System Withdraw cash Customer
Use Case Diagram – Order Entry System Customer Sales clerk Create new order Lookup item availability Update order Order Entry System
<<include>> Customer Sales clerk Create new order Lookup item availability Update order Order Entry System Authenticate customer <<include>> This also achieves Reuse! <<include>>
<<extend>> Customer Sales clerk Create new order Lookup item availability Update order Order Entry System This also achieves Reuse! Record Authentication Issue <<extend>> Authenticate customer <<include>> <<include>> Suggest substitute items <<extend>> <<include>>
"Withdraw Cash” Use Case – i.e. scenario Customer Customer ATM Bank
<<Time>> Special Use Cases State-driven use cases e.g. Polling, Monitoring, Notifications Time-based Use Cases Employee Reorder Stock <<Time>> Generate Payroll