Use Case Diagrams for Various Apps
Use Case Diagrams for Various Apps
By mandating specific operations across similar use cases in different systems, the 'include' relationship ensures that foundational processes are consistently executed, fostering uniformity in user experience and operational logic. For instance, mandatory actions like 'Make Payment' in the ordering process for both Hungry Harry’s App and Food Delivery Service ensure consistent backend processing and user steps .
The 'include' relationship helps modularize and reuse commonly required functionalities across multiple use cases, ensuring consistency and reducing redundancy. For example, 'Make Payment' is an included use case in both the Hungry Harry’s App and the Food Delivery Service, as these are indispensable steps in their order processes . This modular approach simplifies maintenance and enhances clarity in system design.
Implementing the 'extend' relationship in complex use cases can introduce challenges such as increased system complexity, and potential for overlooking extended functionality during system testing. If conditions activating these extensions are not clearly defined or managed, there may be a risk of inconsistent user experiences. Mismanagement can lead to complicated system maintenance and debugging processes .
Both use cases feature mandatory actions included in the primary operations. In the Online Shopping Platform, 'Place Order' includes 'Select Shipping Address' and 'Make Payment'; similarly, the Banking System's 'Transfer Money' includes 'Authenticate User.' Each is critical for ensuring completeness of the respective processes, emphasizing security and verification in both systems .
In the Hungry Harry’s App, the 'Place Order' use case includes 'Make Payment' as a mandatory action, and optionally extends to 'Apply Discount' if a discount is available . Similarly, in the Food Delivery Service, 'Place Order' includes both 'Make Payment' and 'Select Delivery Address,' which are essential actions for order completion, and extends to 'Schedule Delivery' if the user opts to set a delivery time in the future .
The 'extend' relationship enhances flexibility by allowing additional, conditional functionalities to be invoked in a use case. For instance, in the Hospital Appointment System, the 'Book Appointment' use case is extended by 'Upload Reports,' permitting users to add medical reports optionally . This design approach provides flexibility, enabling customized workflows without altering the primary use case structure.
In a UML Use Case Diagram, the 'include' relationship is used when a use case requires another use case as a part of its flow, thus making it mandatory. For example, in the Hungry Harry’s App, the 'Place Order' use case includes 'Make Payment' since every order must include a payment. Meanwhile, the 'extend' relationship adds optional behavior to a base use case, triggered under specific conditions. In the same app, 'Apply Discount' extends 'Place Order,' allowing for a discount to be optionally applied if available .
Removing the 'include' relationships for 'Select Shipping Address' and 'Make Payment' from the 'Place Order' use case in the Online Shopping Platform would lead to incomplete order processing, as these steps are integral to completing an order. Without them, the system would lack necessary actions for order fulfillment, resulting in a dysfunctional shopping experience .
User roles define specific functionalities and interactions within use case diagrams. In the University Course Registration system, the 'Student' actor has access to actions like 'Login' and 'Finalize Registration,' which include other mandatory processes like 'Fee Payment.' The design also considers user-specific roles such as the 'Registrar,' typically involved in overseeing the registration process, potentially impacting how override requests are managed through the 'extend' relationship .
In the Ride-Sharing App, the 'extend' relationship in 'Confirm Ride' allows the ride to be extended mid-ride if necessary . This feature enhances the user experience by offering flexibility to accommodate changes in the user’s plans without needing to cancel and restart the ride booking process.