Bối cảnh và vấn đề nghiên cứu

Trong bối cảnh kinh tế và thương mại tại khu vực Thành phố Hồ Chí Minh, hoạt động kinh doanh bán lẻ thiết bị di động đang đối mặt với sự cạnh tranh gay gắt. Các chủ cửa hàng phải xử lý đồng thời nhiều khâu phức tạp như tìm kiếm nguồn hàng chất lượng, quản lý vận chuyển, tiếp cận khách hàng, quảng bá thương hiệu, kiểm soát thu chi và tính toán chi phí nhằm bảo đảm khả năng tái đầu tư. Cùng với sự phát triển của mức sống đô thị, nhu cầu mua sắm trực tuyến nhanh chóng, thuận tiện của người tiêu dùng ngày càng gia tăng. Trong khi đó, các hệ thống kinh doanh truyền thống hoặc các giải pháp phần mềm cũ còn tồn tại nhiều nhược điểm, điển hình là giao diện chưa trực quan, khó thao tác và quy trình xử lý đơn hàng chưa được tự động hóa.

Xuất phát từ thực tế trên, đề tài "Phân tích thiết kế hệ thống bán điện thoại online" (được thể hiện trong báo cáo với tên gọi đồ án "Xây dựng ứng dụng giới thiệu cửa hàng bán thiết bị di động") được nhóm sinh viên ngành Công nghệ Thông tin tại Trường Đại học Ngoại ngữ - Tin học Thành phố Hồ Chí Minh (HUFLIT) thực hiện nhằm giải quyết bài toán tự động hóa quy trình bán hàng và quản lý thông tin sản phẩm.

Mục tiêu và nhiệm vụ nghiên cứu của đề tài được xác định cụ thể như sau:

  1. Mục tiêu tổng quát: Xây dựng ứng dụng giới thiệu và hỗ trợ bán thiết bị di động trực tuyến cho cửa hàng với độ chính xác, tính tự động và tính bảo mật cao.
  2. Mục tiêu cụ thể:
    • Phát triển hệ thống phần mềm hỗ trợ người dùng lựa chọn, tìm kiếm và mua sản phẩm thiết bị di động.
    • Xây dựng module thanh toán chi phí đơn hàng trực tuyến và quản lý hóa đơn.
    • Xây dựng module thu thập, cập nhật và lưu trữ thông tin khách hàng.
    • Thiết lập phân hệ quản trị dành cho nhân viên và quản lý cửa hàng để theo dõi đơn hàng, quản lý danh mục và phản hồi người mua.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Khách hàng có nhu cầu tiếp cận và mua thiết bị di động trực tuyến.
  • Khách thể nghiên cứu: Người dùng khách sắm hàng và các bộ phận vận hành hệ thống (quản lý, nhân viên bán hàng, thu ngân, nhân viên giao hàng).
  • Phạm vi không gian: Áp dụng trong phạm vi địa bàn Thành phố Hồ Chí Minh.
  • Phạm vi thời gian: Giờ hành chính theo quy định vận hành của cửa hàng.

Cơ sở lý thuyết và phương pháp

Đề tài áp dụng các nền tảng lý thuyết và công cụ kỹ thuật tiêu chuẩn trong ngành kỹ nghệ phần mềm để phục vụ quá trình khảo sát, mô hình hóa và xây dựng hệ thống:

  1. Quy trình phát triển phần mềm: Đồ án tuân theo quy trình vòng đời phát triển phần mềm gồm 4 giai đoạn cơ bản:

    • Đặc tả phần mềm: Xác định các dịch vụ, chức năng và ràng buộc của hệ thống để lập tài liệu đặc tả yêu cầu.
    • Thiết kế và thực thi phần mềm: Chuyển đổi bản đặc tả thành cấu trúc phần mềm, mô hình dữ liệu, giao diện và mã nguồn thực thi.
    • Kiểm thử phần mềm: Vận hành chương trình bằng các ca kiểm thử (test cases) để phát hiện và xử lý lỗi.
    • Cài đặt và bảo trì: Triển khai ứng dụng cho người dùng cuối và hiệu chỉnh các phát sinh trong quá trình vận hành thực tế.
  2. Phương pháp phân tích thiết kế hướng đối tượng (OOAD) và UML:

    • Sử 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) nhằm phân rã hệ thống thành các đối tượng tương tác.
    • Sử dụng Ngôn ngữ Mô hình hóa Thống nhất (Unified Modeling Language - UML) để trực quan hóa kiến trúc theo mô hình 4+1 View (Use Case View, Logical View, Process View, Component View và Deployment View).
    • Xây dựng hệ thống bản vẽ chi tiết gồm: Biểu đồ ca sử dụng (Use Case Diagram), Biểu đồ lớp (Class Diagram), Biểu đồ đối tượng (Object Diagram), Biểu đồ tuần tự (Sequence Diagram), Biểu đồ cộng tác (Collaboration Diagram), Biểu đồ trạng thái (State Diagram), Biểu đồ hoạt động (Activity Diagram), Biểu đồ thành phần (Component Diagram) và Biểu đồ triển khai (Deployment Diagram).
  3. Hệ quản trị cơ sở dữ liệu nhúng SQLite:

    • SQLite đóng vai trò là một SQL Database Engine dạng thư viện phần mềm, khép kín, không cần máy chủ độc lập (serverless), cấu hình tĩnh/động trực tiếp vào tệp lưu trữ và hỗ trợ chuẩn SQL92.
    • Hệ quản trị đáp ứng đầy đủ 4 thuộc tính ACID (Atomic - Tính nguyên tố, Consistent - Tính nhất quán, Isolated - Tính cô lập, Durable - Tính bền vững), sử dụng cơ chế khóa phân vùng (coarse-grained locking) để tối ưu truy xuất trên bộ nhớ cục bộ nhỏ gọn dưới 500 KB.
    • Sử dụng các nhóm lệnh SQL tiêu chuẩn gồm: DDL (CREATE, ALTER, DROP), DML (INSERT, UPDATE, DELETE) và DQL (SELECT).
  4. Kỹ thuật xử lý giao diện và đồ họa Android:

    • Khung đồ họa Drawable trong Android: Ứng dụng các đối tượng đồ họa như BitmapDrawable, ColorDrawable, GradientDrawable, ShapeDrawable, RippleDrawable, VectorDrawable, AnimatedDrawable, StateListDrawable và Paths Drawables.
    • Cơ chế hoạt họa Animation: Sử dụng Drawable Animation thông qua lớp AnimationDrawable, Property Animation và Tweening Animation với các phép biến đổi ma trận (Scale - co giãn, Rotate - xoay quanh điểm chốt, Translate - tịnh tiến, Alpha - độ trong suốt).

Thiết kế và triển khai

Hệ thống được thiết kế hoàn chỉnh từ khâu định nghĩa ca sử dụng, lập biểu đồ tương tác tuần tự, chuyển đổi lược đồ thực thể sang mô hình cơ sở dữ liệu quan hệ và theo dõi chu kỳ phát triển.

Danh mục ca sử dụng (Use Cases) của hệ thống

Hệ thống xác định 15 ca sử dụng chính, phân định rõ ràng giữa phân hệ người dùng (Khách hàng) và phân hệ quản trị (Quản lý, Nhân viên, Thu ngân, Giao hàng):

Mã Use Case Tên Use Case Tác nhân chính (Actor) Mô tả chức năng
UC01 Đăng nhập / Đăng ký KhachHang Người dùng truy cập tài khoản hoặc đăng ký thông tin cá nhân mới
UC02 Tìm sản phẩm KhachHang Tìm kiếm sản phẩm thiết bị di động có sẵn trên hệ thống
UC03 Thêm vào giỏ hàng KhachHang Chọn và lưu trữ các sản phẩm mong muốn vào giỏ hàng
UC04 Đặt hàng KhachHang Xác nhận đơn hàng và tạo hóa đơn thanh toán
UC05 Hủy đơn hàng KhachHang Hủy bỏ đơn hàng khi đơn hàng đang ở trạng thái chưa chuyển giao
UC06 Đánh giá KhachHang Gửi ý kiến phản hồi về các sản phẩm đã hoàn tất mua
UC07 Xem giỏ hàng KhachHang Kiểm tra thông tin danh sách sản phẩm hiện có trong giỏ hàng
UC08 Thanh toán KhachHang Thực hiện chi trả đơn hàng qua hình thức tiền mặt hoặc ngân hàng
UC09 Xuất hóa đơn ThuNgan Xuất chứng từ hóa đơn sau khi đơn hàng được duyệt
UC10 Đóng gói hàng NhanVien Xử lý đóng gói thiết bị sau khi tiếp nhận đơn hàng
UC11 Đăng sản phẩm QuanLy Đăng tải thông tin và hình ảnh sản phẩm mới lên website/ứng dụng
UC12 Hỗ trợ đơn hàng QuanLy Phản hồi và trợ giúp giải quyết các yêu cầu đơn hàng từ người mua
UC13 Hiển thị phản hồi QuanLy Xem danh sách các đánh giá, phản hồi của người mua đối với sản phẩm
UC14 Thông tin khách hàng QuanLy Truy xuất và xem dữ liệu chi tiết của khách hàng trên hệ thống
UC15 Giao hàng NguoiGiaoHang Cập nhật và theo dõi trạng thái vận chuyển đơn hàng

Lược đồ cơ sở dữ liệu quan hệ (ERD)

Cơ sở dữ liệu được xây dựng phục vụ cho ứng dụng gồm các bảng dữ liệu sau:

Bảng dữ liệu Khóa chính (PK) Các trường thuộc tính chính Mô tả mục đích
KHACHHANG MaKH (Varchar(6)) TenKH (String), SDT (Char(10)), DiaChi (Text) Lưu trữ thông tin cá nhân khách hàng
SANPHAM MaSP (Varchar(10)) TenSP (String), GiaSP (Char), NgayDangSP (DateTime) Quản lý danh mục thiết bị di động
NHANVIEN MaNV (Varchar(6)) TenNV (String), ChucVu (Text) Phân quyền nhân sự nội bộ cửa hàng
GIAOHANG MaVanDon (Varchar(10)) MaDH, MaKH, MaSP, NgayGiao (Date) Điều phối và giám sát lộ trình vận đơn
DANGNHAP ID (Varchar(20)) MatKhau (Char(20)) Xác thực định danh tài khoản người dùng
DANGKY Email (Text), SDT (Number(10)) DiaChi (Text) Tiếp nhận hồ sơ đăng ký tài khoản mới
HOADON MaHD (Char(10)) TongGiaSP (VarChar) Lưu trữ thông tin giá trị thanh toán
THUNGAN MaTN (Char(10)) TenTN (Text) Định danh nhân viên thu ngân lập hóa đơn
DONHANG ID / MaDH (NVarChar) TenKH, SDT, DiaChi, Email Quản lý thông tin đơn hàng tổng quát
CHITIETDONHANG ID (Int) MaDonHang, TenSP, HinhAnhSP, MoTa Chi tiết từng mặt hàng trong đơn hàng

Lịch sử theo dõi phiên bản và kiểm thử (Changelog)

Nhóm phát triển đã thực hiện chuỗi cập nhật và kiểm thử các tính năng từ giai đoạn Alpha đến hoàn thiện:

Ngày cập nhật Phân hệ / Phần tử Thao tác (*) Nội dung thay đổi và lý do kỹ thuật Phiên bản
03/02/2023 Hệ thống chung A Khởi tạo phiên bản thử nghiệm Alpha đầu tiên 1.0 (Alpha)
03/03/2023 QuanLy A Bổ sung tính năng quản trị thông tin 1.1
05/03/2023 QuanLy A Tích hợp module nhắn tin (chat) với người dùng 1.2
05/03/2023 QuanLy M Hiệu chỉnh lỗi hiển thị phối màu không đồng đều 1.1
09/04/2023 NhanSanPham D Gỡ bỏ tính năng do khó triển khai theo cấp số nhân khi đặt số lượng lớn 1.2
09/04/2023 DanhGia M Sửa lỗi hệ thống không ghi nhận thông tin đánh giá 1.3
15/04/2023 Giao diện M Cập nhật và làm mới giao diện người dùng 1.0
16/04/2023 DoiTienTe A Thử nghiệm tính năng quy đổi tỷ giá tiền tệ quốc tế 1.1 (Beta)
20/04/2023 DoiTienTe D Loại bỏ tính năng do người dùng không hài lòng về trải nghiệm 1.1
30/04/2023 UuDaiVoucher A Bổ sung tính năng áp dụng mã giảm giá voucher vào đơn hàng 1.1
02/05/2023 UuDaiVoucher D Xóa module khuyến mãi sau khi kết thúc đợt sự kiện 1.2
05/05/2023 DangNhap, DangKy M Tối ưu hóa lại giao diện đăng ký và đăng nhập 1.0
09/05/2023 QuenMatKhau M Xử lý lỗi bảo mật gửi mã xác nhận đến địa chỉ email ảo 1.0

Ghi chú: A (Added - Thêm mới), M (Modified - Chỉnh sửa), D (Deleted - Gỡ bỏ).


Nội dung chính theo từng chương

Chương 1: Tổng quan về đề tài

Chương 1 trình bày lý do chọn đề tài, phân tích tầm quan trọng của việc xây dựng kênh bán hàng trực tuyến cho cửa hàng bán thiết bị di động tại Thành phố Hồ Chí Minh. Tác giả chỉ ra các rào cản của mô hình quản lý thủ công, nêu rõ mục tiêu tổng quát, mục tiêu cụ thể, đối tượng và phạm vi nghiên cứu (giới hạn thời gian giờ hành chính và không gian tại TP.HCM). Chương này cũng khái quát các yêu cầu nghiệp vụ: phân quyền người dùng qua email, quản lý 7 trạng thái đơn hàng (đặt hàng thành công, đang duyệt, đã duyệt, đang giao, đã giao, hoàn tất, đã hủy), cơ chế gửi đánh giá phản hồi, khảo sát ý kiến và phân hạng khách hàng thân thiết theo 4 bậc (Kim Cương, Vàng, Bạc, Đồng).

Chương 2: Cơ sở lý thuyết

Nội dung chương 2 tập trung hệ thống hóa cơ sở lý luận về kỹ nghệ phần mềm. Tác giả trình bày chi tiết 4 giai đoạn của vòng đời phần mềm; phương pháp phân tích thiết kế hướng đối tượng (OOAD); cách tiếp cận kiến trúc đa góc nhìn 4+1 View bằng UML cùng hệ thống các ký hiệu chuẩn. Chương này cung cấp kiến thức nền tảng về hệ quản trị cơ sở dữ liệu SQLite (nguyên lý không máy chủ, tuân thủ ACID, phân loại ngôn ngữ DDL, DML, DQL) và cơ chế xây dựng giao diện trên nền tảng Android sử dụng tài nguyên Drawable và các lớp điều khiển hoạt họa Animation (Tweening, Property, Drawable Animation).

Chương 3: Phân tích và thiết kế hệ thống

Chương 3 là phần trọng tâm kỹ thuật của đồ án. Nhóm tác giả thực hiện phân tích 15 ca sử dụng chi tiết, phân chia rõ ràng các luồng sự kiện chính (Main events) và luồng sự kiện nhánh/ngoại lệ (Side events) cho từng chức năng như đăng nhập, tìm kiếm, đặt hàng, hủy đơn, đánh giá và quản lý đơn hàng. Chương này xây dựng hệ thống 6 yêu cầu phi chức năng (giao diện, tốc độ, bảo mật, tính riêng tư, khả năng mở rộng và phục hồi dữ liệu), biểu đồ lớp thực thể, biểu đồ tương tác tuần tự (Sequence Diagram), biểu đồ chuyển trạng thái (State Diagram) cho các đối tượng nghiệp vụ, cùng hệ thống bảng dữ liệu chi tiết cho cơ sở dữ liệu SQLite.

Chương 4: Triển khai ứng dụng

Chương 4 mô tả quá trình hiện thực hóa các chức năng phần mềm đã được thiết kế, bao gồm: chức năng xem sản phẩm theo danh mục, chọn và xem chi tiết sản phẩm, chức năng thanh toán, lưu thông tin khách hàng và chức năng liên hệ. Đồng thời, chương này tổng kết quy trình kiểm thử hệ thống qua các bảng kiểm thử mua hàng, thanh toán và lưu dữ liệu, đi kèm các bước đóng gói và chuẩn bị triển khai ứng dụng trên môi trường thực tế.


Kết quả và đóng góp

Kết quả chính đạt được

  • Hoàn thiện tài liệu phân tích thiết kế: Xây dựng đầy đủ hệ thống biểu đồ UML (Use Case, Class, Sequence, State, Activity) cùng lược đồ thực thể quan hệ ERD cho bài toán quản lý cửa hàng thiết bị di động.
  • Hiện thực hóa các phân hệ chức năng: Triển khai các module cốt lõi cho phép khách hàng tra cứu sản phẩm, tạo giỏ hàng, thanh toán, quản lý thông tin cá nhân và cho phép ban quản trị theo dõi đơn hàng, cập nhật danh mục sản phẩm.
  • Kiểm thử và đánh giá lỗi: Xây dựng bảng kiểm thử chi tiết cho các ca nghiệp vụ chính (Bảng 1.29 kiểm thử mua hàng, Bảng 1.30 kiểm thử thanh toán, Bảng 1.31 kiểm thử lưu thông tin khách hàng), qua đó phát hiện và khắc phục các lỗi về giao diện, email ảo và đồng bộ dữ liệu giỏ hàng.
  • Tổng hợp tiến độ và đóng góp của nhóm thực hiện:
STT Thành viên thực hiện Nhiệm vụ chính được phân công Tỉ lệ hoàn thành
1 Nguyễn Hồ Gia Bảo (Trưởng nhóm) Tạo lược đồ Use Case, xác định thuộc tính lớp, vẽ sơ đồ lớp, chỉnh sửa và hỗ trợ báo cáo 23,30%
2 Nguyễn Thị Kim Yến Xác định actors/use cases, thiết kế lược đồ ERD, phân tích quan hệ thực thể 23,20%
3 Trần Tú Quyên Xây dựng Activity Diagram, vẽ biểu đồ tuần tự (Sequence Diagram), vẽ sơ đồ lớp 21,40%
4 Lê Trần Phúc Khang Viết phần giới thiệu PTTKPM, nghiên cứu cơ sở lý thuyết ER Diagram, tổng hợp báo cáo 19,60%
5 Ngô Xuân Thông Đặc tả use case, vẽ biểu đồ trạng thái (State Diagram) 12,50%
Tổng cộng 100,00%

Đóng góp thực tiễn của đề tài

  • Cung cấp một mô hình phân tích thiết kế phần mềm bài bản, mạch lạc cho mô hình bán lẻ thiết bị di động quy mô vừa và nhỏ.
  • Đơn giản hóa quy trình giao dịch cho khách hàng và hỗ trợ cửa hàng quản trị thông tin đơn hàng, phân loại khách hàng một cách có hệ thống.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế được ghi nhận

  • Một số chức năng trong hệ thống chưa được tối ưu hóa hoàn toàn về mặt xử lý thuật toán.
  • Báo cáo phân tích và thiết kế ở một số phần còn lủng củng, trình bày chưa thật sự đồng nhất và rõ ràng.
  • Giao diện người dùng (UI) còn ở mức cơ bản, tính thẩm mỹ chưa cao.
  • Cơ sở dữ liệu SQLite mang tính chất cục bộ, khả năng phục vụ đồng thời nhiều người dùng qua môi trường mạng phân tán còn hạn chế.

Hướng phát triển tiếp theo

  • Tiếp tục tối ưu hóa mã nguồn và cấu trúc phần mềm nhằm đảm bảo khả năng tương thích trên nhiều dòng thiết bị phần cứng khác nhau.
  • Tập trung nâng cao tốc độ xử lý của hệ thống để gia tăng trải nghiệm người dùng cuối.
  • Nâng cấp tính năng an toàn bảo mật thông tin dữ liệu.
  • Thiết kế lại hệ thống cơ sở dữ liệu trên nền tảng mạng (client - server hoặc cơ sở dữ liệu phân tán) nhằm phục vụ kết nối trực tuyến đồng thời cho lượng lớn người dùng.

Giá trị tham khảo

Báo cáo đồ án môn học này là tài liệu tham khảo hữu ích dành cho:

  • Sinh viên ngành Công nghệ Thông tin, Kỹ thuật Phần mềm: Tham khảo cấu trúc một bài tập lớn hoặc đồ án môn học Phân tích Thiết kế Phần mềm theo phương pháp hướng đối tượng (OOAD).
  • Người học cần tài liệu mẫu về UML: Cung cấp cách thức trình bày bảng đặc tả Use Case chi tiết (gồm Trigger, Pre-condition, Post-condition, Error Situation, Main events, Side events), cách vẽ biểu đồ tuần tự và biểu đồ chuyển trạng thái.
  • Lập trình viên ứng dụng di động cơ bản: Cung cấp tài liệu tổng quan về việc ứng dụng SQLite, Drawable và Animation trên hệ điều hành Android.

Câu hỏi thường gặp

1. Hệ thống quản lý tài khoản người dùng và đơn hàng dựa trên tiêu chí nào?

Hệ thống quản lý từng người dùng (User) thông qua địa chỉ email cá nhân. Người dùng được phép cập nhật thông tin địa chỉ hoặc số điện thoại nhưng không được phép thay đổi địa chỉ email. Về đơn hàng, hệ thống quản lý qua 7 trạng thái liên tục: Đặt hàng thành công, Đang duyệt, Đã duyệt, Đang giao, Đã giao, Hoàn tất và Đã hủy.

2. Tiêu chí phân loại khách hàng trong hệ thống được thiết kế như thế nào?

Theo đặc tả trong Chương 1, hệ thống cung cấp tính năng phân loại khách hàng dựa trên mức chi tiêu thực tế thành 4 cấp bậc: Khách hàng Kim Cương, Khách hàng Vàng, Khách hàng Bạc và Khách hàng Đồng nhằm hỗ trợ áp dụng các chương trình ưu đãi, giảm giá tương ứng.

3. Những hạn chế kỹ thuật nào của SQLite được nêu rõ trong cơ sở lý thuyết của đồ án?

Đồ án chỉ ra rằng SQLite sử dụng cơ chế khóa phân vùng (coarse-grained locking), dẫn đến việc tại cùng một thời điểm có thể hỗ trợ nhiều người đọc nhưng chỉ cho phép duy nhất một người ghi dữ liệu. Do đó, SQLite không phải là lựa chọn phù hợp để đáp ứng nhu cầu xử lý dữ liệu phát sinh liên tục với khối lượng lớn.

4. Vì sao tính năng "Nhận sản phẩm" (NhanSanPham) và "Đổi tiền tệ" (DoiTienTe) bị gỡ bỏ trong quá trình phát triển?

Theo bảng lưu trữ thay đổi (Changelog):

  • Tính năng NhanSanPham bị xóa vào ngày 09/04/2023 (phiên bản 1.2) do nhóm nhận thấy khó triển khai sản phẩm theo cấp số nhân khi người dùng đặt hàng số lượng lớn.
  • Tính năng DoiTienTe bị xóa vào ngày 20/04/2023 sau giai đoạn thử nghiệm Beta vì người dùng phản hồi không hài lòng về tính năng này.

Kết luận

Đồ án "Phân tích thiết kế hệ thống bán điện thoại online" do nhóm sinh viên Khoa Công nghệ Thông tin - Trường Đại học Ngoại ngữ - Tin học TP.HCM thực hiện đã hoàn thành các mục tiêu đề ra về mặt lý thuyết và mô hình hóa hệ thống. Đề tài đã vận dụng đầy đủ quy trình kỹ nghệ phần mềm, phương pháp hướng đối tượng OOAD, ngôn ngữ UML và cơ sở dữ liệu SQLite để xây dựng các bản vẽ thiết kế cùng các chức năng nghiệp vụ bán hàng cốt lõi. Mặc dù vẫn còn những hạn chế nhất định về tính tối ưu thuật toán và giao diện, đồ án đã phản ánh rõ nét tiến trình thực hiện nghiêm túc và cung cấp tài liệu mẫu có giá trị tham khảo cho môn học Phân tích thiết kế phần mềm.