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

Trong bối cảnh hoạt động thương mại và công nghệ phát triển nhanh chóng, công tác quản lý tại các cơ quan, doanh nghiệp nói chung và các cửa hàng kinh doanh thiết bị tin học nói riêng đòi hỏi việc áp dụng tin học hóa vào quy trình vận hành. Số lượng mặt hàng máy tính, linh kiện và thiết bị ngoại vi tại các cơ sở kinh doanh thường rất lớn, đa dạng về chủng loại, cấu hình và biến động giá cả liên tục.

Vấn đề thực tiễn được nhóm tác giả chỉ ra là phương pháp quản lý truyền thống dựa trên sổ sách, giấy tờ và văn bản hành chính bộc lộ nhiều bất cập nghiêm trọng:

  • Quá trình tra cứu, tìm kiếm thông tin về một mặt hàng hoặc điều chỉnh thông số sản phẩm gặp nhiều khó khăn, tốn kém thời gian do khối lượng dữ liệu lưu trữ lớn.
  • Dễ xảy ra sai sót trong quá trình tính toán doanh thu, theo dõi số lượng tồn kho và quản lý các giao dịch xuất nhập hàng hóa.
  • Làm giảm năng suất lao động và gây áp lực cho người quản lý cửa hàng.

Xuất phát từ thực tế đó, đề tài bài tập lớn "Xây dựng phần mềm quản lý cửa hàng bán máy tính" được thực hiện nhằm giải quyết bài toán tin học hóa khâu quản lý bán lẻ, cung cấp công cụ tự động hóa việc cập nhật dữ liệu, xử lý thông tin sản phẩm, đơn giá, kiểm soát doanh thu nhanh chóng và chính xác thông qua giao diện đồ họa thân thiện.

Nhiệm vụ nghiên cứu của đề tài bao gồm 4 nội dung cụ thể:

  1. Khảo sát, thu thập và phân tích các yêu cầu chức năng cùng yêu cầu phi chức năng của hệ thống phần mềm quản lý cửa hàng.
  2. Mô hình hóa hệ thống bằng các biểu đồ Use Case, biểu đồ lớp (Class Diagram) và thiết kế hệ thống cơ sở dữ liệu quan hệ.
  3. Hiện thực hóa các giao diện tương tác (Form) và cài đặt các chức năng xử lý dữ liệu tương ứng cho từng phân hệ.
  4. Xây dựng tài liệu kiểm thử phần mềm bằng phương pháp thủ công (Manual Test) thông qua các bảng kịch bản kiểm thử (Test Case).

Đối tượng nghiên cứu của đề tài là quy trình nghiệp vụ quản lý sản phẩm máy tính, nhân sự, nhà cung cấp, khách hàng và các luồng giao dịch hóa đơn nhập/bán trong một cửa hàng kinh doanh máy tính. Đề tài được thực hiện bởi nhóm sinh viên lớp ĐH10C10 thuộc Khoa Công nghệ thông tin, Trường Đại học Tài nguyên và Môi trường Hà Nội trong khuôn khổ học phần Công nghệ phần mềm (Học kỳ 2, năm học 2022–2023), hoàn thành vào ngày 01 tháng 05 năm 2023.


Cơ sở lý thuyết và phương pháp nghiên cứu

Đề tài áp dụng các nguyên lý và quy trình kỹ thuật phần mềm tiêu chuẩn trong việc phân tích, thiết kế và phát triển ứng dụng quản lý:

  • Khung phương pháp phân tích và thiết kế: Ứng dụng quy trình phân tích thiết kế hướng đối tượng (Object-Oriented Analysis and Design - OOAD) và ngôn ngữ mô hình hóa thống nhất (UML) để mô tả cấu trúc, hành vi và các ca sử dụng của hệ thống.
  • Mô hình dữ liệu: Áp dụng mô hình cơ sở dữ liệu quan hệ (Relational Data Model) để chuẩn hóa cấu trúc lưu trữ, xác định các trường khóa chính (Primary Key), khóa ngoại và mối quan hệ giữa các bảng thực thể.
  • Phương pháp kiểm thử: Sử dụng kỹ thuật kiểm thử thủ công (Manual Testing) theo kịch bản mẫu, đánh giá độ chính xác của các luồng xử lý dữ liệu, bắt lỗi nhập liệu và kiểm tra tính toàn vẹn của hệ thống khi thao tác với cơ sở dữ liệu.
  • Nguồn dữ liệu: Dữ liệu nghiên cứu được xây dựng dựa trên khảo sát thực tế các quy trình nghiệp vụ cơ bản tại cửa hàng bán lẻ máy tính, bao gồm danh mục thiết bị, thông số kỹ thuật, hồ sơ nhân viên, thông tin đối tác cung ứng và khách hàng.

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

Hệ thống được thiết kế theo cấu trúc phần mềm ứng dụng desktop form tích hợp cơ sở dữ liệu quan hệ. Các thành phần thiết kế cốt lõi được mô hình hóa chi tiết qua cấu trúc bảng dữ liệu, biểu đồ lớp và giao diện ứng dụng.

Cấu trúc cơ sở dữ liệu quan hệ

Cơ sở dữ liệu của phần mềm bao gồm 6 bảng thực thể chính với các thuộc tính, kiểu dữ liệu và ràng buộc được xác định như sau:

Tên bảng Tên trường Kiểu dữ liệu Kích thước Diễn giải thuộc tính
Thongtinmaytinh MaMT Char 10 Mã máy tính (Khóa chính)
TenMT Varchar 50 Tên máy tính
NCC Char 10 Mã nhà cung cấp
Soluong Int - Số lượng sản phẩm
Giaban Int - Đơn giá bán
Nhanvien MaNV Char 10 Mã nhân viên (Khóa chính)
TenNV Varchar 50 Họ tên nhân viên
Gioitinh NVarchar 50 Giới tính
Diachi NVarchar 50 Địa chỉ liên hệ
Sdt Int - Số điện thoại
Nhacungcap MaNCC Char 10 Mã nhà cung cấp (Khóa chính)
TenNCC Varchar 50 Tên đơn vị cung cấp
Diachi NVarchar 50 Địa chỉ trụ sở
Sdt Int - Số điện thoại
Khachhang MaKH Char 10 Mã khách hàng (Khóa chính)
TenKH Varchar 50 Họ tên khách hàng
Gioitinh NVarchar 50 Giới tính
Diachi NVarchar 50 Địa chỉ
Sdt Int - Số điện thoại
Hoadonnhap MaHDN Char 10 Mã hóa đơn nhập (Khóa chính)
MaNV Char 10 Mã nhân viên thực hiện
MaMT Char 10 Mã máy tính nhập về
MaNCC Char 10 Mã nhà cung cấp
Soluong Int - Số lượng nhập
Ngaynhap Date - Ngày lập hóa đơn nhập
Diachi Varchar 50 Địa chỉ giao dịch
Sdt Int - Số điện thoại
Giaban Float - Giá nhập/đơn giá
Tongtien Float - Tổng giá trị hóa đơn
Hoadonban MaHDB Char 10 Mã hóa đơn bán (Khóa chính)
MaNV Char 10 Mã nhân viên phụ trách
MaKH Char 10 Mã khách hàng
MaMT Char 10 Mã máy tính bán ra
Soluong Int - Số lượng xuất bán
Ngayban Date - Ngày lập hóa đơn bán
Diachi NVarchar 50 Địa chỉ khách nhận
Sdt Int - Số điện thoại
Giaban Float - Đơn giá bán
Tongtien Float - Tổng thành tiền thanh toán

Cấu trúc các lớp đối tượng (Class Diagram)

Hệ thống xây dựng 6 lớp đối tượng chính, mỗi lớp được định nghĩa đầy đủ các trường thuộc tính và các phương thức xử lý nghiệp vụ cơ bản:

Lớp đối tượng Danh sách thuộc tính Danh sách phương thức
ThongtinMT Mamt (PK), Tenmt, Soluong, Giaban, mancc Nhap(), Them(), Sua(), Xoa(), Timkiem()
Nhanvien MaNV (PK), TenNV, Gioitinh, Diachi, sdt Nhap(), Them(), Sua(), Xoa()
Nhacungcap MaNCC (PK), TenNCC, Diachi, sdt Nhap(), Them(), Sua(), Xoa()
Khachhang MaKH (PK), TenKH, Gioitinh, Diachi, sdt Nhap(), Them(), Sua(), Xoa()
Hoadonnhap MaHDN (PK), MaNV, MaMT, MaNCC, Soluong, Ngaynhap, Diachi, Sdt, Dongia, Tongtien Nhap(), Them(), Sua(), Xoa()
Hoadonban MaHDB (PK), MaNV, MaKH, MaMT, Soluong, Ngayban, Diachi, sdt, Dongia, Tongtien Nhap(), Them(), Sua(), Xoa()

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

CHƯƠNG I: XÁC ĐỊNH YÊU CẦU PHẦN MỀM

Chương I tập trung làm rõ phạm vi chức năng và các tiêu chí chất lượng mà phần mềm cần đạt được nhằm phục vụ việc vận hành cửa hàng máy tính.

  • Yêu cầu chức năng:

    • Quản lý kho: Thực hiện theo dõi quy trình nhập, xuất và kiểm soát tồn kho các sản phẩm máy tính cùng linh kiện liên quan; cho phép xem thông tin chi tiết từng sản phẩm.
    • Quản lý bán hàng: Cung cấp khả năng tạo đơn hàng, quản lý giỏ hàng, xuất hóa đơn và lập phiếu thu; ghi nhận mọi hoạt động giao dịch để phục vụ theo dõi doanh thu và lợi nhuận.
    • Quản lý khách hàng: Lưu trữ danh sách và thông tin liên hệ của khách hàng; hỗ trợ áp dụng các chương trình quảng cáo và khuyến mãi.
    • Quản lý bảo hành: Tiếp nhận và quản lý dữ liệu bảo hành sản phẩm, lịch sử dịch vụ sửa chữa và đổi trả hàng.
    • Báo cáo và thống kê: Kết xuất các báo cáo doanh thu, lợi nhuận, mức độ tồn kho và tình trạng bảo hành định kỳ nhằm hỗ trợ người quản lý ra quyết định.
    • Quản lý nhân viên: Lưu trữ thông tin hồ sơ nhân viên, phục vụ theo dõi thời gian làm việc và hỗ trợ tính lương.
    • Tích hợp thanh toán: Đáp ứng các phương thức thanh toán đa dạng gồm tiền mặt, chuyển khoản ngân hàng và thẻ tín dụng.
  • Yêu cầu phi chức năng:

    • Tính bảo mật: Bảo vệ an toàn dữ liệu khách hàng và số liệu kinh doanh của cửa hàng, ngăn chặn truy cập trái phép.
    • Khả năng mở rộng: Kiến trúc phần mềm cho phép nâng cấp và mở rộng tính năng khi quy mô kinh doanh gia tăng.
    • Tương tác người dùng: Giao diện trực quan, dễ thao tác, giảm thiểu thời gian đào tạo sử dụng.
    • Hỗ trợ khách hàng và tính linh hoạt: Cung cấp tài liệu hướng dẫn sử dụng rõ ràng, dễ tùy biến khi có yêu cầu thay đổi nghiệp vụ.
    • Hiệu suất: Đảm bảo tính ổn định, tốc độ phản hồi nhanh khi xử lý các thao tác nhập xuất dữ liệu lớn.

CHƯƠNG II: PHÂN TÍCH THIẾT KẾ HỆ THỐNG

Chương II mô tả chi tiết kiến trúc hướng đối tượng của hệ thống thông qua biểu đồ ca sử dụng, sơ đồ lớp và lược đồ cơ sở dữ liệu.

  • Phân tích Use Case:

    • Hệ thống phân quyền cho 2 nhóm tác nhân (Actor): Người quản lý (quản trị hệ thống với toàn quyền cao nhất, xem được báo cáo thống kê) và Nhân viên (người dùng thực thi các tác vụ bán hàng, cập nhật dữ liệu nhưng bị giới hạn truy cập báo cáo tài chính).
    • Xác định 9 Use Case chính: Đăng nhập, Quản lý thông tin máy tính, Quản lý nhân viên, Quản lý nhà cung cấp, Quản lý hóa đơn bán, Quản lý hóa đơn nhập, Quản lý khách hàng, Thống kê và Tìm kiếm.
    • Mối quan hệ giữa các Use Case: Use Case Đăng nhập là điều kiện tiên quyết bắt buộc (quan hệ <<include>>) đối với tất cả các chức năng quản trị bên trong. Các chức năng chi tiết như Thêm, Sửa, Xóa được liên kết theo quan hệ mở rộng <<extend>>.
  • Mô tả dòng sự kiện của các Use Case:

    • Use Case Đăng nhập: Kiểm tra tài khoản và mật khẩu của người dùng. Nếu thông tin hợp lệ, hệ thống mở giao diện chính với menu chức năng tương ứng theo quyền hạn; nếu sai, đưa ra cảnh báo yêu cầu nhập lại.
    • Các Use Case Quản lý (Máy tính, Nhân viên, Nhà cung cấp, Khách hàng, Hóa đơn): Cho phép nhập dữ liệu từ các ô Textbox và Combobox; khi nhấn "Thêm", hệ thống nạp dữ liệu lên DataGridView và lưu xuống cơ sở dữ liệu; khi chọn một dòng trên DataGridView, thông tin được hiển thị ngược lại các ô nhập liệu để thực hiện "Sửa" hoặc "Xóa"; nút "Làm mới" cho phép xóa trắng các trường để nhập bản ghi mới.
    • Use Case Thống kê: Người quản lý nhập mốc thời gian theo tháng, hệ thống trích xuất và hiển thị danh sách hóa đơn cùng doanh thu phát sinh trong tháng đó lên DataGridView.
    • Use Case Tìm kiếm: Hỗ trợ tra cứu nhanh thông tin đối tượng theo các tiêu chí nhập vào từ bàn phím.

CHƯƠNG III: XÂY DỰNG ỨNG DỤNG

Chương III trình bày việc xây dựng giao diện người dùng và lập trình logic xử lý cho 10 màn hình chức năng chính của chương trình:

STT Tên chức năng Tên Form Cách chọn từ chương trình / Mô tả vai trò
1 Đăng nhập FrmDangNhap Giao diện xác thực tài khoản và mật khẩu trước khi vào hệ thống
2 Menu FrmMenu Giao diện trung tâm hiển thị danh mục các phân hệ quản lý
3 Quản lý thông tin máy tính FrmQLthongtinmaytinh Giao diện cập nhật, tra cứu, chỉnh sửa thông tin danh mục máy tính
4 Quản lý nhân viên FrmNV Giao diện quản lý hồ sơ, thông tin cá nhân nhân viên
5 Quản lý nhà cung cấp FrmNCC Giao diện theo dõi danh sách các đối tác cung ứng thiết bị
6 Quản lý hóa đơn nhập FrmHDN Giao diện lập phiếu nhập hàng, tính giá trị hóa đơn từ nhà cung cấp
7 Quản lý hóa đơn bán FrmHDB Giao diện lập đơn xuất bán, tính tổng tiền, hỗ trợ in hóa đơn ra Excel
8 Khách hàng FrmKhachhang Giao diện lưu trữ và tra cứu thông tin khách hàng mua hàng
9 Thống kê FrmThongke Giao diện lọc doanh thu, chi phí xuất nhập sản phẩm theo tháng
10 Tìm kiếm FrmTimkiem Giao diện thực hiện các tác vụ tra cứu thông tin đa đối tượng

Tất cả các Form giao diện đều tuân thủ cơ chế kiểm tra ràng buộc toàn vẹn: khi người dùng thêm mới bản ghi, hệ thống thực hiện kiểm tra khóa chính (mã máy tính, mã nhân viên, mã nhà cung cấp, mã khách hàng, mã hóa đơn) đã tồn tại trong cơ sở dữ liệu hay chưa nhằm ngăn chặn lỗi trùng lặp dữ liệu. Riêng Form quản lý hóa đơn bán (FrmHDB) được tích hợp nút chức năng hỗ trợ kết xuất dữ liệu hóa đơn trực tiếp ra định dạng bảng tính Excel.

CHƯƠNG IV: KIỂM THỬ PHẦN MỀM

Chương IV thực hiện kiểm tra chất lượng phần mềm thông qua phương pháp lập bảng kịch bản kiểm thử (Test Case) và thực hiện kiểm thử thủ công (Manual Test). Các ca kiểm thử trọng tâm được nhóm tác giả xây dựng bao gồm:

  1. Test case "Login": Kiểm thử chức năng xác thực người dùng trong các trường hợp nhập đúng tài khoản/mật khẩu, nhập sai thông tin và trường hợp bỏ trống các ô Textbox.
  2. Test case "Thêm Nhân Viên": Kiểm tra khả năng tiếp nhận dữ liệu nhân sự mới, kiểm tra phản hồi của hệ thống khi nhập trùng mã nhân viên (MaNV) đã có trong cơ sở dữ liệu.
  3. Test case "Thêm Thông tin Khách Hàng": Kiểm thử tính đúng đắn khi nạp dữ liệu khách hàng lên DataGridView và lưu trữ vào bảng Khachhang.
  4. Test case "Thống Kê Hóa Đơn": Kiểm tra độ chính xác của thuật toán lọc và tính tổng doanh thu hóa đơn bán hàng theo tham số tháng được nhập từ giao diện.
  5. Test case "Tìm Kiếm Máy Tính": Kiểm tra khả năng truy vấn và trả về kết quả chính xác thông tin cấu hình, giá bán máy tính trên DataGridView theo từ khóa tìm kiếm.

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

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

  • Xây dựng thành công ứng dụng quản lý cửa hàng bán máy tính hoàn chỉnh từ khâu phân tích yêu cầu, mô hình hóa cấu trúc đến triển khai giao diện và kiểm thử.
  • Hiện thực hóa đầy đủ 10 Form giao diện chức năng (FrmDangNhap, FrmMenu, FrmQLthongtinmaytinh, FrmNV, FrmNCC, FrmHDN, FrmHDB, FrmKhachhang, FrmThongke, FrmTimkiem) đáp ứng các nghiệp vụ cơ bản trong quản lý bán lẻ.
  • Tự động hóa việc lưu trữ, cập nhật thông tin sản phẩm, quản lý xuất - nhập hàng và tính toán tổng tiền hóa đơn, thay thế cho phương pháp ghi chép thủ công.
  • Tích hợp tính năng kết xuất hóa đơn bán hàng ra định dạng Excel, tạo thuận lợi cho công tác in ấn và lưu trữ chứng từ.
  • Xây dựng hệ thống bảng dữ liệu quan hệ đồng bộ, có cơ chế bắt lỗi trùng khóa chính và phân quyền truy cập giữa người quản lý và nhân viên.

Giải pháp và đóng góp của đề tài

  • Đề xuất giải pháp tin học hóa toàn diện quy trình kinh doanh thiết bị tin học, giúp giảm thiểu sai sót dữ liệu, rút ngắn thời gian tra cứu và nâng cao hiệu suất làm việc của người quản lý.
  • Cung cấp tài liệu hoàn chỉnh về quy trình phân tích và thiết kế phần mềm hướng đối tượng (OOAD) cho một bài toán quản lý thực tế, đóng vai trò là sản phẩm học thuật kết thúc học phần Công nghệ phần mềm.

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

  • Hạn chế: Nhóm tác giả tự đánh giá do giới hạn về thời gian và năng lực cá nhân, phần mềm vẫn còn một số thiếu sót; một số yêu cầu nghiệp vụ chuyên sâu đã nêu trong phần xác định yêu cầu ban đầu (như module quản lý bảo hành chi tiết, theo dõi giờ làm/tính lương tự động cho nhân viên, cổng thanh toán tích hợp trực tuyến) chưa được phân tích và cài đặt triệt để trong phiên bản hiện tại.
  • Hướng phát triển: Tiếp tục tiếp thu ý kiến đóng góp từ giảng viên hướng dẫn và các bạn học để hoàn thiện mã nguồn; bổ sung các phân hệ nghiệp vụ nâng cao về quản lý bảo hành, đổi trả linh kiện và phát triển các cổng thanh toán điện tử.

Giá trị tham khảo

Đề tài có giá trị thực tiễn và học thuật phục vụ các nhóm đối tượng:

  • Sinh viên ngành Công nghệ thông tin và Kỹ thuật phần mềm: Là tài liệu tham khảo cụ thể về cách triển khai một bài tập lớn hoặc đồ án môn học Công nghệ phần mềm, từ khâu đặc tả yêu cầu, vẽ biểu đồ Use Case, biểu đồ lớp đến thiết kế bảng CSDL và viết Test Case kiểm thử.
  • Người nghiên cứu các hệ thống quản lý bán lẻ: Có thể tham khảo cấu trúc phân tích bảng dữ liệu quan hệ và quy trình luân chuyển dữ liệu của các phân hệ hóa đơn nhập - bán - kho hàng để ứng dụng cho các đề tài tương tự.

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

1. Đề tài bài tập lớn này được thực hiện bởi ai và thuộc đơn vị đào tạo nào?
Đề tài do nhóm sinh viên gồm Nguyễn Văn Cường, Nguyễn Đănh Linh, Vũ Đức Minh, Hoàng Trọng Thắng và Nguyễn Tiến Nam thuộc lớp ĐH10C10, Khoa Công nghệ thông tin, Trường Đại học Tài nguyên và Môi trường Hà Nội thực hiện trong khuôn khổ học phần Công nghệ phần mềm vào tháng 05 năm 2023.

2. Cơ chế phân quyền trong hệ thống được thiết kế như thế nào?
Hệ thống phân chia 2 nhóm quyền truy cập chính: Người quản lý (quản trị hệ thống) có quyền hạn cao nhất, được sử dụng toàn bộ chức năng bao gồm xem báo cáo thống kê doanh thu và quản lý danh mục chung; Nhân viên chỉ được truy cập các chức năng tác nghiệp hàng ngày (quản lý máy tính, lập hóa đơn, quản lý khách hàng) và không có quyền xem báo cáo thống kê doanh thu.

3. Cơ sở dữ liệu của phần mềm bao gồm những bảng nào?
Cơ sở dữ liệu gồm 6 bảng thực thể: Thongtinmaytinh (quản lý thông tin sản phẩm máy tính), Nhanvien (thông tin nhân sự), Nhacungcap (đối tác cung ứng), Khachhang (thông tin khách hàng), Hoadonnhap (dữ liệu nhập hàng) và Hoadonban (dữ liệu xuất bán hàng).

4. Chức năng lập hóa đơn bán hàng có hỗ trợ xuất dữ liệu ra định dạng nào?
Trên giao diện Form quản lý hóa đơn bán (FrmHDB), phần mềm hỗ trợ nút chức năng cho phép in và kết xuất trực tiếp thông tin hóa đơn bán ra định dạng bảng tính Excel.

5. Nhóm tác giả đã tiến hành kiểm thử phần mềm cho những chức năng cụ thể nào?
Nhóm tác giả đã lập bảng Test Case và thực hiện Manual Test cho 5 chức năng trọng tâm gồm: Đăng nhập (Login), Thêm Nhân Viên, Thêm Thông tin Khách Hàng, Thống Kê Hóa Đơn và Tìm Kiếm Máy Tính.


Kết luận

Báo cáo bài tập lớn "Xây dựng phần mềm quản lý cửa hàng bán máy tính" của nhóm sinh viên Trường Đại học Tài nguyên và Môi trường Hà Nội đã hoàn thành toàn diện các mục tiêu nghiên cứu và phát triển phần mềm theo chuẩn môn học Công nghệ phần mềm. Thông qua việc phân tích yêu cầu, thiết kế biểu đồ UML, xây dựng CSDL quan hệ và lập trình 10 giao diện chức năng, sản phẩm đã chứng minh được tính khả thi trong việc hỗ trợ tin học hóa khâu bán hàng và quản lý kho thiết bị tin học. Mặc dù còn một số hạn chế về mặt tính năng nâng cao, đồ á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 trong việc rèn luyện phương pháp luận xây dựng và kiểm thử phần mềm ứng dụng.