Post-conditions: Tài khoản mới đã được tạo thành công và người dùng có thể đăng nhập.- Nếu người dùng không nhập đủ thông tin hoặc thông tin không hợp lệ, hệ thống hiển thị thông báo lỗi
Trang 1TRƯỜNG ĐẠI HỌC VĂN LANG
KHOA KỸ THUẬT CƠ-ĐIỆN VÀ MÁY TÍNH
ĐỒ ÁN CUỐI KÌ
KIẾN TRÚC VÀ THIẾT KẾ PHẦN MỀM
SOFTWARE DETAILED DESIGN DOCUMENT
The document describes the Architectural Detailed Design Document of Popeyes system
THỰC HIỆN BỞI NHÓM 8
Lớp : 232_71SEDE40064_01
Giảng viên hướng dẫn : Nguyễn Hữu Quốc
Hồ Chí Minh, tháng 5 năm 2024
Trang 2PHỤ LỤC
1 USECASE DIAGRAM 5
1.1 BIỂU ĐỒ USE CASE TỔNG QUAN 5
1.2 BIỂU ĐỒ USE CASE PHÂN RÃ 5
1.2.1 PHÂN RÃ USE CASE KHÁCH HÀNG 5
1.2.2 PHÂN RÃ USE CASE QUẢN LÝ CỬA HÀNG 5
1.2.3 PHÂN RÃ USE CASE HỆ THỐNG 5
1.3 ĐẶC TẢ USECASE 5
1.3.1 ĐĂNG KÝ 5
1.3.2 ĐĂNG NHẬP 5
1.3.3 TÌM KIẾM SẢN PHẨM 5
1.3.4 ĐẶT HÀNG 5
1.3.5 THANH TOÁN 5
1.3.6 CẬP NHẬT MENU 5
1.3.7 THỐNG KÊ SỐ LIỆU 5
1.3.8 QUẢN LÝ TÀI KHOẢN 5
1.3.9 QUẢN LÝ GIỎ HÀNG 5
1.3.10 QUẢN LÝ ĐƠN HÀNG 5
2 DOMAIN MODEL 5
2.1 CÁC THỰC THỂ CHÍNH VÀ MỐI QUAN HỆ 5
2.2 MÔ TẢ CHI TIẾT CÁC THỰC THỂ VÀ MỐI QUAN HỆ 5
2.2.1 ĐƠN HÀNG (ORDER) 5
2.2.2 KHÁCH HÀNG (CUSTOMER) 5
2.2.3 SẢN PHẨM (PRODUCT) 5
2.2.4 DANH MỤC SẢN PHẨM (PRODUCT CATEGORY) 5
2.2.5 SẢN PHẨM CHI TIẾT (PRODUCT DETAIL) 5
2.2.6 MỤC ĐƠN HÀNG (ORDER ITEM) 5
Trang 32.2.7 THANH TOÁN (PAYMENT) 5
2.2.8 KHUYẾN MÃI (PROMOTION) 6
2.2.9 GIAO HÀNG (DELIVERY) 6
2.2.10 CỬA HÀNG (STORE) 6
2.2.11 QUẢN LÝ CỬA HÀNG (STORE MANAGEMENT) 6
2.2.12 THỐNG KÊ (STATISTICS) 6
2.3 MÔ TẢ MỐI QUAN HỆ 6
2.3.1 MỐI QUAN HỆ GIỮA ĐƠN HÀNG VÀ CÁC THỰC THỂ KHÁC 6
2.3.2 MỐI QUAN HỆ GIỮA CỬA HÀNG VÀ CÁC THỰC THỂ KHÁC 6
2.4 SƠ ĐỒ DOMAIN MODEL 6
3 SYSTEM SEQUENCES DIAGRAM (SSD) 6
3.1 ĐĂNG NHẬP 6
3.2 ĐĂNG KÝ 6
3.3 TÌM KIẾM SẢN PHẨM 6
3.4 ĐẶT HÀNG 6
3.5 THANH TOÁN 6
3.6 CẬP NHẬT MENU 6
3.7 THỐNG KÊ 6
3.8 QUẢN LÝ CỬA HÀNG 6
4 SEQUENCES DIAGRAM (SD) 7
5 COMMUNICATION DIAGRAM (CD) 7
6 DESIGN CLASS DIAGRAM (DCD) 7
6.1 MÔ TẢ CÁC LỚP 7
6.1.1 KHÁCH HÀNG (KHACHHANG) 7
6.1.2 ĐƠN HÀNG (DONHANG) 7
6.1.3 MỤC ĐƠN HÀNG (MUCDONHANG) 7
Trang 46.1.4 KHUYẾN MÃI (KHUYENMAI) 7
6.1.5 GIAO HÀNG (GIAOHANG) 7
6.1.6 HÓA ĐƠN (HOADON) 7
6.1.7 THANH TOÁN (THANHTOAN) 7
6.1.8 SẢN PHẨM (SANPHAM) 7
6.1.9 CHI TIẾT SẢN PHẨM (CHITIETSANPHAM) 7
6.1.10 CỬA HÀNG (CUAHANG) 7
6.1.11 QUẢN LÝ CỬA HÀNG (QUANLYCUAHANG) 7
6.1.12 THỐNG KÊ SỐ LIỆU (THONGKESOLIEU) 7
6.2 MỐI QUAN HỆ GIỮA CÁC LỚP 7
6.3 SƠ ĐỒ CLASS DIAGRAM 7
Trang 51 USECASE DIAGRAM
1.1 BIỂU ĐỒ USE CASE TỔNG QUAN
1.2 BIỂU ĐỒ USE CASE PHÂN RÃ
1.2.1 PHÂN RÃ USE CASE KHÁCH HÀNG
Trang 71.2.2 PHÂN RÃ USE CASE QUẢN LÝ CỬA HÀNG
Trang 81.2.3 PHÂN RÃ USE CASE HỆ THỐNG
1.3 ĐẶC TẢ USECASE
1.3.1 ĐĂNG KÝ
Use Case ID: ĐK-UC01 Requirement Ref: ĐK-REQ01
Use case Name: Đăng ký tài khoản
Brief
description:
Người dùng muốn tạo một tài khoản mới trên ứng dụng Popeyes để có thể thực hiện các giao dịch mua sắm hoặc quản lý cửa hàng
Actors: Khách hàng, Quản lý cửa hàng
Pre-conditions: Người dùng đã truy cập vào giao diện đăng ký trên ứng dụng Popeyes.
Trang 9Post-conditions: Tài khoản mới đã được tạo thành công và người dùng có thể đăng nhập.
- Nếu người dùng không nhập đủ thông tin hoặc thông tin không hợp lệ,
hệ thống hiển thị thông báo lỗi và yêu cầu người dùng nhập lại
- Nếu đã tồn tại tài khoản với địa chỉ email đã được sử dụng, hệ thống sẽ hiển thị thông báo và yêu cầu người dùng chọn tùy chọn khác hoặc đăng nhập vào tài khoản hiện có
Exception flows: - Nếu hệ thống gặp sự cố khi hiển thị màn hình đăng ký, nó sẽ hiển thị
thông báo lỗi và yêu cầu người dùng thử lại sau
1.3.2 ĐĂNG NHẬP
Use Case ID: ĐN-UC02 Requirement Ref: ĐN-REQ02
Use case Name: Đăng nhập vào hệ thống
Trang 10- Nếu hệ thống không thể xác thực thông tin, nó sẽ hiển thị thông báo lỗi
và yêu cầu người dùng thử lại sau hoặc liên hệ với bộ phận hỗ trợ
Exception flows:
- Nếu hệ thống gặp sự cố khi hiển thị màn hình đăng nhập, nó sẽ hiển thị thông báo lỗi và yêu cầu người dùng thử lại sau
1.3.3 TÌM KIẾM SẢN PHẨM
Use Case ID: TK-UC03 Requirement Ref: TKSP-REQ03
Use case Name: Tìm kiếm sản phẩm
Brief
description: Người dùng có thể tìm kiếm sản phẩm trong cửa hàng.
Actors: Khách hàng, Quản lý cửa hàng
Pre-conditions: Người dùng đã đăng nhập vào trang của cửa hàng.
Post-conditions: Người dùng đã tìm thấy sản phẩm mong muốn hoặc không có kết quả tìm
Trang 112 Hệ thống hiển thị thanh tìm kiếm.
3 Người dùng nhập từ khóa tìm kiếm
4 Hệ thống tìm kiếm và hiển thị kết quả tìm kiếm cho người dùng
Use Case ID: ĐH-UC04 Requirement Ref:ĐH- REQ04
Use case Name: Đặt hàng
Trang 12trang chi tiết sản phẩm.
2 Hệ thống hiển thị thông tin chi tiết về sản phẩm và tùy chọn thêm vào giỏ hàng
3 Khách hàng chọn số lượng sản phẩm cần mua và thêm vào giỏ hàng
4 Hệ thống cập nhật giỏ hàng với sản phẩm đã được thêm
5 Khách hàng xem lại giỏ hàng và chọn tiếp tục mua hàng hoặc tiến hành thanh toán
6 Nếu khách hàng chọn theo dõi đơn hàng, hệ thống hiển thị trạng thái và thông tin chi tiết của đơn hàng đang được theo dõi
7 Nếu khách hàng chọn hủy đơn hàng, hệ thống xác nhận việc hủy đơn hàng và loại bỏ đơn hàng khỏi hệ thống
8 Nếu khách hàng chọn xem lịch sử đơn hàng, hệ thống hiển thị danh sách các đơn hàng đã tạo trước đó cùng với thông tin chi tiết về từng đơn hàng
Use Case ID: TT-UC05 Requirement Ref: TT- REQ05
Use case Name: Thanh toán
Brief Người dùng muốn thanh toán cho đơn hàng đã đặt trên ứng dụng của cửa
Trang 132 Người dùng nhập thông tin thanh toán và xác nhận.
3 Hệ thống xử lý thanh toán và gửi xác nhận đơn hàng đến người dùng
- Nếu hệ thống gặp sự cố khi xử lý thanh toán, nó sẽ hiển thị thông báo lỗi
và yêu cầu người dùng thử lại hoặc liên hệ với bộ phận hỗ trợ
1.3.6 CẬP NHẬT MENU
Use Case ID: CN-UC06 Requirement Ref: CN- REQ06
Use case Name: Cập nhật menu
Brief Hệ thống cửa hàng muốn cập nhật danh sách sản phẩm trên ứng dụng của
Trang 141 Hệ thống gửi yêu cầu cập nhật menu đến hệ thống quản lý cửa hàng.
2 Hệ thống hiển thị danh sách sản phẩm hiện tại
3 Hệ thống cửa hàng thêm, sửa đổi hoặc xóa sản phẩm theo nhu cầu
- Nếu hệ thống gặp lỗi khi cập nhật menu (ví dụ: mất kết nối internet), nó
sẽ hiển thị thông báo lỗi và yêu cầu quản lý cửa hàng thử lại sau
1.3.7 THỐNG KÊ SỐ LIỆU
Use Case ID: TKSL-UC07 Requirement Ref: TKSL- REQ07
Use case Name: Thống kê số liệu
Trang 15Pre-conditions: Người dùng đã đăng nhập vào hệ thống quản lý cửa hàng của Popeyes
3 Quản lý cửa hàng hoặc hệ thống xem các số liệu và phân tích kết quả
4 Quản lý cửa hàng hoặc hệ thống có thể lưu các báo cáo hoặc xuất dữ liệu nếu cần
Alternative
flows:
- Nếu quản lý cửa hàng hoặc hệ thống muốn xem số liệu thống kê cụ thể,
họ có thể chọn các tùy chọn lọc để hiển thị dữ liệu theo thời gian, loại sản phẩm, v.v
Exception flows:
- Nếu hệ thống gặp sự cố khi truy cập vào giao diện thống kê, nó sẽ hiển thị thông báo lỗi và yêu cầu quản lý cửa hàng hoặc hệ thống thử lại sau
1.3.8 QUẢN LÝ TÀI KHOẢN
Use Case ID: QLTK-UC08 Requirement Ref: QLTK- REQ08
Use case Name: Quản lý tài khoản
Brief
description:
Hệ thống muốn quản lý các tài khoản người dùng trên ứng dụng của cửa hàng Popeyes, bao gồm xem thông tin tài khoản, cập nhật thông tin, và quản lý quyền truy cập
Actors: Hệ thống
Trang 161 Hệ thống gửi yêu cầu truy cập vào giao diện quản lý tài khoản
2 Hệ thống hiển thị danh sách các tài khoản người dùng
3 Hệ thống có thể xem thông tin chi tiết của từng tài khoản, bao gồm tên, email, số điện thoại, v.v
4 Hệ thống có thể cập nhật thông tin của tài khoản, bao gồm thay đổi mật khẩu hoặc thông tin cá nhân
5 Hệ thống có thể quản lý quyền truy cập cho các tài khoản, bao gồm cấp quyền quản trị viên (admin) cho nhân viên
- Nếu hệ thống gặp sự cố khi truy cập vào giao diện quản lý tài khoản, nó
sẽ hiển thị thông báo lỗi và yêu cầu thử lại sau
1.3.9 QUẢN LÝ GIỎ HÀNG
Use Case ID: QLGH-UC09 Requirement Ref: QLGH- REQ09
Use case Name: Quản lý giỏ hàng
Trang 171 Khách hàng mở ứng dụng của cửa hàng và chọn tùy chọn "Giỏ hàng".
2 Hệ thống hiển thị danh sách các sản phẩm trong giỏ hàng cùng với thông tin chi tiết về mỗi sản phẩm như tên, giá, số lượng và tổng giá của từng sản phẩm
3 Khách hàng có thể thay đổi số lượng của sản phẩm trong giỏ hàng hoặc xóa bỏ các sản phẩm không muốn mua nữa
4 Khách hàng có thể cập nhật giỏ hàng bằng cách thêm hoặc xóa sản phẩm theo nhu cầu
5 Sau khi cập nhật giỏ hàng, khách hàng có thể chọn tiếp tục mua sắm hoặc tiến hành thanh toán
Exception flows:
- Nếu hệ thống gặp sự cố khi hiển thị giỏ hàng: hệ thống hiển thị thông báo lỗi và yêu cầu khách hàng thử lại sau
Trang 181.3.10 QUẢN LÝ ĐƠN HÀNG
Use Case ID: QLDH-UC010 Requirement Ref: QLĐH- REQ010
Use case Name: Quản lý đơn hàng
Brief
description:
Quản lý cửa hàng muốn quản lý và xử lý các đơn hàng từ khách hàng
Actors: Quản lý cửa hàng
Pre-conditions: Quản lý cửa hàng đã đăng nhập vào hệ thống quản lý của Popeyes.
Post-conditions: Các đơn hàng đã được quản lý và xử lý theo yêu cầu của khách hàng.
Main Success
flow:
1 Quản lý cửa hàng truy cập vào giao diện quản lý đơn hàng trên ứng dụng Popeyes
2 Hệ thống hiển thị danh sách các đơn hàng đang chờ xử lý
3 Quản lý cửa hàng xem chi tiết từng đơn hàng bao gồm thông tin về sản phẩm, khách hàng, địa chỉ giao hàng và trạng thái của đơn hàng
4 Quản lý cửa hàng xác nhận và xử lý các đơn hàng theo yêu cầu của khách hàng
5 Hệ thống cập nhật trạng thái của đơn hàng (ví dụ: đã xác nhận, đang vận chuyển, đã hoàn thành, v.v.)
6 Quản lý cửa hàng gửi thông báo cho khách hàng để thông báo về trạng thái đơn hàng
Alternative
flows:
- Nếu không có đơn hàng nào đang chờ xử lý, hệ thống có thể hiển thị mộtthông báo tương ứng và không có đơn hàng nào được hiển thị
Trang 19Exception flows:
- Nếu hệ thống gặp lỗi khi xử lý đơn hàng (ví dụ: thông tin đơn hàng không hợp lệ hoặc mất kết nối internet), nó sẽ hiển thị thông báo lỗi và yêu cầu quản lý cửa hàng thử lại sau
2 DOMAIN MODEL
2.1 CÁC THỰC THỂ CHÍNH VÀ MỐI QUAN HỆ
Hệ thống quản lý bán hàng bao gồm các thực thể chính như sau:
1 Đơn hàng (Order)
2 Khách hàng (Customer)
3 Sản phẩm (Product)
4 Danh mục sản phẩm (Product Category)
5 Sản phẩm chi tiết (Product Detail)
6 Mục đơn hàng (Order Item)
7 Thanh toán (Payment)
8 Khuyến mãi (Promotion)
9 Giao hàng (Delivery)
10 Cửa hàng (Store)
11 Quản lý cửa hàng (Store Management)
12 Thống kê (Statistics)
2.2 MÔ TẢ CHI TIẾT CÁC THỰC THỂ VÀ MỐI QUAN HỆ
2.2.1 ĐƠN HÀNG (ORDER)
- Đơn hàng chứa các Mục đơn hàng
- Một Đơn hàng có thể bao gồm nhiều Mục đơn hàng (1 *)
- Đơn hàng được thanh toán bởi Khách hàng
Trang 20- Đơn hàng có thể áp dụng Khuyến mãi (0 *).
- Đơn hàng được giao cho Khách hàng qua Giao hàng (1 *)
2.2.2 KHÁCH HÀNG (CUSTOMER)
- Khách hàng thực hiện Đơn hàng
- Một Khách hàng có thể thực hiện nhiều Đơn hàng (1 *)
2.2.3 SẢN PHẨM (PRODUCT)
- Sản phẩm chứa trong Danh mục sản phẩm
- Sản phẩm có thể có nhiều Sản phẩm chi tiết (1 *)
- Sản phẩm tồn kho tại Cửa hàng (1 *)
2.2.4 DANH MỤC SẢN PHẨM (PRODUCT CATEGORY)
- Danh mục sản phẩm chứa nhiều Sản phẩm (1 *)
- Danh mục sản phẩm được sử dụng bởi Cửa hàng
2.2.5 SẢN PHẨM CHI TIẾT (PRODUCT DETAIL)
- Sản phẩm chi tiết miêu tả chi tiết của Sản phẩm
- Một Sản phẩm có thể có nhiều Sản phẩm chi tiết (1 *)
2.2.6 MỤC ĐƠN HÀNG (ORDER ITEM)
- Mục đơn hàng chứa trong Đơn hàng (0 1)
- Một Đơn hàng có thể chứa nhiều Mục đơn hàng (1 *)
2.2.7 THANH TOÁN (PAYMENT)
- Thanh toán được thực hiện bởi Khách hàng cho Đơn hàng
2.2.8 KHUYẾN MÃI (PROMOTION)
- Khuyến mãi có thể thêm vào Đơn hàng (0 *)
Trang 212.2.9 GIAO HÀNG (DELIVERY)
- Giao hàng được chỉ định bởi Đơn hàng (1)
- Một Giao hàng có thể liên quan đến nhiều Đơn hàng (1 *)
2.2.10 CỬA HÀNG (STORE)
- Cửa hàng chỉ định Giao hàng
- Cửa hàng chứa Sản phẩm trong kho
- Cửa hàng sử dụng Danh mục sản phẩm
2.2.11 QUẢN LÝ CỬA HÀNG (STORE MANAGEMENT)
- Quản lý cửa hàng vận hành Cửa hàng (1 *)
- Quản lý cửa hàng ghi lại chi phí cho Thống kê
2.2.12 THỐNG KÊ (STATISTICS)
- Thống kê ghi lại doanh số bán hàng từ Cửa hàng
2.3 MÔ TẢ MỐI QUAN HỆ
2.3.1 MỐI QUAN HỆ GIỮA ĐƠN HÀNG VÀ CÁC THỰC THỂ KHÁC
- Đơn hàng chứa các Mục đơn hàng
- Đơn hàng được thực hiện và thanh toán bởi Khách hàng
- Đơn hàng có thể áp dụng Khuyến mãi
- Đơn hàng được giao cho Khách hàng thông qua Giao hàng
2.3.2 MỐI QUAN HỆ GIỮA CỬA HÀNG VÀ CÁC THỰC THỂ KHÁC
- Cửa hàng chứa Sản phẩm trong kho
- Cửa hàng sử dụng Danh mục sản phẩm
- Cửa hàng được vận hành bởi Quản lý cửa hàng
Trang 222.4 SƠ ĐỒ DOMAIN MODEL
Dưới đây là sơ đồ domain model chi tiết của hệ thống quản lý bán hàng:
3 SYSTEM SEQUENCES DIAGRAM (SSD)
3.1 ĐĂNG NHẬP
Trang 233.2 ĐĂNG KÝ
3.3 TÌM KIẾM SẢN PHẨM
Trang 243.4 ĐẶT HÀNG
Trang 253.5 THANH TOÁN
Trang 263.6 CẬP NHẬT MENU
Trang 273.7 THỐNG KÊ
Trang 283.8 QUẢN LÝ CỬA HÀNG
Trang 31- `tinhGiamGia(double giaBan): double`
6.1.5 GIAO HÀNG (GIAOHANG)
Trang 326.1.6 HÓA ĐƠN (HOADON)
- `timKiemSanPham(string sanPhamMoi): void`
6.1.9 CHI TIẾT SẢN PHẨM (CHITIETSANPHAM)
- Thuộc tính:
- `IdSanPham`: int
Trang 33- `moTaSanPham`: string
- `giaSanPham`: double
- Phương thức:
- `locSanPham(int soLuongToiThieu): void`
6.1.10 CỬA HÀNG (CUAHANG)
Trang 346.1.12 THỐNG KÊ SỐ LIỆU (THONGKESOLIEU)
6.2 MỐI QUAN HỆ GIỮA CÁC LỚP
- Khách Hàng và Đơn Hàng: Một khách hàng có thể đặt nhiều đơn hàng (1 *)
- Đơn Hàng và Mục Đơn Hàng: Một đơn hàng chứa nhiều mục đơn hàng (1 *)
- Đơn Hàng và Khuyến Mãi: Một đơn hàng có thể áp dụng nhiều khuyến mãi (0 1 *)
- Đơn Hàng và Giao Hàng: Một đơn hàng được thực hiện bởi một giao hàng (1 1)
- Đơn Hàng và Hóa Đơn: Một đơn hàng có một hóa đơn (1 1)
- Hóa Đơn và Thanh Toán: Một hóa đơn bảo đảm một thanh toán (1 1)
- Mục Đơn Hàng và Sản Phẩm: Một mục đơn hàng liên quan đến một sản phẩm (1 1)
- Sản Phẩm và Chi Tiết Sản Phẩm: Một sản phẩm có một chi tiết sản phẩm (1 1)
- Cửa Hàng và Sản Phẩm: Một cửa hàng có nhiều sản phẩm (1 *)
- Cửa Hàng và Quản Lý Cửa Hàng: Một cửa hàng có một quản lý cửa hàng (1 1)
- Quản Lý Cửa Hàng và Đơn Hàng: Một quản lý cửa hàng có thể xử lý nhiều đơn hàng (1 *)
- Quản Lý Cửa Hàng và Thống Kê Số Liệu: Một quản lý cửa hàng có thể xem nhiềuthống kê số liệu (1 *)
Trang 356.3 SƠ ĐỒ CLASS DIAGRAM