Use cases & actors by subsystem (with use case descriptions)
Contents
Structured Use Case Diagrams 10
Use Cases & Actors by Subsystem (with Use Case Descriptions) 12
Cardinalities & Multiplicities 18
Fixes Left
Part A
Vision Statement
Problem Description
Coffee shops are often busy in the morning hours with people wanting coffee early in the morning on their way to work. Due to this, many coffee shops become overcrowded and overwhelmed with the amount of incoming orders. The problem with this is that some customers become irritated with the wait time and end up leaving resulting in a loss of profit for the coffee shops. With this problem in hand, the company requires a system that can allow customers to place orders ahead of time, as well as a subscription-based order system.
Business Benefits
Allows for better planning for Morning Staff Schedules(?), thereby preventing overstaffing on morning shifts.
Creates an online presence, thereby expanding their advertisement and expanding their contact range to new/old customers
System Capabilities
Notifying customers
Order Status
Online Payment
List of Subsystems
• Order Subsystem
UML Activity Diagrams


Use Case Diagrams
Customer Account
Menu
Notification
Order
Structured Use Case Diagrams

Domain Class Diagram

ERD
Technology Tools
Planning and Analysis Tools
Discord, Skype: Meetings and Communication
Google Drive: Collaborative Storage Space
Tools for Future Steps
Use Cases & Actors by Subsystem (with Use Case Descriptions)
Order Subsystem
Use Cases:
Select Items: Customer chooses item, system retrieves item data, generates customer order, adds item to customer’s order, and displays order containing chosen item to customer
Customer chooses customizations to apply to item
System receives customizations, applies it to item on order, updates order, and displays item with customizations
System receives payment method, prompts user for confirmation
Customer confirms payment
Employee closes the order when order has been completed
Verify payment: Verifies payment information is correct
Employee requests to view customer order
System displays customer order to employee
Customer Account Subsystem
Create New Account:
Creates a new Customer Account in the system
Delete Account:
Customer requests to delete customer account
Customer inputs data
System receives data and saves to customer’s subscription
Remove Payment Method:
Customer removes selected payment information
Cancel Subscription:
Customer requests deletion of subscription from their account
Notification Subsystem
Send Daily or Weekly deals
System displays a notification of daily and weekly deals to customer
Create Promotions
Employee enters promotion data and scheduled message send time
Menu Subsystem
System creates menu
Create Item: Creates a new Menu Item
System adds item to chosen menu
Modify Item: Modifies specified item
System receives request and deletes item
Full Use Case Template
| Use Case Name | Create New Subscription |
|---|---|
| Scenario | Creating a new subscription |
| Triggering Event | A Customer wants to create a new subscription |
| Brief description | A Customer wants to create a new subscription for a repeated order to occur at a set time every day. paid by a predetermined payment method. |
| Actor | Customer |
| Related Use Case | N/A |
| Stakeholders | Customers, Employees |
| Preconditions | - Customer must have an account |
| Postconditions | Subscription |
User Stories
Order Subsystem
As a customer, I want to be able to select an item from the menu so that I can add it to my order.
Place order:
As a customer, I want to be able to pay for my order so that I can collect my order from the cafe.
Cancel order:
As an Employee, I want to be able to view customers’ orders so that I can fulfill them
Update order status:
Customer Account Subsystem
As a customer, I want to be able to modify my account, so that I can update it with relevant information
Delete Account:
As a customer, I want to be able to add a payment method, so that I can pay for my order online.
Remove Payment Method:
As a customer, I want to be able to cancel a subscription, so that I can stop being charged for orders I no longer want.
Notification Subsystem
Send Promotions
The System will send out a notification about the order status to the customer, so that customers can be informed.
Send Payment Confirmation
Menu Subsystem
As an Employee, I want to be able to create a new menu, so that customers can better access menu items for display
Create Item:
As an Employee, I want to be able to modify menu items, so that I can update information, such as price.
Remove Item:
Cardinalities & Multiplicities
| Class | Cardinality | Description | Class |
|---|---|---|---|
| Person | N/A | ...is the base class of… | Customer |
| Customer | N/A | ...inherits from... | Person |
| Person | N/A | ...is the base class of... | Employee |
| Employee | N/A | ...inherits from... | Person |
| Customer | 1→ 0..1 | ...can have a.. | Subscription |
| Subscription | 0..1 → 1 | ...can belong to a... | Customer |
| Customer | 1 → 1..M | ...can have... | Payment Method |
| Payment Method | 1..M → 1 | ...belongs to a... | Customer |
| Customer | 1 → 0..M | ...can place many... | Order |
| Order | 0..M → 1 | ...is placed by a... | Customer |
| Customer | 1 → 0..1 | ...can set up a... | Subscription |
| Subscription | 0..1 → 1 | ...is linked to a... | Customer |
| Customer | 0..M → 0..M | ...can receive... | Notification |
| Notification | 0..M → 0..M | ...can be sent to... | Customer |
| Promotion | 0..1 → 0..1 | ...can be sent by a... | Notification |
| Notification | 0..1 → 0..1 | ...can contain a... | Promotion |
| Promotion | 0..M → 0..M | ...can be applied to a... | Transaction |
| Transaction | 0..M → 0..M | ...can be discounted by a... | Promotion |
| Promotion | 1 → 0..M | ...can contain... | Menu Item |
| Menu Item | 0..M → 1 | ...can be discounted by a... | Promotion |
| Address | 1 → 1 | ...is linked to a... | Store |
| Store | 1 → 1 | ...has only one... | Address |
| Employee | 1 → 1..M | ...works at one or many... | Store |
| Store | 1..M → 1 | ...must have at least one... | Employee |
| Subscription | 1 → 1 | ...can be prepared at one and only one... | Store |
| Store | 1 → 1 | ...can be the pickup point for one and only one... | Subscription |
| Subscription | 0..M → 1 | ...contains one and only one... | Order |
| Order | 1 → 0..M | ...can be linked to a... | Subscription |
| Transaction | 1 → 1 | ...is a part of an... | Order |
| Order | 1 → 1 | ...must contain a.. | Transaction |
| Notification | 0..M → 0..M | ...can contain information about an... | Order |
| Order | 0..M → 0..M | ...can relay information via... | Notification |
| Order Item | 1 → 1..M | ...is a part of an... | Order |
| Order | 1..M → 1 | ...is made up of... | Order Item |
| Order Item | 1 → 1 | ...inherits information from... | Menu Item |
| Menu Item | 1 → 1 | ...holds the base information for... | Order Item |
| Menu | 1 → 1..M | ...contains a list of... | Menu Item |
| Menu Item | 1..M → 1 | ...is a part of a... | Menu |
| Payment Method | 1..M → 1 | ...is saved to one and only one... | Customer |
| Customer | 1 → 1..M | ...can save multiple... | Payment Method |


