Bối cảnh và vấn đề nghiên cứu
Lý do chọn đề tài và bối cảnh thực tiễn
Theo số liệu từ báo cáo của Cục Thương mại điện tử và Kinh tế số thuộc Bộ Công Thương được tác giả trích dẫn, doanh số thương mại điện tử của Việt Nam năm 2020 đạt khoảng 10 tỷ USD, với khoảng 30% dân số tham gia các hoạt động mua bán và sắm sửa trực tuyến. Sự tăng trưởng của hạ tầng công nghệ thông tin cùng sự thay đổi trong thói quen tiêu dùng tạo ra nhu cầu lớn về các hệ thống bán lẻ đa kênh trên môi trường mạng.
Trong bối cảnh đó, các đơn vị bán hàng cần những công cụ tin học hóa để kiểm soát cửa hàng, quản lý kho bãi, xử lý đơn hàng và tương tác với khách hàng mọi lúc, mọi nơi. Đề tài "Phân tích và thiết kế hệ thống bán hàng trực tuyến" được nhóm sinh viên Viện Công nghệ Thông tin và Truyền thông – Trường Đại học Bách Khoa Hà Nội thực hiện nhằm xây dựng một mô hình phân tích - thiết kế phần mềm bài bản, mô phỏng đầy đủ hoạt động của một cửa hàng thương mại điện tử thực tế.
Mục tiêu và nhiệm vụ nghiên cứu
Mục tiêu trọng tâm của đề tài là xây dựng bộ hồ sơ phân tích và thiết kế chi tiết cho một hệ thống phần mềm thương mại điện tử, bảo đảm tính đơn giản, rõ ràng và hiệu quả trong vận hành. Để đạt được mục tiêu này, các nhiệm vụ cụ thể được xác định bao gồm:
- Thu thập, phân loại và mô tả chi tiết các yêu cầu chức năng và phi chức năng của hệ thống.
- Xác định các tác nhân và xây dựng biểu đồ ca sử dụng (Use Case Diagram) từ mức tổng quát đến chi tiết.
- Lập đặc tả ca sử dụng, xây dựng biểu đồ hoạt động (Activity Diagram) và biểu đồ tuần tự (Sequence Diagram) cho cả mức hệ thống và mức nghiệp vụ.
- Thiết kế biểu đồ lớp (Class Diagram), mô hình thực thể liên kết (ERD) và xây dựng từ điển dữ liệu chi tiết cho cơ sở dữ liệu quan hệ.
- Thiết kế kiến trúc phần mềm (biểu đồ thành phần, biểu đồ triển khai theo mô hình MVC) và xây dựng sơ đồ điều hướng giao diện cùng các nguyên mẫu màn hình (Mockups).
Đố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 hàng, quản lý đơn hàng, quản trị danh mục sản phẩm, tương tác đánh giá và xử lý giao vận trong một hệ thống thương mại điện tử.
- Phạm vi hệ thống: Mô hình tập trung vào việc mô hình hóa các tương tác giữa người dùng (Khách hàng) và ban quản trị (Người quản lý, Shipper/Người giao hàng) trên giao diện web/ứng dụng, chưa đi sâu vào lập trình mã nguồn thực tế hay tích hợp cổng thanh toán ngân hàng thực tế.
- Thời gian và đơn vị thực hiện: Báo cáo được hoàn thành vào tháng 6 năm 2021 tại Viện Công nghệ Thông tin và Truyền thông, Trường Đại học Bách Khoa Hà Nội.
Cơ sở lý thuyết và phương pháp
Khung lý thuyết và mô hình sử dụng
Nghiên cứu ứng dụng phương pháp phân tích và thiết kế hướng đối tượng (Object-Oriented Analysis and Design - OOAD) thông qua các công cụ chuẩn hóa:
- Ngôn ngữ mô hình hóa thống nhất (UML - Unified Modeling Language): Sử dụng để trực quan hóa các giai đoạn phân tích và thiết kế thông qua Use Case Diagram, Activity Diagram, Sequence Diagram, Class Diagram, Component Diagram và Deployment Diagram.
- Mô hình kiến trúc phần mềm MVC (Model - View - Controller): Được áp dụng để tổ chức phân tách cấu trúc phần mềm giữa tầng dữ liệu, tầng điều khiển nghiệp vụ và tầng giao diện hiển thị.
- Ngôn ngữ mô hình hóa luồng tương tác (IFML - Interaction Flow Modeling Language): Áp dụng để biểu diễn cấu trúc điều hướng giữa các thành phần giao diện của người dùng và quản trị viên.
Phương pháp nghiên cứu và phân công thực hiện
Nhóm tác giả sử dụng phương pháp phân tích nghiệp vụ, mô hình hóa hệ thống và thiết kế cấu trúc dữ liệu quan hệ. Đề tài được thực hiện bởi nhóm 5 thành viên với sự phân chia nhiệm vụ và tỷ trọng đóng góp cụ thể như sau:
| STT |
Họ và tên |
MSSV |
Nhiệm vụ phân công |
Mức độ đóng góp |
| 1 |
Lê Minh Nghĩa |
20183960 |
Viết báo cáo; thiết kế biểu đồ lớp; vẽ biểu đồ hoạt động, tuần tự, đặc tả Use Case Quản lý sản phẩm và Quản lý danh mục; vẽ biểu đồ thành phần, biểu đồ triển khai, sơ đồ IFML phía người dùng; thiết kế lược đồ dữ liệu. |
22% |
| 2 |
Lê Phương Nam |
20183957 |
Xây dựng biểu đồ Use Case tổng quan và phân rã Use Case; vẽ biểu đồ hoạt động, tuần tự, đặc tả Use Case Đánh giá sản phẩm; xây dựng biểu đồ gói, ERD, bảng đặc tả dữ liệu; thiết kế sơ đồ IFML phía quản trị; hiệu chỉnh báo cáo. |
22% |
| 3 |
Đào Thu Hương |
20180096 |
Xây dựng biểu đồ hoạt động, biểu đồ tuần tự và viết đặc tả Use Case Mua hàng. |
18% |
| 4 |
Tăng Thế Toàn |
20183998 |
Xây dựng biểu đồ hoạt động, biểu đồ tuần tự và viết đặc tả Use Case Quản lý đơn hàng. |
18% |
| 5 |
Trần Quang Thiện |
20183992 |
Thiết kế nguyên mẫu giao diện (Wireframes/Mockups) cho phân hệ Người dùng và Quản trị viên. |
20% |
Nguồn dữ liệu tham khảo
- Slide bài giảng môn Phân tích thiết kế hệ thống của TS. Nguyễn Bá Ngọc (Trường Đại học Bách Khoa Hà Nội).
- Chuẩn kỹ thuật Interaction Flow Modeling Language (IFML) của Object Management Group (OMG).
- Báo cáo thống kê chỉ số thương mại điện tử năm 2020 của Cục Thương mại điện tử và Kinh tế số (Bộ Công Thương).
Nội dung chính theo từng chương
Chương I. Phân tích yêu cầu bài toán
Chương này tập trung xác định bài toán nghiệp vụ, phân loại các tác nhân tương tác và làm rõ hệ thống yêu cầu.
1. Định nghĩa bài toán và tác nhân
Hệ thống xác định 3 tác nhân tham gia vào hoạt động vận hành:
- Khách hàng (Customer): Xem thông tin sản phẩm, tìm kiếm, đăng ký/đăng nhập, đưa sản phẩm vào giỏ hàng, xác nhận đặt hàng, thanh toán trực tuyến, theo dõi trạng thái đơn hàng và gửi đánh giá/bình luận về sản phẩm.
- Người quản lý (Admin): Quản lý danh mục, quản lý thông tin sản phẩm, theo dõi và cập nhật trạng thái đơn đặt hàng, xử lý phản hồi/đánh giá và quản lý tài khoản người dùng/nhân sự.
- Hệ thống (System): Thực hiện xử lý logic tự động, kiểm tra tính hợp lệ của dữ liệu, xác nhận giao dịch và lưu trữ dữ liệu vào cơ sở dữ liệu.
2. Phân loại yêu cầu
- Yêu cầu chức năng:
- Nhóm Người quản lý: Thêm, sửa, xóa sản phẩm; thêm, sửa, xóa danh mục sản phẩm; thống kê, theo dõi tình trạng đơn đặt hàng, hủy đơn hàng; trả lời hoặc xóa các phản hồi, đánh giá vi phạm.
- Nhóm Khách hàng: Tìm kiếm và xem thông tin chi tiết sản phẩm; đăng ký tài khoản mới bằng email; đăng nhập, đăng xuất, đổi mật khẩu, khôi phục mật khẩu; thêm/sửa/xóa sản phẩm trong giỏ hàng; đặt hàng và xem lịch sử đơn hàng; đánh giá và bình luận sản phẩm.
- Yêu cầu phi chức năng:
- Thao tác & Vận hành: Hỗ trợ liên kết tài khoản ngân hàng để thanh toán online; sử dụng email cá nhân để kích hoạt và xác thực tài khoản.
- Hiệu năng & Độ tin cậy: Đảm bảo khả năng phục vụ liên tục 24/7; cập nhật trực tiếp vào cơ sở dữ liệu, không để xảy ra sai sót hoặc mất mát dữ liệu người dùng; tốc độ tương tác mượt mà và thời gian phản hồi nhanh.
Chương II. Phân tích yêu cầu hệ thống
Chương II chi tiết hóa các yêu cầu thông qua các mô hình hành vi UML, bao gồm biểu đồ ca sử dụng, đặc tả kịch bản, biểu đồ hoạt động, biểu đồ tuần tự và biểu đồ lớp.
1. Mô hình hóa chức năng và đặc tả Use Case
Nhóm nghiên cứu xây dựng kịch bản luồng sự kiện chính và luồng ngoại lệ cho các ca sử dụng nòng cốt:
- Ca sử dụng Tìm kiếm và Mua hàng (UC1-1): Mô tả quy trình khách hàng tìm kiếm sản phẩm, xem giỏ hàng, chọn sản phẩm cần mua, nhập địa chỉ nhận hàng, lựa chọn phương thức thanh toán và gửi đơn đặt hàng. Hệ thống xác nhận và tạo đơn hàng.
- Ca sử dụng Đánh giá sản phẩm (UC2-1): Cho phép khách hàng đã đăng nhập viết bình luận, chấm điểm sản phẩm hoặc tự xóa bình luận của mình. Quản trị viên có quyền phản hồi bình luận hoặc xóa các nội dung không phù hợp.
- Ca sử dụng Quản lý sản phẩm (UC3-1, UC03.2, UC03.3): Đặc tả các tác vụ thêm mới sản phẩm, cập nhật thông tin sản phẩm và xóa sản phẩm khỏi danh mục quản lý của cửa hàng.
- Ca sử dụng Quản lý đơn hàng (UC4-1): Người quản lý xem danh sách các đơn hàng phát sinh, xem chi tiết từng đơn, cập nhật trạng thái đơn hàng hoặc thực hiện hủy đơn theo yêu cầu.
- Ca sử dụng Quản lý danh mục (UC5-1): Thực hiện các tác vụ tạo mới danh mục, xem chi tiết danh sách sản phẩm thuộc danh mục, chỉnh sửa thông tin hoặc xóa danh mục sản phẩm.
- Ca sử dụng Quản lý giao hàng / Quản lý người dùng (UC6-1): Quản lý danh sách nhân sự, phân quyền tài khoản, xem bảng chấm công/ngày công của nhân viên giao hàng (Shipper).
2. Biểu đồ tuần tự (Sequence Diagram)
Báo cáo xây dựng hai cấp độ biểu đồ tuần tự cho từng chức năng chính:
- Biểu đồ tuần tự hệ thống (System Sequence Diagram): Mô tả luồng tương tác giữa tác nhân ngoài và ranh giới hệ thống (System Boundary).
- Biểu đồ tuần tự nghiệp vụ (Business Sequence Diagram): Mô tả tương tác sâu giữa các đối tượng giao diện (Boundary/View), đối tượng điều khiển (Controller) và đối tượng thực thể (Entity/Model) cho các hành vi: Thêm vào giỏ hàng, Xóa khỏi giỏ hàng, Đặt hàng, Thêm/Sửa/Xóa sản phẩm, Quản lý đơn hàng, Đánh giá sản phẩm, Thêm/Sửa/Xóa danh mục.
3. Biểu đồ lớp (Class Diagram)
Biểu đồ lớp tổng thể phản ánh cấu trúc hướng đối tượng của hệ thống, liên kết các lớp thực thể dữ liệu với các lớp xử lý nghiệp vụ và các lớp giao diện tương ứng.
Chương III. Thiết kế hệ thống
Chương III trình bày thiết kế kiến trúc kỹ thuật, mô hình hóa dữ liệu, kiến trúc phần mềm và thiết kế chi tiết giao diện người dùng.
Thiết kế và triển khai
1. Thiết kế cơ sở dữ liệu
Hệ thống sử dụng mô hình cơ sở dữ liệu quan hệ được chuẩn hóa từ biểu đồ thực thể liên kết (ERD) và lược đồ quan hệ. Cấu trúc gồm 9 bảng dữ liệu:
| Bảng |
Tên trường |
Kiểu dữ liệu |
Độ rộng |
Ràng buộc / Ghi chú |
| 1. Admin |
adminID username password name phone number address |
int varchar varchar varchar varchar varchar |
50 50 50 50 10 256 |
Khóa chính (PK), Not null, Unique Not null, Unique Not null Nullable Nullable Nullable |
| 2. Customer |
userID username password name phone number address email |
int varchar varchar varchar varchar varchar varchar |
50 50 50 50 10 256 256 |
Khóa chính (PK), Not null, Unique Not null Not null Not null Not null Not null Not null |
| 3. Shipper |
shipperID username password phone Date of birth |
int varchar varchar varchar Datetime |
50 50 50 10 - |
Khóa chính (PK), Not null, Unique Not null Not null Not null Not null |
| 4. Order |
OrderID customerID shipperID orderDate requiredDate createDate shipperDate status |
int int int Datetime Datetime Datetime Datetime varchar |
50 50 50 - - - - 50 |
Khóa chính (PK), Not null, Unique Khóa ngoại (FK), Not null Khóa ngoại (FK) Ngày đặt Ngày yêu cầu giao Ngày tạo đơn Ngày giao hàng Not null |
| 5. Order_items |
orderItemID orderID productID number totalPriceEach |
int int int int int |
50 50 50 50 50 |
Khóa chính (PK), Not null, Unique Khóa ngoại (FK), Not null Khóa ngoại (FK), Not null Số lượng sản phẩm, Not null Tổng giá cho từng món, Not null |
| 6. Payment |
paymentID paymentDate amount paymentMethod orderID |
int Datetime Float varchar int |
50 - - 50 50 |
Khóa chính (PK), Not null, Unique Ngày thanh toán Số tiền thanh toán Phương thức thanh toán, Not null Khóa ngoại (FK), Not null |
| 7. Product |
productID categoryID title vendor type price description numberInWare |
int int varchar varchar varchar Float Text int |
50 50 50 50 50 - - 50 |
Khóa chính (PK), Not null, Unique Khóa ngoại (FK), Not null Tên sản phẩm, Not null Nhà cung cấp, Not null Loại sản phẩm, Not null Đơn giá, Not null Mô tả sản phẩm, Not null Số lượng tồn kho, Not null |
| 8. Categories |
cartegoryID titleCate description parentID |
int varchar varchar int |
50 50 50 50 |
Khóa chính (PK), Not null, Unique Tên danh mục, Not null Mô tả danh mục, Not null Danh mục cha, Nullable |
| 9. Evaluation |
evaluationID customerID evaluationDate content productID reply |
int int Datetime Text int Text |
50 50 - - 50 - |
Khóa chính (PK), Not null, Unique Khóa ngoại (FK), Not null Thời gian đánh giá, Not null Nội dung đánh giá, Not null Khóa ngoại (FK), Not null Phản hồi từ người quản lý |
2. Thiết kế kiến trúc và mô hình MVC
- Biểu đồ thành phần (Component Diagram): Phân chia hệ thống thành các khối độc lập tương ứng với mô hình MVC, bao gồm các thành phần View (giao diện web tương tác), Controller (xử lý logic điều hướng và nghiệp vụ) và Model (quản lý kết nối cơ sở dữ liệu và ánh xạ dữ liệu).
- Biểu đồ triển khai (Deployment Diagram): Mô tả cấu hình phần cứng và môi trường mạng, thể hiện mối liên kết giữa máy khách (Client Browser), máy chủ ứng dụng (Web/App Server) và máy chủ cơ sở dữ liệu (Database Server).
3. Thiết kế điều hướng và giao diện người dùng
- Sơ đồ điều hướng IFML: Ứng dụng chuẩn Interaction Flow Modeling Language để thiết lập luồng chuyển trang và luồng sự kiện hành động cho cả 2 vai trò: Khách hàng (User) và Quản trị viên (Admin).
- Nguyên mẫu màn hình (Mockups/Wireframes):
- Phân hệ Khách hàng: Màn hình Trang chủ, Danh sách sản phẩm, Chi tiết sản phẩm, Xem giỏ hàng, Đăng nhập hệ thống, Đăng ký hệ thống, Thay đổi thông tin cá nhân, Theo dõi đơn hàng, Kiểm tra chi tiết đơn hàng / Hủy đơn.
- Phân hệ Quản trị viên: Màn hình Danh sách sản phẩm, Thêm mới / Cập nhật sản phẩm, Danh sách đơn hàng, Chi tiết đơn hàng, Danh sách người dùng trong hệ thống, Chi tiết thông tin người dùng.
Kết quả và đóng góp
Kết quả chính đạt được
- Hoàn thành bộ hồ sơ phân tích thiết kế hệ thống thương mại điện tử theo đúng phương pháp luận hướng đối tượng (OOAD) và chuẩn UML.
- Xây dựng đầy đủ từ điển dữ liệu với 9 bảng quan hệ chặt chẽ, hỗ trợ đầy đủ các tính năng lưu trữ thông tin tài khoản, hàng hóa, đơn hàng, thanh toán, vận chuyển và đánh giá.
- Thiết lập hệ thống sơ đồ điều hướng IFML và bản vẽ phác thảo giao diện trực quan cho cả 2 phân hệ người dùng và quản trị viên.
Đóng góp thực tiễn của nhóm
Đề tài cung cấp tài liệu mẫu về quy trình phân tích và thiết kế một hệ thống thương mại điện tử cơ bản. Toàn bộ các bước từ khảo sát yêu cầu, mô hình hóa ca sử dụng, phân tích luồng điều khiển, thiết kế kiến trúc MVC đến đặc tả cơ sở dữ liệu đều được thể hiện tuần tự, phù hợp cho việc học tập và thực hành phát triển phần mềm.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế tự nhận định
Theo phần tự đánh giá trong báo cáo, nhóm tác giả chỉ ra các điểm còn tồn tại:
- Thiết kế nguyên mẫu giao diện còn ở mức phác thảo đơn giản, tính thẩm mỹ chưa cao.
- Do các thành viên thực hiện các phần phân tích và thiết kế độc lập, đôi khi xuất hiện sự thiếu đồng nhất nhất định về mặt biểu diễn kiến thức và thuật ngữ giữa các mục trong báo cáo.
Hướng phát triển tiếp theo
- Hoàn thiện và khai thác thêm các chức năng mở rộng cho hệ thống bán hàng.
- Nâng cấp thiết kế giao diện theo hướng hiện đại, tăng tính thẩm mỹ và tối ưu hóa trải nghiệm người dùng (UI/UX).
- Hiện thực hóa thiết kế bằng mã nguồn thực tế và kiểm thử tích hợp trên môi trường vận hành cụ thể.
Giá trị tham khảo
Báo cáo bài tập lớn này có giá trị tham khảo thiết thực cho:
- Sinh viên ngành Công nghệ thông tin và Kỹ thuật phần mềm: Dùng làm tài liệu tham khảo mẫu về phương pháp làm bài tập lớn, đồ án môn học Phân tích thiết kế hệ thống, nắm vững cách vẽ và giải thích biểu đồ UML (Use Case, Activity, Sequence, Class, Component, Deployment) và IFML.
- Nhóm phát triển phần mềm quản lý bán hàng: Tham khảo cấu trúc cơ sở dữ liệu 9 bảng chuẩn hóa để thiết lập cơ sở dữ liệu quan hệ cho các website thương mại điện tử quy mô vừa và nhỏ.
Câu hỏi thường gặp
1. Hệ thống bán hàng trực tuyến trong tài liệu phục vụ những nhóm tác nhân nào?
Hệ thống xác định 3 tác nhân tham gia vào hoạt động vận hành: Khách hàng (Customer), Người quản lý (Admin) và Hệ thống (System). Ngoài ra, trong mô hình dữ liệu có sự tham gia của đối tượng Shipper (Người giao hàng) để phục vụ quản lý vận chuyển.
2. Cơ sở dữ liệu của hệ thống gồm những bảng dữ liệu nào?
Cơ sở dữ liệu gồm 9 bảng quan hệ: Admin (quản trị viên), Customer (khách hàng), Shipper (nhân viên giao hàng), Order (đơn đặt hàng), Order_items (chi tiết đơn hàng), Payment (thanh toán), Product (sản phẩm), Categories (danh mục) và Evaluation (đánh giá, bình luận).
3. Nhóm tác giả sử dụng ngôn ngữ mô hình hóa nào để biểu diễn sơ đồ điều hướng giao diện?
Nhóm tác giả sử dụng chuẩn IFML (Interaction Flow Modeling Language) để thiết kế sơ đồ dòng điều hướng giao diện cho cả phân hệ người dùng (User) và quản trị viên (Admin).
4. Các biểu đồ tuần tự trong báo cáo được xây dựng ở những cấp độ nào?
Các biểu đồ tuần tự được xây dựng ở 2 cấp độ: Biểu đồ tuần tự hệ thống (System Sequence Diagram - mô tả tương tác giữa tác nhân và ranh giới hệ thống) và Biểu đồ tuần tự nghiệp vụ (Business Sequence Diagram - mô tả tương tác chi tiết giữa các thành phần Boundary, Controller và Entity).
5. Những hạn chế chính mà nhóm tác giả tự nhận định trong bản báo cáo là gì?
Nhóm tác giả tự nhận thấy thiết kế giao diện còn đơn giản, tính thẩm mỹ chưa cao; đồng thời do quá trình phân công làm việc độc lập nên giữa các phần phân tích - thiết kế đôi khi chưa đạt được sự đồng nhất hoàn toàn về mặt kiến thức và cách trình bày.
Kết luận
Báo cáo bài tập lớn "Phân tích và thiết kế hệ thống bán hàng trực tuyến" của nhóm sinh viên Trường Đại học Bách Khoa Hà Nội là một tài liệu kỹ thuật mô tả đầy đủ các bước chuẩn hóa trong quy trình phát triển phần mềm hướng đối tượng. Đề tài đã hoàn thành việc mô hình hóa các yêu cầu chức năng, thiết kế chi tiết 9 bảng cơ sở dữ liệu quan hệ, phân rã kiến trúc hệ thống theo mô hình MVC và xây dựng sơ đồ điều hướng IFML cùng nguyên mẫu giao diện. Mặc dù vẫn còn một số điểm hạn chế về tính đồng nhất và độ hoàn thiện giao diện, tài liệu phản ánh chính xác nội dung học phần và cung cấp khung tham chiếu rõ ràng cho các bài toán phân tích thiết kế phần mềm thương mại điện tử tương tự.