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

Trong bối cảnh công nghệ thông tin phát triển mạnh mẽ và thâm nhập sâu rộng vào mọi lĩnh vực của đời sống kinh tế - xã hội, việc ứng dụng các giải pháp phần mềm vào hoạt động kinh doanh đã trở thành yếu tố quyết định giúp doanh nghiệp tối ưu hóa chi phí và thời gian vận hành. Một phần mềm quản lý bán hàng và hàng hóa hiệu quả đóng vai trò thiết yếu trong việc hỗ trợ doanh nghiệp kiểm soát hàng hóa, quản lý giao dịch và theo dõi doanh thu một cách kịp thời, chính xác.

Đề tài "Thiết kế phần mềm quản lý bán hàng, hàng hóa" được nhóm sinh viên thuộc Khoa An toàn thông tin, Học viện Kỹ thuật Mật mã (gồm Nguyễn Hoàng Hiệp, Nguyễn Đình Hiệp, Nguyễn Văn Lĩnh; dưới sự hướng dẫn của thầy Lê Bá Cường, hoàn thành vào tháng 12/2021) lựa chọn nghiên cứu nhằm giải quyết các bất cập thực tế trong quản lý kinh doanh tại các cửa hàng tổng hợp.

Thực trạng tại nhiều cửa hàng hiện nay cho thấy khâu quản lý vẫn được thực hiện theo phương thức thủ công bằng sổ sách và giấy tờ, dẫn đến nhiều hạn chế nghiêm trọng:

  • Tốc độ cập nhật và xử lý dữ liệu chậm, không đáp ứng kịp thời nhu cầu tổng hợp báo cáo nhanh chóng, chuẩn xác cho chủ cửa hàng.
  • Thiếu sự đồng bộ trong quy trình cập nhật dữ liệu, gây ra những sai sót và nhầm lẫn không đáng có.
  • Hoạt động quản trị chịu ảnh hưởng lớn bởi các yếu tố chủ quan và tác động từ môi trường bên ngoài.
  • Công tác lưu trữ thông tin gặp nhiều khó khăn, tiềm ẩn nguy cơ lộ lọt hoặc nhầm lẫn dữ liệu khách hàng.
  • Việc sử dụng sổ sách giấy tờ gây lãng phí lớn về mặt chi phí và tài nguyên lưu trữ.
  • Khả năng mở rộng hạn chế; khi quy mô kinh doanh gia tăng, mô hình quản lý thủ công không thể đáp ứng được khối lượng công việc phát sinh.
  • Hàng hóa bán ra chưa được kiểm soát chặt chẽ cả về số lượng thực tế lẫn dòng tiền, gây khó khăn cho việc xác định doanh thu và lợi nhuận, về lâu dài dẫn đến nguy cơ thất thoát và thua lỗ.

Trước các vấn đề trên, đề tài xác định 3 mục tiêu cụ thể:

  1. Thiết kế và xây dựng phần mềm quản lý bán hàng, hàng hóa dễ sử dụng, dễ chỉnh sửa nhằm hỗ trợ cửa hàng kinh doanh hiệu quả.
  2. Vận dụng toàn diện các kiến thức chuyên môn trong học phần "Phát triển phần mềm ứng dụng" vào việc giải quyết bài toán thực tế.
  3. Tìm hiểu, tiếp thu các kiến thức công nghệ mới để mở rộng và nâng cao năng lực chuyên môn của các thành viên trong nhóm.

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

  • Đối tượng nghiên cứu: Quy trình nghiệp vụ quản lý bán hàng, kiểm soát xuất - nhập - tồn hàng hóa, quản lý khách hàng, nhà cung cấp và doanh thu tại một cửa hàng tổng hợp.
  • Phạm vi người dùng và các bên liên quan:
    • Administrator (Quản trị viên hệ thống): Người có toàn quyền quản trị, điều khiển phần mềm, thực hiện các thao tác thêm, sửa, xóa và truy vấn trên toàn bộ các phân hệ chức năng.
    • Khách hàng: Đối tượng lưu trữ thông tin giao dịch nhằm phục vụ công tác chăm sóc, tư vấn và triển khai các chương trình tri ân, khuyến mãi cho khách hàng thân thiết.
    • Nhà cung cấp: Nguồn cung ứng sản phẩm, cần được quản lý dữ liệu chi tiết để phục vụ công tác liên lạc, đàm phán giá cả và lập kế hoạch nhập hàng thuận tiện.
  • Thời gian và địa điểm thực hiện: Tháng 12 năm 2021 tại Hà Nội.

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

Đề tài áp dụng phương pháp luận phân tích và thiết kế hệ thống hướng đối tượng thông qua ngôn ngữ mô hình hóa thống nhất (UML - Unified Modeling Language) và kiến trúc hướng mô hình (Model Driven Architecture - MDA). Cách tiếp cận này giúp trừu tượng hóa toàn bộ nghiệp vụ quản lý thực tế thành các mô hình trực quan, độc lập với nền tảng lập trình ban đầu.

Phương pháp nghiên cứu và công cụ sử dụng

  1. Phương pháp mô hình hóa UML với StarUML: Nhóm tác giả sử dụng phần mềm StarUML để xây dựng hệ thống biểu đồ ca sử dụng (Use Case Diagrams), phân rã ca sử dụng chi tiết và biểu đồ tuần tự (Sequence Diagrams). Việc mô hình hóa bằng StarUML giúp tối ưu hóa năng suất, nâng cao chất lượng phần mềm, đảm bảo các luồng nghiệp vụ được thiết kế logic, tường minh và dễ hiểu.
  2. Phương pháp mô hình hóa dữ liệu quan hệ (E-R Model): Phân tích các thực thể thực tế trong bài toán bán hàng (khách hàng, sản phẩm, hóa đơn, nhà cung cấp, phiếu nhập) để thiết lập mô hình thực thể quan hệ (E-R), từ đó chuẩn hóa thành lược đồ cơ sở dữ liệu quan hệ hoàn chỉnh.
  3. Môi trường phát triển tích hợp NetBeans IDE: NetBeans IDE được lựa chọn làm công cụ viết mã nguồn và triển khai hệ thống nhờ tính năng mã nguồn mở, hỗ trợ mạnh mẽ cho lập trình Java cùng nhiều ngôn ngữ khác, hoạt động ổn định trên nhiều hệ điều hành (Windows, Linux, macOS).

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

Chương 1. Phân tích yêu cầu hệ thống

Chương 1 tập trung khảo sát tổng quan bài toán quản lý tại cửa hàng tổng hợp, nhận diện các vấn đề của phương pháp thủ công và đề xuất yêu cầu xây dựng hệ thống phần mềm mới.

Hệ thống yêu cầu đáp ứng đầy đủ hai nhóm tiêu chí:

  • Yêu cầu chức năng:
    • Quản lý hàng hóa: Bao gồm phân hệ "Quản lý sản phẩm" (kiểm soát thông tin, cập nhật, tìm kiếm, thêm, sửa, xóa sản phẩm, cảnh báo hàng sắp hết hoặc tồn kho lâu ngày, đính kèm chứng từ) và "Quản lý phiếu nhập hàng" (lập phiếu nhập, tìm kiếm, sửa, xóa thông tin nhập kho).
    • Quản lý hóa đơn: Quản lý toàn diện hoạt động bán hàng thông qua việc lập hóa đơn mới, tìm kiếm, sửa đổi và xóa hóa đơn.
    • Thống kê báo cáo: Lập báo cáo hoạt động bán hàng, báo cáo doanh thu chi tiết theo ngày, tuần, tháng và phân tích số liệu kinh doanh.
    • Quản lý khách hàng: Lưu trữ thông tin cá nhân và lịch sử mua sắm để phân loại khách hàng mới, khách hàng quen, hỗ trợ tạo đơn hàng nhanh và chăm sóc khách hàng.
    • Quản lý nhà cung cấp: Lưu trữ danh mục nhà cung ứng nhằm chủ động trong khâu nhập hàng và tối ưu giá vốn.
  • Yêu cầu phi chức năng:
    • Phân quyền chặt chẽ: Thiết lập cơ chế kiểm soát truy cập và thao tác dữ liệu theo đúng vai trò người dùng (quản trị viên/chủ cửa hàng).
    • Tính bảo mật: Đảm bảo an toàn cho dữ liệu giao dịch và thông tin kinh doanh của cửa hàng.
    • Giao diện người dùng thân thiện, tiện ích: Màn hình được thiết kế đơn giản, tối ưu hóa công tác nhập liệu, hỗ trợ tùy biến các nghiệp vụ thường xuyên thao tác.
    • Tính kế thừa và khả năng mở rộng: Các phân hệ có tính kế thừa cao, xử lý tự động và dễ dàng liên kết với các hệ thống phần mềm khác khi quy mô cửa hàng mở rộng.

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

Chương 2 là phần trọng tâm của tài liệu, trình bày chi tiết các mô hình phân tích thiết kế:

  • Xây dựng biểu đồ ca sử dụng mức tổng quát và biểu đồ ca sử dụng phân rã cho từng phân hệ (Hàng hóa, Hóa đơn, Thống kê báo cáo, Khách hàng, Nhà cung cấp).
  • Chi tiết hóa 27 bảng đặc tả ca sử dụng bao gồm: Tác nhân, Mô tả vắn tắt, Điều kiện tiên quyết (Pre-conditions), Luồng sự kiện chính (Basic Flows), Luồng sự kiện thay thế (Alternative Flows), Điều kiện sau khi thực hiện (Post-conditions) và Các yêu cầu đặc biệt (Special Requirements).
  • Xây dựng 7 biểu đồ tuần tự mô tả kịch bản tương tác theo thời gian: Đăng nhập, Quản lý sản phẩm, Quản lý phiếu nhập hàng, Quản lý hóa đơn, Quản lý khách hàng, Thống kê báo cáo và Quản lý nhà cung cấp.
  • Thiết kế mô hình thực thể quan hệ (E-R) và chuẩn hóa thành 8 bảng cơ sở dữ liệu quan hệ.

Chương 3. Triển khai hệ thống

Chương 3 trình bày quá trình hiện thực hóa các mô hình phân tích thiết kế thành sản phẩm ứng dụng:

  • Quy trình triển khai các thành phần Front-end và Back-end của phần mềm.
  • Thiết kế và minh họa trực quan các giao diện chức năng chính của hệ thống: Giao diện đăng nhập, Giao diện chính, Giao diện quản lý sản phẩm, Giao diện quản lý hóa đơn, Giao diện quản lý nhà cung cấp, Giao diện quản lý khách hàng và Giao diện thống kê báo cáo.
  • Đánh giá kết quả đạt được và đề xuất các định hướng phát triển tiếp theo.

Thiết kế và triển khai

Danh mục đặc tả ca sử dụng (Use Cases)

Hệ thống bao gồm 27 ca sử dụng được đặc tả chuẩn hóa, phục vụ toàn bộ các thao tác nghiệp vụ của Administrator:

Nhóm chức năng Tên ca sử dụng Bảng đặc tả Tác nhân chính Ràng buộc / Luồng xử lý đặc biệt
Xác thực Đăng nhập Bảng 2.1 Administrator Kiểm tra tên đăng nhập, mật khẩu; phân quyền theo vai trò.
Quản lý sản phẩm Quản lý sản phẩm Bảng 2.2 Administrator Hiển thị form danh sách sản phẩm sau khi đăng nhập thành công.
Thêm sản phẩm Bảng 2.3 Administrator Nhập Mã SP, Tên SP, ĐVT, Giá nhập, Giá bán, Số lượng; lưu vào CSDL.
Tìm kiếm sản phẩm Bảng 2.4 Administrator Tìm kiếm theo Mã sản phẩm; báo lỗi nếu mã không hợp lệ.
Sửa thông tin sản phẩm Bảng 2.5 Administrator Chỉnh sửa thông tin chi tiết; kiểm tra tính hợp lệ và cập nhật CSDL.
Xóa hàng hóa Bảng 2.6 Administrator Ràng buộc đặc biệt: Số lượng hàng hóa trong kho phải bằng 0 mới được xóa.
Quản lý phiếu nhập Quản lý phiếu nhập hàng Bảng 2.7 Administrator Hiển thị danh mục các phiếu nhập hàng đã khởi tạo.
Thêm phiếu nhập Bảng 2.8 Administrator Nhập Mã phiếu, Tên SP, ĐVT, Giá nhập, Số lượng, Ngày nhập, Nhà cung cấp.
Tìm kiếm phiếu nhập Bảng 2.9 Administrator Tìm kiếm thông tin phiếu nhập dựa trên Mã phiếu nhập.
Sửa thông tin phiếu nhập Bảng 2.10 Administrator Cập nhật thông tin phiếu nhập và lưu vào CSDL.
Xóa phiếu nhập Bảng 2.11 Administrator Xóa thông tin phiếu nhập khỏi CSDL khi có xác nhận.
Quản lý hóa đơn Thêm hóa đơn Bảng 2.12 Administrator Nhập Mã HD, Tên SP, Tên KH, Số lượng, Giá bán, Thành tiền; lưu CSDL.
Tìm kiếm hóa đơn Bảng 2.13 Administrator Tra cứu thông tin hóa đơn theo Mã hóa đơn tương ứng.
Sửa thông tin hóa đơn Bảng 2.14 Administrator Chỉnh sửa thông tin hóa đơn và cập nhật lại CSDL.
Xóa hóa đơn Bảng 2.15 Administrator Xóa thông tin hóa đơn bán hàng khỏi CSDL.
Thống kê, báo cáo Thêm báo cáo Bảng 2.16 Administrator Tạo báo cáo gồm Mã BC, Tên SP, Số lượng bán, Giá nhập, Giá bán, Doanh thu.
Tìm kiếm báo cáo Bảng 2.17 Administrator Tìm kiếm báo cáo đã tạo theo Mã báo cáo.
Sửa thông tin báo cáo Bảng 2.18 Administrator Cập nhật dữ liệu báo cáo thống kê.
Xóa báo cáo Bảng 2.19 Administrator Xóa bản ghi báo cáo khỏi CSDL.
Quản lý nhà cung cấp Thêm nhà cung cấp Bảng 2.20 Administrator Nhập Mã NCC, Tên NCC, Tên SP, Số lượng, Giá nhập,... và lưu CSDL.
Tìm kiếm nhà cung cấp Bảng 2.21 Administrator Tra cứu nhà cung ứng theo Mã nhà cung cấp.
Sửa thông tin nhà cung cấp Bảng 2.22 Administrator Chỉnh sửa thông tin liên hệ và chi tiết nhà cung cấp.
Xóa nhà cung cấp Bảng 2.23 Administrator Xóa dữ liệu nhà cung cấp khỏi CSDL.
Quản lý khách hàng Thêm khách hàng Bảng 2.24 Administrator Nhập Mã KH, Tên KH, Địa chỉ, Số điện thoại; lưu CSDL.
Tìm kiếm khách hàng Bảng 2.25 Administrator Tra cứu khách hàng theo Mã khách hàng.
Sửa thông tin khách hàng Bảng 2.26 Administrator Sửa thông tin định danh, địa chỉ, số điện thoại của khách hàng.
Xóa khách hàng Bảng 2.27 Administrator Xóa bản ghi khách hàng khỏi CSDL.

Thiết kế cơ sở dữ liệu quan hệ

Hệ thống xây dựng 8 bảng dữ liệu quan hệ được chuẩn hóa nhằm lưu trữ và xử lý các giao dịch kinh doanh:

  1. Khach_hang (MaKH, TenKH, Diachi, Gioitinh, SDT): Quản lý hồ sơ định danh và thông tin liên hệ của khách hàng.
  2. Hoa_don (MaHD, Ngaylap, Tongtien, MaKH): Quản lý thông tin chung của các giao dịch bán hàng, liên kết với khách hàng thông qua khóa ngoại MaKH.
  3. San_pham (MaSP, TenSP, LoaiSP, Gianhap, Giaban, Nhacungcap, Soluong): Lưu trữ danh mục hàng hóa, phân loại, giá cả và số lượng tồn kho.
  4. Mua_hang (MaHD, MaSP, Soluong, Thanhtien): Bảng chi tiết hóa đơn bán hàng, thể hiện quan hệ nhiều-nhiều giữa Hóa đơn và Sản phẩm.
  5. Phieu_nhap_hang (MaPhieunhap, Ngaynhap, Tongtien, MaNcc): Quản lý thông tin các đợt nhập hàng, liên kết với nhà cung cấp qua khóa ngoại MaNcc.
  6. Nhap_hang (MaPhieunhap, MaSP, Soluong, Thanhtien): Bảng chi tiết phiếu nhập, ghi nhận danh mục và số lượng từng mặt hàng nhập kho.
  7. Nha_cung_cap (MaNcc, TenNcc, Diachi, SDT, Email): Quản lý hồ sơ đối tác cung ứng hàng hóa.
  8. Thongke_baocao (MaBaocao, TenBaocao, MaHD, MaPhieunhap, Doanhthu, Ngaylap): Tổng hợp số liệu kinh doanh, liên kết dữ liệu bán hàng (MaHD) và dữ liệu nhập hàng (MaPhieunhap) để tính toán doanh thu.

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

Kết quả đạt được

  • Hoàn thành quy trình phân tích và thiết kế hệ thống thông tin quản lý bán hàng và hàng hóa cho cửa hàng tổng hợp theo chuẩn mô hình hóa UML.
  • Xây dựng hệ thống tài liệu đặc tả hoàn chỉnh gồm 14 biểu đồ UML (Use Case tổng quát, 5 biểu đồ phân rã ca sử dụng, 7 biểu đồ tuần tự và 1 mô hình E-R) cùng 27 bảng đặc tả chi tiết.
  • Thiết lập lược đồ cơ sở dữ liệu quan hệ 8 bảng, đáp ứng đầy đủ các mối quan hệ nghiệp vụ giữa quản lý kho, nhập hàng, bán hàng, khách hàng, đối tác và báo cáo doanh thu.
  • Hiện thực hóa thành công các giao diện chức năng chính trên môi trường NetBeans IDE, bao gồm: Giao diện Đăng nhập, Giao diện chính, Giao diện Quản lý sản phẩm, Giao diện Quản lý hóa đơn, Giao diện Quản lý nhà cung cấp, Giao diện Quản lý khách hàng và Giao diện Thống kê báo cáo.

Đóng góp của đề tài

  • Cung cấp giải pháp số hóa toàn diện nhằm thay thế phương thức quản lý bán hàng và ghi chép sổ sách thủ công truyền thống, hạn chế thất thoát tài chính và nhầm lẫn tồn kho.
  • Đưa ra quy trình nghiệp vụ rõ ràng, chuẩn hóa cho mô hình cửa hàng tổng hợp từ khâu quản lý nguồn cung, nhập hàng, quản lý kho đến xuất hóa đơn bán lẻ và báo cáo tài chính.

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

Hạn chế

  • Nhóm tác giả tự nhận định kiến thức và nguồn tài liệu tham khảo thu thập được trong quá trình thực hiện đề tài còn có những giới hạn nhất định, dẫn đến hệ thống khó tránh khỏi một số thiếu sót cần hoàn thiện thêm.
  • Hệ thống tập trung chủ yếu vào vai trò Administrator, chưa mở rộng phân quyền chi tiết cho nhiều cấp bậc nhân viên bán hàng hoặc nhân viên kho riêng biệt.

Hướng nghiên cứu tiếp theo

  • Tiếp thu các ý kiến góp ý của giảng viên hướng dẫn để chỉnh sửa, hoàn thiện logic nghiệp vụ và tối ưu hóa hệ thống.
  • Phát triển, bổ sung thêm các tính năng nâng cao nhằm mở rộng quy mô quản lý và nâng cao hiệu quả vận hành của phần mềm trong thực tế.

Giá trị tham khảo

Tài liệu là nguồn tham khảo hữu ích cho:

  • Sinh viên các ngành Công nghệ thông tin, Kỹ thuật phần mềm, An toàn thông tin đang thực hiện đồ án môn học "Phát triển phần mềm ứng dụng" hoặc các học phần Phân tích thiết kế hệ thống thông tin.
  • Các nhóm phát triển phần mềm cần mẫu đặc tả ca sử dụng (Use case specification), biểu đồ tuần tự (Sequence diagram) và thiết kế cơ sở dữ liệu quan hệ cho bài toán quản lý bán lẻ, quản lý kho hàng vừa và nhỏ.
  • Phần đáng tham khảo nhất là cấu trúc 27 bảng đặc tả ca sử dụng chi tiết với đầy đủ các luồng sự kiện chính/phụ và điều kiện ràng buộc nghiệp vụ chặt chẽ (như quy tắc ràng buộc số lượng tồn kho bằng 0 khi xóa sản phẩm).

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

1. Vai trò và quyền hạn của tác nhân Administrator trong hệ thống được xác định như thế nào?

Administrator là người dùng quản trị duy nhất được xác định trong phạm vi hệ thống, tham gia vào tất cả các chức năng và chịu trách nhiệm điều khiển toàn bộ phần mềm. Administrator có toàn quyền thực hiện các thao tác Thêm, Sửa, Xóa và Tìm kiếm trên toàn bộ các phân hệ: Sản phẩm, Phiếu nhập hàng, Hóa đơn bán hàng, Nhà cung cấp, Khách hàng và Báo cáo thống kê.

2. Hệ thống quy định điều kiện đặc biệt nào khi thực hiện xóa một mặt hàng khỏi danh mục sản phẩm?

Theo Bảng đặc tả Use Case 2.6 (Đặc tả Usecase Xóa hàng hóa), điều kiện ràng buộc đặc biệt (Special Requirements) bắt buộc để có thể xóa một mặt hàng khỏi cơ sở dữ liệu là: Số lượng tồn kho của hàng hóa đó phải có giá trị bằng 0.

3. Cơ sở dữ liệu của hệ thống quản lý mối quan hệ giữa hóa đơn và sản phẩm bán ra như thế nào?

Mối quan hệ giữa hóa đơn (Hoa_don) và sản phẩm (San_pham) là quan hệ nhiều-nhiều (một hóa đơn có thể có nhiều sản phẩm và một sản phẩm có thể xuất hiện trong nhiều hóa đơn). Mối quan hệ này được giải quyết thông qua bảng trung gian Mua_hang với 4 thuộc tính: MaHD, MaSP, Soluong, Thanhtien.

4. Những yêu cầu phi chức năng trọng yếu nào được nhóm tác giả đặt ra cho hệ thống?

Hệ thống được thiết kế dựa trên 4 yêu cầu phi chức năng cốt lõi:

  • Phân quyền chặt chẽ: Quản lý quyền hạn người dùng trên từng chức năng và dữ liệu.
  • Tính bảo mật: Đảm bảo an toàn thông tin kinh doanh và dữ liệu khách hàng.
  • Giao diện đẹp, thân thiện, dễ dùng: Màn hình trực quan, tiện cho việc nhập liệu, hướng tới cá nhân hóa người dùng.
  • Tính kế thừa cao: Đảm bảo các phân hệ kế thừa và xử lý tự động, dễ dàng tích hợp và mở rộng kết nối với các hệ thống khác.

5. Nhóm tác giả sử dụng các công cụ phần mềm nào trong quá trình phân tích, thiết kế và phát triển?

  • StarUML: Dùng để mô hình hóa toàn bộ hệ thống bằng ngôn ngữ UML theo kiến trúc hướng mô hình (MDA), vẽ biểu đồ ca sử dụng và biểu đồ tuần tự.
  • NetBeans IDE: Môi trường phát triển tích hợp mã nguồn mở dùng để viết mã code, triển khai các thành phần Front-end và Back-end cũng như giao diện người dùng của phần mềm.

Kết luận

Báo cáo tiểu luận "Phân Tích Thiết Kế Hệ Thống Quản Lý Hàng Hóa" của nhóm sinh viên Khoa An toàn thông tin, Học viện Kỹ thuật Mật mã đã giải quyết trọn vẹn bài toán quản lý kinh doanh thực tế cho cửa hàng tổng hợp bằng phương pháp mô hình hóa UML chuẩn mực. Tài liệu cung cấp hệ thống phân tích yêu cầu logic, 27 bảng đặc tả ca sử dụng chi tiết, 7 biểu đồ tuần tự cùng lược đồ cơ sở dữ liệu 8 bảng hoàn chỉnh. Kết quả nghiên cứu và sản phẩm giao diện được triển khai trên NetBeans IDE là tài liệu tham khảo có giá trị học thuật và ứng dụng cao cho sinh viên ngành công nghệ thông tin trong các học phần phát triển phần mềm ứng dụng.