Software Engineering Assignment
Report
Name: Murtaza Khalid
Roll No: BSCE22004
Name: Kifayat Ur Rehman
Roll No: BSCE22026
Project Title: CafeFlow
Overview
CafeFlow is a software solution designed to manage a café's operations, including user
logins, order processing, inventory management, and table reservations. The system
ensures efficiency by automating tasks that traditionally require manual input, thus
reducing errors and improving customer experience.
Design Patterns Used
1. Singleton Pattern: Used to ensure a single instance of core management classes such as
InventoryManager.
2. Observer Pattern: Applied in the inventory restock alert system where low inventory
levels notify relevant modules.
3. MVC (Model-View-Controller): Adopted across the architecture for separation of
concerns—models manage data, views display it, and controllers handle user input.
4. Factory Pattern: Used for creating different types of user accounts and orders, abstracting
the instantiation logic.
Structural Model (Class Diagram)
The class diagram represents entities such as User, Order, Inventory, and Reservation.
Relationships among these classes demonstrate aggregation and association, allowing
modular and maintainable design.
Dynamic Model (Sequence Diagrams)
The system behavior is represented through the following sequence diagrams:
- User Login Sequence
- Order Processing Sequence
- Inventory Restock Alert Sequence
- Reservation System Sequence
Conclusion
CafeFlow applies standard software engineering principles and design patterns to build a
scalable café management system. The use of design patterns like Singleton and Observer
ensures modularity and easy maintenance. This assignment illustrates how real-world
problems can be efficiently solved through well-structured software architectures.