Bối cảnh và vấn đề nghiên cứu
Đề tài "Hệ thống quản lý bán sách trực tuyến" được thực hiện bởi Nhóm 05, thuộc Khoa Công nghệ Thông tin – Học viện Công nghệ Bưu chính Viễn thông (Hà Nội, năm 2024), dưới sự hướng dẫn của giảng viên Đào Ngọc Phong. Đồ án tập trung giải quyết bài toán tự động hóa và tối ưu hóa quy trình kinh doanh, phân phối và quản lý sách trên nền tảng kỹ thuật số, đáp ứng nhu cầu tương tác trực tuyến giữa độc giả và đơn vị quản lý bán sách.
Mục tiêu và nhiệm vụ nghiên cứu của đồ án được xác định cụ thể thông qua các nội dung:
- Khảo sát, mô tả yêu cầu bài toán và phân tích chi tiết yêu cầu người dùng đối với các hoạt động mua bán, quản lý kho sách, xử lý đơn hàng và thống kê doanh thu.
- Xác định các ràng buộc nghiệp vụ về bảo mật, tính nhất quán dữ liệu, tính đa nền tảng và quản lý xử lý lỗi phát sinh trong hệ thống.
- Phân tích yêu cầu phần mềm, xác định các tác nhân tham gia (actors), phân loại hệ thống yêu cầu chức năng và yêu cầu phi chức năng.
- Xây dựng mô hình hóa hệ thống thông qua biểu đồ ca sử dụng (Use Case tổng quát), biểu đồ lớp thực thể (Entity Class Diagram).
- Phân tích, thiết kế chi tiết từng ca sử dụng trọng tâm theo mô hình kiến trúc MVC (Model - View - Controller), biểu đồ hoạt động (Activity Diagram), biểu đồ tuần tự (Sequence Diagram), thiết kế giao diện (User Interface) và xây dựng bộ kịch bản kiểm thử chuẩn (Test Cases).
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Quy trình nghiệp vụ bán lẻ sách trực tuyến, mô hình quản lý dữ liệu xuất bản phẩm, tương tác khách hàng, quy trình giỏ hàng, đặt hàng, xử lý thanh toán đa phương thức và quản trị danh mục sản phẩm.
- Phạm vi nghiên cứu: Hệ thống phần mềm quản lý bán sách trực tuyến được nhóm nghiên cứu xây dựng dựa trên 5 phân hệ ca sử dụng tương ứng với 5 thành viên thực hiện:
- Nguyễn Hữu Tài (Mã sinh viên: B21DCAT169): Ca sử dụng Xem danh sách sách.
- Nguyễn Công Đạt (Mã sinh viên: B21DCAT055): Ca sử dụng Thanh toán và xác nhận đơn hàng.
- Nguyễn Thị Phấn (Mã sinh viên: B21DCCN580): Ca sử dụng Mua và đặt hàng.
- Trần Trung Kiên (Mã sinh viên: B21DCCN466): Ca sử dụng Xem lịch sử đơn hàng và tình trạng giao hàng.
- Nguyễn Hoàng Mạnh (Mã sinh viên: B21DCCN514): Ca sử dụng Quản lý sách (dành cho quản trị viên).
Cơ sở lý thuyết và phương pháp
Đồ án áp dụng phương pháp phân tích và thiết kế hướng đối tượng (OOAD) kết hợp mô hình hóa hình thức bằng ngôn ngữ UML (Unified Modeling Language) và kiến trúc phân lớp phần mềm tiêu chuẩn.
Các khung lý thuyết và phương pháp kỹ thuật được triển khai bao gồm:
- Mô hình kiến trúc phần mềm MVC (Model - View - Controller): Tách biệt rõ ràng các tầng giao diện người dùng (View), tầng xử lý truy xuất cơ sở dữ liệu và logic điều khiển (Controller/DAO), và tầng biểu diễn dữ liệu thực thể (Model/Entity).
- Mẫu thiết kế truy cập dữ liệu DAO (Data Access Object): Sử dụng một lớp cơ sở
DAO trừu tượng hóa để xử lý kết nối cơ sở dữ liệu chung, từ đó mở rộng cho các lớp chuyên trách như BookDAO, UserDAO, CartDAO, OrderDAO.
- Phương pháp mô hình hóa UML: Xây dựng hệ thống tài liệu kỹ thuật hoàn chỉnh gồm Biểu đồ Use Case tổng quát, Biểu đồ lớp thực thể, Biểu đồ hoạt động mô tả luồng điều khiển, Biểu đồ tuần tự mô tả tương tác thông điệp giữa các đối tượng theo thời gian.
- Phương pháp đặc tả ca sử dụng chuẩn: Xác định mã Use Case, tên Use Case, mô tả mục đích, tác nhân, độ ưu tiên, sự kiện kích hoạt (Trigger), tiền điều kiện (Pre-conditions), hậu điều kiện (Post-conditions), luồng sự kiện chính (Basic Flow), luồng sự kiện thay thế (Alternative Flow), luồng ngoại lệ (Exception Flow) và các quy tắc nghiệp vụ (Business Rules).
- Phương pháp kiểm thử chức năng (Black-box Testing): Thiết kế bảng Test Case chuẩn bao gồm số thứ tự, thao tác thực hiện và kết quả mong đợi cho từng trường hợp hợp lệ và ngoại lệ.
Nguồn dữ liệu của đề tài được cấu trúc thông qua các thực thể nghiệp vụ quan hệ trong cơ sở dữ liệu phục vụ vận hành bán lẻ sách.
Thiết kế và triển khai
Hệ thống được thiết kế chi tiết theo các tầng kiến trúc và mô hình dữ liệu quan hệ, đảm bảo tính liên kết chặt chẽ giữa các thành phần phần mềm.
1. Mô hình dữ liệu và các thực thể hệ thống
Hệ thống xác định các thực thể chính, cấu trúc thuộc tính và quan hệ liên kết nghiệp vụ như sau:
| Tên thực thể |
Các thuộc tính thành phần |
Mô tả mối quan hệ nghiệp vụ |
| Customer |
id_cus, name_cus, dob, email, phone, address |
Quan hệ 1 - N với thực thể Order qua id_cus: Một khách hàng có thể đặt nhiều đơn hàng, mỗi đơn hàng chỉ thuộc về một khách hàng. |
| Book |
id_book, id_author, name_book, price, publish_year |
Quan hệ N - N với thực thể Order qua id_book: Một cuốn sách có thể xuất hiện trong nhiều đơn hàng, một đơn hàng có thể chứa nhiều cuốn sách. |
| Order |
id_ord, date_ord, id_cus, id_book, status |
Liên kết với Customer (N - 1), liên kết với Book (N - N), và liên kết với Shipment (N - 1). |
| Author |
id_author, name_author, dob |
Quan hệ 1 - N với thực thể Book qua id_author: Một tác giả có thể sáng tác nhiều cuốn sách, mỗi cuốn sách liên kết với tác giả cụ thể. |
| Shipment |
Đơn vị vận chuyển liên kết đơn hàng |
Quan hệ 1 - N với Order: Một đơn vị vận chuyển có thể tiếp nhận và vận chuyển nhiều đơn hàng của hệ thống. |
2. Kiến trúc phân tầng MVC và DAO
Cấu trúc các lớp trong hệ thống được phân định rõ ràng giữa các tầng:
- Tầng giao diện (View):
LoginFrm: Giao diện tiếp nhận xác thực đăng nhập người dùng.
HomeFrm: Màn hình chính điều hướng sau khi xác thực thành công.
SearchBookFrm: Giao diện nhập từ khóa tìm kiếm sách.
FilterBookFrm: Giao diện chọn các tiêu chí lọc sách.
CartFrm: Giao diện quản lý danh sách sản phẩm trong giỏ hàng.
OrderFrm: Giao diện xác nhận thông tin đơn hàng, nhập địa chỉ, chọn voucher, phương thức giao hàng và thanh toán.
- Tầng điều khiển và truy cập dữ liệu (DAO):
- Kế thừa lớp
DAO cơ sở để chuẩn hóa các thao tác tương tác cơ sở dữ liệu.
BookDAO: Chứa các phương thức xử lý truy vấn searchBookByName(Name), filterBookByGerne().
UserDAO: Chứa phương thức xử lý xác thực tài khoản checkLogin().
CartDAO: Chứa phương thức xử lý thao tác giỏ hàng selectedProduct().
OrderDAO: Chứa phương thức ghi nhận và lưu trữ đơn hàng addOrder().
- Tầng thực thể (Model): Bao gồm các lớp
User, Customer, Book, Cart, Order, Author.
3. Ràng buộc kỹ thuật và phi chức năng
- Bảo mật và an toàn: Bảo vệ dữ liệu quan trọng, ngăn chặn mối đe dọa mạng, định kỳ sao lưu dữ liệu để khắc phục sự cố, phân quyền chặt chẽ (chỉ người quản trị mới có quyền cập nhật dữ liệu danh mục sách).
- Tính nhất quán dữ liệu: Dữ liệu nhập vào phải tuân thủ định dạng và kiểu dữ liệu; xác thực, kiểm tra dữ liệu để loại bỏ dữ liệu không hợp lệ và đồng bộ hóa toàn hệ thống.
- Tính đa nền tảng: Giao diện thiết kế linh hoạt, tương thích trên máy tính cá nhân (PC), điện thoại di động và máy tính bảng; cơ sở dữ liệu và dịch vụ phần mềm hoạt động ổn định trên nhiều môi trường hệ điều hành.
- Hiệu suất và vận hành: Đảm bảo khả năng hoạt động liên tục 24/7, thời gian phản hồi giao dịch mua bán nằm trong ngưỡng chấp nhận được; cập nhật dữ liệu danh mục sách của quản trị viên lên hệ thống trong vòng 5–10 giây.
- Quản lý xử lý lỗi: Xác định và xử lý 3 nhóm lỗi chính: lỗi hệ thống (kỹ thuật, phần mềm, cơ sở dữ liệu), lỗi giao diện người dùng (không tải được trang, nhập liệu sai, hiển thị sai), và lỗi giao dịch/thanh toán (thẻ hết hạn, lỗi cổng thanh toán, lỗi xác nhận đơn).
Nội dung chính theo từng phần của đồ án
Phần 1: Công việc chung của nhóm
Phần này tập trung phân tích tổng thể bài toán nghiệp vụ, xác định các yêu cầu người dùng, ràng buộc hệ thống và mô hình dữ liệu tổng quan.
- Mô tả yêu cầu người dùng:
- Quản lý sách: Thêm, sửa, xóa thông tin sách (tiêu đề, tác giả, năm xuất bản, thể loại, giá bán); tìm kiếm sách đa tiêu chí (tên, tác giả, năm xuất bản, khoảng giá); phân loại danh mục sách.
- Quản lý đơn hàng: Quản trị viên theo dõi số lượng đơn hàng theo người dùng/sách/thể loại theo ngày, tháng; xem tình trạng đơn hàng bán (đang đóng gói, đang vận chuyển, đã giao thành công); xem tình trạng thanh toán (tiền mặt, thẻ, trả trước, trả sau). Người dùng có quyền xem trạng thái, sửa đổi (số lượng, địa chỉ, thanh toán) hoặc hủy đơn hàng khi đơn chưa chuyển sang trạng thái vận chuyển.
- Quản lý khách hàng: Lưu trữ thông tin cá nhân (họ tên, số điện thoại, email, giới tính, ngày sinh, địa chỉ nhận hàng, tài khoản liên kết, sở thích, theo dõi thể loại sách); quản lý đánh giá/phản hồi sách và dịch vụ; quản lý thông báo, ưu đãi phân cấp bậc và voucher độc quyền.
- Báo cáo và thống kê: Thống kê doanh thu theo thời gian, số lượng bán theo thể loại và tác giả; thống kê điểm đánh giá trung bình; báo cáo tồn kho (số lượng còn lại, số lượng đã bán); thống kê người dùng (đăng ký mới, người dùng đã mua, người dùng đang hoạt động).
- Phân tích tác nhân (Actors): Hệ thống có 2 tác nhân chính:
- Khách hàng: Thực hiện tìm kiếm, lọc sách, quản lý giỏ hàng, mua và đặt hàng, thanh toán, xem lịch sử đơn hàng.
- Quản trị viên (Admin): Thực hiện thêm, sửa, xóa, phân loại danh mục sách và quản lý đơn hàng, báo cáo.
- Xác định yêu cầu chức năng và phi chức năng: Phân định rõ 5 nhóm chức năng lớn và các ràng buộc phi chức năng về hiệu năng, bảo mật, tính khả dụng và khả năng mở rộng.
- Xây dựng biểu đồ lớp thực thể: Mô hình hóa các thực thể dữ liệu nghiệp vụ
Customer, Book, Order, Author, Shipment cùng các thuộc tính khóa và mối quan hệ liên kết bảng.
Phần 2: Kết quả phân tích và thiết kế chi tiết từng ca sử dụng
Mỗi thành viên trong nhóm phụ trách hoàn thiện hồ sơ thiết kế kỹ thuật cho một ca sử dụng chuyên biệt:
1. Ca sử dụng UC-1.1: Xem danh sách sách (Phụ trách: Nguyễn Hữu Tài)
- Đặc tả Use Case: Ca sử dụng có độ ưu tiên Must have, kích hoạt khi khách hàng muốn tìm kiếm hoặc lọc sách trên hệ thống sau khi đã đăng nhập và kết nối Internet.
- Luồng xử lý: Người dùng nhập từ khóa tìm kiếm hoặc bấm biểu tượng lọc theo thể loại/năm phát hành; hệ thống kiểm tra tính hợp lệ của từ khóa (
ValidKeyWord()), gọi phương thức searchBookByName() hoặc filterBookByGerne() từ lớp BookDAO, sau đó trả về danh sách kết quả cho phép người dùng tùy chọn sắp xếp theo giá hoặc tên sách. Nếu ô tìm kiếm bỏ trống, hệ thống gọi hàm showMessage() yêu cầu nhập từ khóa.
- Kiểm thử chuẩn (Test Cases):
- Kiểm tra tìm kiếm khi bỏ trống ô nhập liệu: Hiển thị thông báo "Hãy nhập từ khóa tìm kiếm".
- Tìm kiếm với từ khóa hợp lệ: Trả về danh sách sách thỏa mãn tiêu chí và kiểm tra tính năng sắp xếp.
- Tìm kiếm với từ khóa không tồn tại trong cơ sở dữ liệu: Trả về thông báo không có kết quả và giữ nguyên giao diện tìm kiếm.
- Lọc sách theo thể loại/năm phát hành: Trả về đúng danh sách đã lọc và kiểm tra sắp xếp.
2. Ca sử dụng: Thanh toán và xác nhận đơn hàng (Phụ trách: Nguyễn Công Đạt)
- Đặc tả các Use Case thành phần:
- Use Case Thanh toán: Kích hoạt khi người dùng bấm đặt hàng tại giao diện xác nhận; cung cấp hai luồng lựa chọn: Thanh toán khi nhận hàng (COD) hoặc Thanh toán trực tuyến (Online).
- Use Case Nhập thông tin cá nhân cần thiết: Kích hoạt khi hệ thống phát hiện tài khoản chưa có thông tin nhận hàng, yêu cầu người dùng cập nhật và lưu trữ vào hệ thống.
- Use Case Thêm thẻ: Cho phép người dùng nhập thông tin thẻ ngân hàng (số thẻ, tên chủ thẻ) trên giao diện thanh toán online để lưu trữ và tái sử dụng.
- Kiểm thử chuẩn (Test Cases):
- Thanh toán COD hợp lệ: Kiểm tra thông tin thanh toán, chuyển trạng thái đơn hàng sang "Chờ thanh toán khi nhận hàng".
- Thanh toán COD ngoại lệ: Xử lý khi thiếu thông tin giao hàng (ví dụ thiếu số điện thoại), hiển thị lỗi và chặn hoàn tất đơn hàng.
- Thanh toán Online hợp lệ: Chuyển hướng tới cổng thanh toán, xác nhận thanh toán thành công, cập nhật trạng thái "Đã thanh toán" và gửi email xác nhận.
- Thanh toán Online ngoại lệ: Xử lý nhập sai thông tin thanh toán hoặc người dùng chủ động hủy giao dịch, giữ nguyên trạng thái đơn hàng.
- Thêm thẻ thanh toán: Kiểm tra lưu thẻ thành công hiển thị trên trang quản lý và bắt lỗi khi nhập thẻ không hợp lệ/thiếu thông tin.
3. Ca sử dụng UC-1.3: Mua và đặt hàng (Phụ trách: Nguyễn Thị Phấn)
- Đặc tả Use Case: Ca sử dụng có độ ưu tiên mức 2, mô tả quy trình chuyển đổi từ giỏ hàng sang đơn đặt hàng chính thức.
- Quy tắc nghiệp vụ (Business Rules):
- Quy tắc số lượng tối thiểu để mua một sản phẩm.
- Quy tắc áp dụng giảm giá, khuyến mãi và voucher dựa trên giá trị hoặc số lượng đơn hàng.
- Quy tắc tính phí vận chuyển dựa trên khu vực, trọng lượng và giá trị đơn hàng.
- Quy tắc kiểm tra số lượng tồn kho (nếu kho không đủ, hiển thị thông báo "Xin lỗi, sản phẩm này quá số lượng cho phép" và đưa ra các lựa chọn: mua số lượng tối đa cho phép, chọn sản phẩm khác, hoặc đăng ký nhận thông báo).
- Quy tắc chính sách đổi trả và giải quyết khiếu nại.
- Luồng tuần tự MVC: Người dùng thao tác trên
LoginFrm -> xác thực qua UserDAO.checkLogin() -> chuyển sang HomeFrm -> mở CartFrm qua CartDAO.selectedProduct() -> chuyển sang OrderFrm -> nhập thông tin giao hàng, voucher -> phương thức actionPerformed() gọi OrderDAO.addOrder() để lưu đơn hàng vào cơ sở dữ liệu và hiển thị thông báo thành công.
4. Ca sử dụng UC-1.4: Xem lịch sử đơn hàng và tình trạng giao hàng (Phụ trách: Trần Trung Kiên)
- Đặc tả Use Case: Ca sử dụng có độ ưu tiên Must Have, cho phép khách hàng theo dõi lại các đơn hàng đã thực hiện và trạng thái vận chuyển thời gian thực.
- Quy tắc nghiệp vụ: Bắt buộc đăng nhập hợp lệ trước khi truy cập dữ liệu; hiển thị danh sách các trạng thái chuẩn hóa ("Đang xử lý", "Đang đóng gói", "Đang vận chuyển", "Đã giao hàng", "Đã hủy"), thời gian đặt và thông tin sản phẩm.
- Mô hình MVC và luồng tuần tự: Giao diện gửi yêu cầu tra cứu lịch sử đơn hàng xuống tầng điều khiển, hệ thống truy vấn cơ sở dữ liệu, đóng gói dữ liệu đơn hàng và sản phẩm tương ứng trả về hiển thị trên giao diện Đơn mua.
- Kiểm thử chuẩn (Test Cases):
- Khách hàng đã có đơn hàng: Hiển thị đầy đủ danh sách lịch sử đơn và chi tiết trạng thái giao hàng.
- Khách hàng chưa phát sinh đơn hàng: Hiển thị thông báo "Bạn chưa mua đơn hàng nào".
- Chưa đăng nhập: Hệ thống chuyển hướng và yêu cầu "Vui lòng đăng nhập".
5. Ca sử dụng UC-1.5: Quản lý sách dành cho Quản trị viên (Phụ trách: Nguyễn Hoàng Mạnh)
- Đặc tả Use Case: Ca sử dụng có độ ưu tiên Must have, dành riêng cho tài khoản quản trị viên để thực hiện các thao tác thêm mới, chỉnh sửa thông tin hoặc xóa bỏ đầu sách khỏi hệ thống.
- Luồng xử lý: Quản trị viên đăng nhập -> thực hiện tìm kiếm hoặc lọc sách -> chọn đầu sách cụ thể để hiển thị trang chi tiết -> thực hiện sửa hoặc xóa sách. Nếu sách chưa tồn tại hoặc tìm kiếm không thấy, quản trị viên có thể chọn chức năng "Thêm sách" để nhập dữ liệu đầu sách mới.
- Yêu cầu phi chức năng: Dữ liệu cập nhật (thêm, sửa, xóa) phải được đồng bộ và phản ánh lên cơ sở dữ liệu cửa hàng trong vòng 5–10 giây.
- Kiểm thử chuẩn (Test Cases):
- Tìm/lọc sách có tồn tại và thực hiện xóa sách.
- Tìm/lọc sách có tồn tại và thực hiện sửa thông tin sách.
- Xử lý xóa/sửa khi tìm kiếm không thấy sách trong cơ sở dữ liệu.
- Thêm sách mới chưa từng tồn tại vào cơ sở dữ liệu.
- Bắt lỗi khi thêm sách mới bị trùng lặp dữ liệu đã tồn tại.
- Tìm lại sách đã tồn tại trong hệ thống.
Kết quả và đóng góp
Đồ án đã xây dựng một bộ tài liệu phân tích thiết kế phần mềm hoàn chỉnh cho hệ thống bán sách trực tuyến với các kết quả cụ thể:
- Kết quả phân tích thiết kế:
- Hoàn thiện mô hình phân rã chức năng và xác định đầy đủ 2 nhóm tác nhân (Khách hàng và Quản trị viên).
- Chuẩn hóa 5 phân hệ ca sử dụng cốt lõi với cấu trúc đặc tả chi tiết (từ UC-1.1 đến UC-1.5).
- Xây dựng hệ thống biểu đồ UML hoàn chỉnh bao gồm: Biểu đồ Use Case tổng quát, Biểu đồ lớp thực thể (
Customer, Book, Order, Author, Shipment), Biểu đồ hoạt động, Biểu đồ lớp MVC (*Frm, *DAO, Entity) và Biểu đồ tuần tự cho từng chức năng.
- Thiết kế cấu trúc giao diện tương tác cho các màn hình: tìm kiếm, lọc sách, đăng nhập, trang chủ, giỏ hàng, đặt hàng, thanh toán trực tuyến, quản lý thẻ, lịch sử đơn mua, quản lý danh mục sách của quản trị viên.
- Xây dựng hệ thống các bảng kiểm thử chuẩn (Test Cases) bao quát các luồng thực thi bình thường và các trường hợp ngoại lệ (lỗi bỏ trống ô tìm kiếm, thông tin giao hàng không hợp lệ, lỗi thanh toán online, giỏ hàng vượt số lượng tồn kho, tài khoản chưa đăng nhập, trùng lặp sách khi thêm mới).
- Đóng góp về mặt kỹ thuật:
- Áp dụng triệt để mô hình kiến trúc MVC kết hợp mẫu thiết kế DAO giúp mã nguồn và thiết kế có tính tách biệt cao giữa tầng giao diện hiển thị và tầng truy xuất cơ sở dữ liệu.
- Thiết lập hệ thống quy tắc nghiệp vụ (Business Rules) rõ ràng trong việc kiểm soát tồn kho, tính phí vận chuyển, áp dụng voucher khuyến mãi và phân quyền quản trị dữ liệu.
Hạn chế và hướng nghiên cứu tiếp
Dựa trên phạm vi và nội dung trình bày trong văn bản đồ án, các hạn chế và định hướng phát triển được xác định:
- Hạn chế:
- Hệ thống mới tập trung sâu vào giai đoạn phân tích yêu cầu, mô hình hóa UML, thiết kế kiến trúc MVC - DAO và xây dựng kịch bản kiểm thử, chưa công bố chi tiết mã nguồn triển khai thực tế của các dịch vụ bên ngoài.
- Các phân hệ thanh toán trực tuyến và tích hợp đơn vị vận chuyển mới dừng lại ở mức thiết kế luồng xử lý và mô hình hóa kịch bản ngoại lệ, chưa có dữ liệu kiểm thử tải thực tế với lưu lượng lớn.
- Hướng nghiên cứu và phát triển tiếp:
- Hoàn thiện lập trình và tích hợp thực tế với các cổng thanh toán điện tử và hệ thống quản lý vận chuyển của các đối tác giao hàng.
- Tối ưu hóa hiệu năng tìm kiếm và tốc độ xử lý thao tác của hệ thống theo các phản hồi nghiệp vụ đã ghi nhận (khắc phục hiện tượng tìm kiếm chậm).
- Cải tiến giao diện và quản lý chính sách hiển thị thông báo, hạn chế quảng cáo nhằm nâng cao trải nghiệm người dùng theo đóng góp thực tế.
Giá trị tham khảo
Tài liệu đồ án có giá trị tham khảo thiết thực cho các đối tượng:
- Sinh viên ngành Công nghệ Thông tin, Kỹ thuật Phần mềm, Hệ thống Thông tin: Tham khảo phương pháp phân tích thiết kế hệ thống thông tin hướng đối tượng, quy trình lập tài liệu kỹ thuật phần mềm chuẩn từ khâu đặc tả yêu cầu đến thiết kế kiến trúc.
- Người làm đề tài về hệ thống thương mại điện tử / bán hàng trực tuyến: Tham khảo cách xây dựng mô hình dữ liệu thực thể quan hệ giữa khách hàng, sách, tác giả, đơn hàng và vận chuyển; cách thiết kế luồng xử lý giỏ hàng, đặt hàng và quản lý danh mục sản phẩm.
- Các phần nội dung đáng tham khảo nhất trong đồ án:
- Cấu trúc đặc tả Use Case chuẩn hóa kèm các luồng thay thế và quy tắc nghiệp vụ (Business Rules).
- Phương pháp phân rã kiến trúc MVC kết hợp lớp truy xuất dữ liệu
DAO (BookDAO, UserDAO, OrderDAO, CartDAO).
- Bộ kịch bản kiểm thử chuẩn (Test Cases) phân tích chi tiết các trường hợp biên và xử lý ngoại lệ cho từng chức năng.
Câu hỏi thường gặp
1. Hệ thống quản lý bán sách trực tuyến phân chia những tác nhân (actors) nào và vai trò của họ là gì?
Hệ thống xác định 2 tác nhân chính:
- Khách hàng (Customer): Thực hiện tìm kiếm, lọc danh mục sách theo nhiều tiêu chí, đưa sách vào giỏ hàng, mua và đặt hàng, chọn phương thức thanh toán (COD hoặc Online), thêm thẻ ngân hàng, theo dõi lịch sử đơn hàng và tình trạng giao hàng.
- Quản trị viên (Admin): Quản lý cơ sở dữ liệu sách (thêm mới, chỉnh sửa, xóa bỏ đầu sách, phân loại thể loại), theo dõi đơn hàng bán và xem các báo cáo thống kê về doanh thu, tồn kho và người dùng.
2. Mô hình dữ liệu của hệ thống gồm những thực thể nào và quan hệ giữa chúng ra sao?
Hệ thống được xây dựng dựa trên 5 thực thể chính:
Customer (id_cus, name_cus, dob, email, phone, address): Quan hệ 1 - N với Order.
Book (id_book, id_author, name_book, price, publish_year): Quan hệ N - N với Order và quan hệ N - 1 với Author.
Order (id_ord, date_ord, id_cus, id_book, status): Liên kết với Customer, Book và Shipment.
Author (id_author, name_author, dob): Quan hệ 1 - N với Book.
Shipment: Quan hệ 1 - N với Order.
3. Tầng truy xuất dữ liệu (DAO) trong kiến trúc MVC của đồ án gồm các lớp nào và thực hiện chức năng gì?
Các lớp thuộc tầng DAO đều kế thừa từ lớp DAO cơ sở, bao gồm:
BookDAO: Thực hiện các truy vấn dữ liệu sách như tìm kiếm theo tên (searchBookByName) và lọc theo thể loại (filterBookByGerne).
UserDAO: Thực hiện kiểm tra và xác thực thông tin đăng nhập của người dùng (checkLogin).
CartDAO: Xử lý việc chọn và quản lý các sản phẩm trong giỏ hàng (selectedProduct).
OrderDAO: Thực hiện thao tác thêm và lưu trữ đơn hàng vào cơ sở dữ liệu (addOrder).
4. Quy trình xử lý ngoại lệ khi đặt hàng và thanh toán trực tuyến được thiết kế như thế nào?
- Khi đặt hàng: Hệ thống tự động kiểm tra số lượng tồn kho. Nếu số lượng yêu cầu vượt quá số lượng hiện có, hệ thống hiển thị thông báo lỗi "Xin lỗi, sản phẩm này quá số lượng cho phép" và cung cấp các lựa chọn: mua theo số lượng tối đa hiện có, chọn sản phẩm khác hoặc nhận thông báo khi có hàng mới.
- Khi thanh toán trực tuyến: Nếu thông tin thẻ không chính xác, thẻ hết hạn hoặc cổng thanh toán gặp sự cố, hệ thống nhận mã lỗi từ cổng thanh toán, hiển thị thông báo lỗi rõ ràng, giữ nguyên trạng thái đơn hàng (chưa xác nhận) và cho phép người dùng thử lại hoặc chọn phương thức thanh toán khác.
5. Ca sử dụng "Quản lý sách" dành cho quản trị viên đặt ra yêu cầu phi chức năng gì về thời gian cập nhật?
Theo đặc tả ca sử dụng UC-1.5, yêu cầu phi chức năng quy định dữ liệu sau khi được quản trị viên thực hiện các thao tác thêm, sửa hoặc xóa phải được cập nhật và đồng bộ lên cơ sở dữ liệu của cửa hàng trong khoảng thời gian từ 5 đến 10 giây.
Kết luận
Đồ án "Hệ thống quản lý bán sách trực tuyến" của Nhóm 05 (Khoa Công nghệ Thông tin – Học viện Công nghệ Bưu chính Viễn thông) đã hoàn thành toàn diện nhiệm vụ phân tích và thiết kế phần mềm cho một nền tảng thương mại điện tử chuyên ngành sách. Hệ thống được mô hình hóa chi tiết thông qua chuẩn UML, kiến trúc phân tầng MVC kết hợp mẫu thiết kế DAO và hệ thống thực thể dữ liệu quan hệ chặt chẽ. Toàn bộ 5 phân hệ ca sử dụng từ tra cứu, đặt hàng, thanh toán, quản lý đơn mua đến quản trị danh mục đều được xây dựng đầy đủ kịch bản tương tác, thiết kế giao diện và bộ kiểm thử chuẩn hóa, cung cấp một tài liệu kỹ thuật có giá trị tham khảo cao trong phân tích thiết kế hệ thống phần mềm.