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

Trong hoạt động kinh doanh tại các cửa hàng vàng bạc đá quý, việc quản lý giao dịch, kiểm soát xuất nhập và theo dõi lượng hàng tồn kho là những công tác mang tính then chốt. Thực tiễn vận hành theo phương thức truyền thống cho thấy nhiều bất cập lớn: quy trình phụ thuộc nhiều vào nhân lực thủ công, phát sinh chi phí vận hành cao và tiềm ẩn nguy cơ sai sót trong quá trình tính toán giá cả, tỷ lệ lợi nhuận hay ghi nhận số liệu tồn kho.

Nhằm giải quyết các vấn đề trên, đề tài "Báo cáo đồ án: Xây dựng phần mềm quản lý cửa hàng kinh doanh vàng bạc đá quý" được thực hiện với các mục tiêu và nhiệm vụ nghiên cứu cụ thể:

  1. Khảo sát và phân tích bài toán nghiệp vụ kinh doanh vàng bạc đá quý, mô tả chi tiết quy trình thực hiện các công việc chính.
  2. Xác định và mô hình hóa đầy đủ các nhóm yêu cầu phần mềm: yêu cầu nghiệp vụ, yêu cầu chất lượng (tiến hóa, tiện dụng, hiệu quả, tương thích) và yêu cầu hệ thống (bảo mật, an toàn).
  3. Xây dựng bảng trách nhiệm và sơ đồ luồng dữ liệu (Data Flow Diagram - DFD) kèm thuật toán xử lý chi tiết cho từng nghiệp vụ.
  4. Thiết kế kiến trúc tổng thể của hệ thống phần mềm dựa trên mô hình phân tầng.
  5. Thiết kế cơ sở dữ liệu quan hệ đảm bảo hai tiêu chí: tính đúng đắn và tính tiến hóa.
  6. Thiết kế giao diện người dùng, sơ đồ liên kết màn hình và định nghĩa danh sách biến cố - xử lý tương ứng.
  • Đối tượng nghiên cứu: Quy trình quản lý hoạt động kinh doanh bán lẻ vàng bạc đá quý và mô hình phần mềm quản lý nghiệp vụ cửa hàng.
  • Phạm vi nghiên cứu:
    • Không gian: Môi trường quản lý nghiệp vụ cửa hàng vàng bạc đá quý, được nghiên cứu và thực hiện tại Khoa Khoa học và Kỹ thuật Thông tin, Trường Đại học Công nghệ Thông tin – Đại học Quốc gia Thành phố Hồ Chí Minh.
    • Thời gian thực hiện: Báo cáo hoàn thành vào tháng 01 năm 2024.

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

Đồ án áp dụng quy trình phân tích và thiết kế hệ thống thông tin theo phương pháp hướng cấu trúc kết hợp phân tầng kiến trúc phần mềm:

  • Khung lý thuyết và mô hình ứng dụng:

    • Mô hình hóa yêu cầu phần mềm: Sử dụng biểu mẫu (BM), quy định nghiệp vụ (QĐ), bảng trách nhiệm giữa người dùng và phần mềm, cùng hệ thống sơ đồ luồng dữ liệu (DFD).
    • Mô hình thiết kế dữ liệu theo hai giai đoạn: Thiết kế dữ liệu đáp ứng tính đúng đắn (đáp ứng đúng cấu trúc biểu mẫu hiện tại) và thiết kế dữ liệu đáp ứng tính tiến hóa (cho phép hệ thống thích ứng khi thay đổi các tham số nghiệp vụ mà không làm phá vỡ cấu trúc cơ sở dữ liệu).
    • Mô hình kiến trúc phần mềm 3 tầng (Three-Tier Architecture): Tách biệt rõ ràng giữa Presentation Tier (Giao diện người dùng), Business Tier (Xử lý nghiệp vụ qua API) và Data Tier (Cơ sở dữ liệu).
  • Phương pháp nghiên cứu thực tế:

    • Phương pháp phân tích – tổng hợp tài liệu nghiệp vụ thực tế tại các cửa hàng kinh doanh trang sức, vàng bạc, đá quý.
    • Phương pháp mô hình hóa dữ liệu quan hệ, chuẩn hóa các bảng dữ liệu và xác định khóa chính, khóa ngoại.
    • Phương pháp đặc tả thuật toán xử lý dữ liệu tương ứng với từng luồng nghiệp vụ.
  • Nguồn dữ liệu: Dữ liệu mẫu về danh mục sản phẩm, loại sản phẩm (loại đá, hãng, chất liệu, trọng lượng), đơn vị tính, nhà cung cấp, loại dịch vụ gia công/cân thử, phiếu bán hàng, phiếu mua hàng và phiếu dịch vụ.


Thiết kế và triển khai hệ thống

Hệ thống được thiết kế theo kiến trúc phân tầng đảm bảo tính độc lập và khả năng mở rộng giữa các thành phần:

+-------------------------------------------------------------+
|                  PRESENTATION TIER                          |
|         (WinForms GUI Framework - Client Interface)         |
+-------------------------------------------------------------+
+-------------------------------------------------------------+
|                    BUSINESS TIER                            |
|  (ASP.NET Web Framework: API, Server Interface, Controllers)|
+-------------------------------------------------------------+
+-------------------------------------------------------------+
|                      DATA TIER                              |
|           (Microsoft SQL Server Database)                   |
+-------------------------------------------------------------+

1. Phân tầng kiến trúc

  • Presentation Layer: Xây dựng trên nền tảng WinForms GUI Framework, chịu trách nhiệm kết xuất giao diện trực quan cho người dùng, tiếp nhận thao tác và hiển thị kết quả xử lý.
  • Business Layer: Xây dựng bằng ASP.NET Web Framework, gồm 4 thành phần nòng cốt:
    • Request: Tiếp nhận yêu cầu thao tác từ lớp Presentation thông qua API.
    • Response: Đóng gói và trả kết quả xử lý về lớp Presentation.
    • API: Cung cấp các điểm cuối (endpoints) giao tiếp chuẩn hóa.
    • Server Interface: Thực thi logic nghiệp vụ, điều phối kết nối và thực hiện các lệnh truy vấn tới cơ sở dữ liệu.
  • Data Layer: Sử dụng hệ quản trị cơ sở dữ liệu Microsoft SQL Server để lưu trữ toàn bộ dữ liệu giao dịch, danh mục hàng hóa, khách hàng và báo cáo.

2. Thiết kế cơ sở dữ liệu

Cơ sở dữ liệu của hệ thống gồm 12 bảng dữ liệu quan hệ chính:

STT Tên bảng Khóa chính Khóa ngoại Mục đích lưu trữ
1 SANPHAM MASANPHAM MALOAISANPHAM Thông tin mã, tên, giá mua, giá bán, số lượng tồn kho của sản phẩm
2 LOAISANPHAM MALOAISANPHAM MADONVITINH Phân loại sản phẩm, chất liệu, hãng, loại đá, trọng lượng, phần trăm lợi nhuận
3 DONVITINH MADONVITINH Không Danh mục các đơn vị tính áp dụng cho sản phẩm
4 BAOCAOTON MABAOCAO MASANPHAM Lưu thông tin báo cáo tồn đầu, tồn cuối, lượng mua vào, bán ra theo tháng
5 PHIEUBANHANG SOPHIEUBANHANG MAKHACHHANG Thông tin tổng quát về giao dịch xuất bán hàng
6 CT_PHIEUBANHANG SOPHIEUBANHANG SOPHIEUBANHANG, MASANPHAM Chi tiết số lượng, đơn giá bán, thành tiền từng món hàng bán ra
7 PHIEUMUAHANG SOPHIEUMUAHANG Không Thông tin chung về giao dịch nhập mua hàng
8 CT_PHIEUMUAHANG Không SOPHIEUMUAHANG, MAKHACHHANG Chi tiết số lượng mua, đơn giá mua, thành tiền từng sản phẩm mua vào
9 KHACHHANG MAKHACHHANG Không Hồ sơ thông tin khách hàng (Họ tên, địa chỉ, SĐT, Email)
10 PHIEUDICHVU SOPHIEUDICHVU MAKHACHHANG Phiếu yêu cầu dịch vụ, tổng tiền, tiền trả trước, tiền còn lại, tình trạng
11 CT_PHIEUDICHVU Không SOPHIEUDICHVU, MALOAIDICHVU Chi tiết loại dịch vụ, đơn giá tính toán, ngày giao, tình trạng thực hiện
12 LOAIDICHVU / DICHVU MALOAIDICHVU Không Danh mục dịch vụ cửa hàng cung cấp (cân thử, gia công...) và đơn giá chuẩn

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

Chương I: Giới thiệu bài toán cần giải quyết, mô tả quy trình thực hiện các công việc chính

Chương này phân tích các khó khăn thực tế trong quản lý thủ công tại cửa hàng kinh doanh vàng bạc đá quý. Tác giả đề xuất giải pháp tin học hóa thông qua xây dựng phần mềm chuyên dụng và phác thảo sơ đồ quy trình tổng quan gồm các hoạt động: nhập hàng (mua hàng), xuất bán trang sức, tiếp nhận - xử lý dịch vụ và tổng hợp báo cáo tồn kho định kỳ.

Chương II: Xác định và mô hình hóa yêu cầu phần mềm

Chương II thiết lập hệ thống biểu mẫu và quy định nghiệp vụ cốt lõi:

  • Biểu mẫu & Quy định nghiệp vụ:

    • Phiếu bán hàng (BM1 / QĐ1): Quy định một loại sản phẩm dùng chung một đơn vị tính. Đơn giá bán được tự động xác định theo công thức: $$\text{Đơn giá bán ra} = \text{Đơn giá mua vào} + (\text{Đơn giá mua vào} \times \text{Phần trăm lợi nhuận})$$ Phần trăm lợi nhuận được cấu hình linh hoạt theo từng loại sản phẩm (1%, 2%, 5%...).
    • Phiếu mua hàng (BM2 / QĐ2): Lưu thông tin nhà cung cấp (địa chỉ, số điện thoại) và đơn giá mua vào của từng mặt hàng.
    • Phiếu dịch vụ (BM3 / QĐ3): Hỗ trợ các dịch vụ như cân thử vàng, gia công nữ trang. Đơn giá được tính bao gồm giá dịch vụ gốc cộng chi phí phát sinh riêng. Tiền trả trước bắt buộc phải đạt tối thiểu 50% tổng thành tiền ($\text{Trả trước} \ge 50% \times \text{Thành tiền}$).
    • Tra cứu phiếu dịch vụ (BM4 / QĐ4): Tình trạng phiếu dịch vụ được xác định là "Hoàn thành" khi toàn bộ dịch vụ thành phần trong phiếu đã chuyển trạng thái "Đã giao"; ngược lại là "Chưa hoàn thành".
    • Báo cáo tồn kho (BM5): Theo dõi biến động từng sản phẩm theo tháng gồm: Tồn đầu, Số lượng mua vào, Số lượng bán ra và Tồn cuối.
    • Thay đổi quy định (QĐ5): Cho phép điều chỉnh tham số tỷ lệ lợi nhuận theo loại sản phẩm và chi phí phát sinh dịch vụ.
  • Các yêu cầu phi chức năng:

    • Chất lượng: Yêu cầu tiện dụng (thời gian tự học 5–10 phút đối với thao tác tạo phiếu/báo cáo; tra cứu không cần học), yêu cầu hiệu quả (tốc độ xử lý ngay lập tức), yêu cầu tương thích (hỗ trợ in ấn và xuất file PDF).
    • Hệ thống: Yêu cầu bảo mật phân quyền 3 cấp (Quản trị hệ thống, Người quản lý, Nhân viên); yêu cầu an toàn cấm tuyệt đối hành vi sửa đổi hoặc xóa bỏ dữ liệu báo cáo tồn kho.
    • Sơ đồ luồng dữ liệu & Thuật toán: Đặc tả chi tiết 5 sơ đồ DFD và các bước thuật toán tương ứng từ tiếp nhận dữ liệu đầu vào (D1), kiểm tra ràng buộc danh mục/đơn giá (D3), ghi nhận xuống bộ nhớ phụ (D4) và xuất kết quả in ấn (D5/D6).

Chương III: Thiết kế hệ thống

Chương này mô tả chi tiết mô hình kiến trúc phần mềm 3 tầng. Lớp hiển thị giao tiếp với lớp nghiệp vụ thông qua cơ chế gửi nhận Request/Response qua Web API của ASP.NET. Lớp nghiệp vụ thực hiện các xử lý logic và truy vấn dữ liệu tới hệ quản trị cơ sở dữ liệu SQL Server thông qua Server Interface.

Chương IV: Thiết kế dữ liệu

Chương IV trình bày quy trình thiết kế cơ sở dữ liệu theo hai giai đoạn:

  1. Thiết kế tính đúng đắn: Xây dựng các thực thể, thuộc tính và mối quan hệ logic trực tiếp từ các biểu mẫu BM1 đến BM5.
  2. Thiết kế tính tiến hóa: Tách biệt các bảng danh mục tham số (như LOAISANPHAM chứa trường LOINHUAN, bảng DONVITINH, cấu hình chi phí dịch vụ) nhằm đảm bảo khi thay đổi quy định QĐ1, QĐ3, hệ thống không cần thay đổi cấu trúc bảng hay mã nguồn cốt lõi. Chương này cũng cung cấp từ điển dữ liệu chi tiết cho toàn bộ 12 bảng (kiểu dữ liệu, kích thước, khóa chính, khóa ngoại và diễn giải ngữ nghĩa).

Chương V: Thiết kế giao diện

Chương V trình bày sơ đồ luồng chuyển màn hình và chi tiết hóa 10 màn hình chức năng chính của hệ thống (Màn hình chính, Màn hình Dịch vụ, Phiếu dịch vụ, Khách hàng, Đá quý - Trang sức, Báo cáo tồn kho, Phiếu mua hàng, Phiếu bán hàng, Đặt dịch vụ, Tra cứu khách hàng). Tác giả mô tả chi tiết từng đối tượng giao diện (Textbox, Button, Number), kiểu dữ liệu, ràng buộc nhập liệu và danh sách ánh xạ các biến cố (sự kiện click/thay đổi) tương ứng với hành vi xử lý nghiệp vụ.

Chương VI: Cài đặt và thử nghiệm

Chương cuối cùng ghi nhận quá trình cài đặt phần mềm và bảng phân công công việc cụ thể giữa 5 thành viên trong nhóm nghiên cứu (Trần Ngọc Chinh, Phạm Văn Thanh Bảo, Bùi Minh Huy, Nguyễn Ngô Thế Cường, Đỗ Quốc Duy).


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

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

  • Xây dựng hoàn chỉnh tài liệu đặc tả yêu cầu phần mềm cho cửa hàng vàng bạc đá quý, bao gồm 5 biểu mẫu nghiệp vụ, 5 quy định logic, cùng các bảng trách nhiệm chi tiết.
  • Thiết kế hệ thống DFD và thuật toán kiểm tra tính hợp lệ dữ liệu chặt chẽ cho toàn bộ các quy trình nghiệp vụ (mua hàng, bán hàng, dịch vụ, tồn kho).
  • Đưa ra mô hình cơ sở dữ liệu quan hệ gồm 12 bảng đáp ứng đầy đủ cả hai tiêu chuẩn: tính đúng đắn dữ liệu và tính tiến hóa khi thay đổi chính sách kinh doanh.
  • Thiết kế kiến trúc 3 tầng tích hợp giữa WinForms Client, ASP.NET API Business Layer và SQL Server Data Layer.
  • Xây dựng hệ thống giao diện người dùng với hơn 20 màn hình thành phần, phân định rõ biến cố và thao tác xử lý.

2. Giải pháp kỹ thuật được đề xuất

  • Tự động hóa hoàn toàn công thức tính giá bán dựa trên giá nhập và tỷ lệ lợi nhuận theo phân loại sản phẩm.
  • Áp dụng cơ chế kiểm soát thanh toán dịch vụ: bắt buộc mức đặt cọc tối thiểu 50% giá trị và tự động tổng hợp trạng thái hoàn thành dựa trên tiến độ bàn giao của từng hạng mục dịch vụ.
  • Thiết lập cơ chế bảo toàn dữ liệu: ngăn chặn chỉnh sửa hoặc xóa dữ liệu báo cáo tồn kho nhằm đảm bảo tính toàn vẹn của sổ sách kế toán.

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

Dựa trên nội dung được trình bày trong tài liệu đồ án, một số điểm hạn chế và định hướng phát triển gồm:

  • Hạn chế: Hệ thống thiết kế tập trung chủ yếu vào môi trường ứng dụng máy trạm (WinForms client) cho một điểm bán hàng đơn lẻ; các tham số tiến hóa mới dừng lại ở tỷ lệ lợi nhuận và phụ phí dịch vụ; cơ chế phân quyền bảo mật mới dừng ở mức mô hình hóa ma trận quyền 3 vai trò.
  • Hướng mở rộng: Mở rộng kiến trúc để hỗ trợ quản lý chuỗi nhiều chi nhánh cửa hàng; tích hợp thêm các cổng thanh toán điện tử; bổ sung phân hệ quản lý quan hệ khách hàng (CRM) chuyên sâu và nâng cấp giao diện đa nền tảng.

Giá trị tham khảo

Đồ án là tài liệu tham khảo hữu ích cho:

  • Sinh viên chuyên ngành Công nghệ Thông tin, Kỹ thuật Phần mềm và Hệ thống Thông tin đang thực hiện đồ án môn học Nhập môn Công nghệ Phần mềm, Phân tích Thiết kế Hệ thống Thông tin hoặc Đồ án tốt nghiệp.
  • Người học cần tham khảo phương pháp luận thiết kế dữ liệu theo hai tiêu chí (tính đúng đắn và tính tiến hóa) theo chuẩn đào tạo của Trường Đại học Công nghệ Thông tin – ĐHQG-HCM.
  • Các nhà phát triển phần mềm cần mẫu đặc tả luồng dữ liệu (DFD), thuật toán kiểm tra ràng buộc biểu mẫu và ma trận phân công trách nhiệm cho hệ thống bán lẻ trang sức, dịch vụ vàng bạc.

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

1. Công thức tính đơn giá bán ra của sản phẩm được quy định như thế nào trong hệ thống?
Theo Quy định 1 (QĐ1) của hệ thống, đơn giá bán ra được tính tự động theo công thức:
$$\text{Đơn giá bán ra} = \text{Đơn giá mua vào} + (\text{Đơn giá mua vào} \times \text{Phần trăm lợi nhuận})$$
Trong đó, phần trăm lợi nhuận được quy định linh hoạt theo từng loại sản phẩm (ví dụ: 1%, 2%, 5%...).

2. Quy định về số tiền trả trước và điều kiện hoàn thành của phiếu dịch vụ là gì?
Theo Quy định 3 (QĐ3), số tiền trả trước cho mỗi dịch vụ bắt buộc phải lớn hơn hoặc bằng 50% thành tiền của dịch vụ đó ($\text{Số tiền trả trước} \ge 50% \times \text{Thành tiền}$). Theo Quy định 4 (QĐ4), trạng thái chung của một phiếu dịch vụ chỉ chuyển sang "Hoàn thành" khi toàn bộ các loại dịch vụ thành phần trong phiếu đó đều đã có tình trạng là "Đã giao".

3. Kiến trúc kỹ thuật của hệ thống phần mềm gồm những tầng nào và sử dụng công nghệ gì?
Hệ thống được thiết kế theo mô hình 3 tầng:

  • Presentation Tier: Giao diện người dùng xây dựng bằng WinForms GUI Framework.
  • Business Tier: Xử lý nghiệp vụ và điều phối kết nối được xây dựng bằng ASP.NET Framework (sử dụng Request, Response, API, Server Interface).
  • Data Tier: Hệ quản trị cơ sở dữ liệu Microsoft SQL Server.

4. Yêu cầu an toàn hệ thống đối với báo cáo tồn kho được thiết lập ra sao?
Theo Bảng yêu cầu an toàn (Bảng 2.13 và Bảng 2.20), phần mềm quy định nghiêm ngặt: không cho phép bất kỳ người dùng nào thực hiện hành vi sửa đổi dữ liệu hoặc xóa bỏ các bản ghi của Báo cáo tồn kho đã được lập.

5. Cơ sở dữ liệu của hệ thống được thiết kế đáp ứng tính tiến hóa ở những tham số nào?
Thiết kế dữ liệu tính tiến hóa (trình bày tại Chương IV) cho phép hệ thống dễ dàng thay đổi giá trị của:

  • Tham số phần trăm lợi nhuận cho từng loại sản phẩm (gắn với bảng LOAISANPHAM).
  • Tham số chi phí riêng phát sinh cho từng trường hợp cụ thể trong phiếu dịch vụ.

Kết luận

Đồ án "Xây dựng phần mềm quản lý cửa hàng kinh doanh vàng bạc đá quý" do nhóm sinh viên Trường Đại học Công nghệ Thông tin – ĐHQG-HCM thực hiện đã hoàn thành việc khảo sát, phân tích và mô hình hóa đầy đủ các quy trình nghiệp vụ đặc thù ngành kim hoàn. Nghiên cứu đề xuất được giải pháp kiến trúc 3 tầng (WinForms, ASP.NET, SQL Server) cùng mô hình dữ liệu 12 bảng chặt chẽ, đáp ứng đồng thời tính đúng đắn và tính tiến hóa. Đây là công trình đồ án có cấu trúc mẫu mực, cung cấp đầy đủ các đặc tả từ sơ đồ luồng dữ liệu, thuật toán xử lý đến thiết kế giao diện chi tiết cho bài toán quản trị bán lẻ và dịch vụ.