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

Trong môi trường giáo dục và đào tạo đại học, thư viện đóng vai trò trung tâm trong việc cung cấp nguồn học liệu phục vụ nghiên cứu và học tập. Khối lượng tài liệu lưu trữ tại thư viện rất đa dạng, bao gồm giáo trình, sách tham khảo, luận văn, báo cáo nghiên cứu khoa học, tạp chí, truyện và thơ. Cùng với sự gia tăng liên tục của số lượng độc giả là sinh viên, học viên và cán bộ giảng viên, công tác quản lý tài liệu gặp nhiều trở ngại nếu chỉ dựa vào phương thức thủ công truyền thống. Việc ghi chép sổ sách thủ công gây tốn nhiều thời gian, dễ xảy ra sai sót trong khâu kiểm kê, tra cứu sách, theo dõi hạn mượn và tính toán tiền phạt vi phạm.

Xuất phát từ thực tiễn đó, nhóm sinh viên thuộc Khoa Công nghệ Thông tin 2 – Học viện Công nghệ Bưu chính Viễn thông Cơ sở tại TP. Hồ Chí Minh đã thực hiện đồ án môn học với đề tài "Xây dựng phần mềm quản lý thư viện". Mục tiêu và nhiệm vụ cụ thể của đề tài bao gồm:

  1. Khảo sát hiện trạng hoạt động thực tế của thư viện và thu thập danh mục các biểu mẫu quản lý, quy định nghiệp vụ hiện hành.
  2. Xác định đầy đủ các yêu cầu chức năng (lưu trữ, tra cứu, tính toán, kết xuất) và yêu cầu phi chức năng của hệ thống.
  3. Phân tích và mô hình hóa hệ thống thông qua biểu đồ ca sử dụng (Use Case), mô hình thực thể quan hệ (ERD) và sơ đồ dòng dữ liệu (DFD).
  4. Thiết kế cơ sở dữ liệu quan hệ và xây dựng giao diện tương tác đồ họa thân thiện cho từng đối tượng người dùng.
  5. Hiện thực hóa phần mềm bằng ngôn ngữ lập trình Java và hệ quản trị cơ sở dữ liệu Microsoft SQL Server, kiểm thử chức năng và đóng gói ứng dụng.

Phạm vi nghiên cứu của đồ án tập trung vào các quy trình nghiệp vụ nội bộ của thư viện trường học (quản lý độc giả, quản lý kho sách, tác giả, nhà xuất bản, thể loại, quy trình mượn - trả tài liệu, xử lý vi phạm và thống kê báo cáo). Đề tài được triển khai và hoàn thành vào tháng 6 năm 2021 với thời gian thực hiện trong vòng gần một tháng.


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

Đồ án được xây dựng dựa trên quy trình phân tích và thiết kế phần mềm hướng cấu trúc kết hợp với kỹ thuật mô hình hóa dữ liệu quan hệ, tuân thủ các nguyên lý cơ bản của môn học Nhập môn Công nghệ phần mềm:

  • Khung lý thuyết và mô hình kỹ thuật: Sử dụng ngôn ngữ mô hình hóa để đặc tả yêu cầu và kiến trúc hệ thống, bao gồm biểu đồ Use Case mô tả tương tác giữa các tác nhân và hệ thống, Mô hình thực thể quan hệ (Entity Relationship Diagram - ERD) xác định cấu trúc thực thể, thuộc tính cùng các ràng buộc toàn vẹn dữ liệu, và Sơ đồ luồng dữ liệu (Data Flow Diagram - DFD) mô tả các thuật toán xử lý luồng nghiệp vụ.
  • Phương pháp nghiên cứu:
    • Phương pháp thu thập và phân tích tài liệu: Khảo sát hệ thống biểu mẫu hành chính (đăng ký thẻ, phiếu mượn/trả, thông tin xuất bản) và danh sách quy định nội bộ của thư viện để chuyển hóa thành các ràng buộc logic và quy tắc nghiệp vụ trong phần mềm.
    • Phương pháp phân tích - thiết kế hệ thống: Chuẩn hóa dữ liệu quan hệ thành 11 bảng thực thể, thiết lập các khóa chính (Primary Key), khóa ngoại (Foreign Key) và ràng buộc không rỗng (NOT NULL).
    • Phương pháp hiện thực hóa phần mềm: Lập trình ứng dụng máy tính (Desktop Application) giao diện đồ họa, tích hợp mã hóa một chiều MD5 cho hệ thống bảo mật tài khoản và liên kết thư viện hỗ trợ định dạng ngoài (Excel, PDF).
  • Nguồn dữ liệu tham khảo: Dữ liệu biểu mẫu nghiệp vụ thư viện thực tế kết hợp cùng tài liệu học thuật từ Bài giảng Nhập môn công nghệ phần mềm (Huỳnh Lưu Quốc Linh, 2021, Học viện Công nghệ Bưu chính Viễn thông Cơ sở TP. Hồ Chí Minh).

Thiết kế và triển khai

Hệ thống quản lý thư viện được thiết kế theo kiến trúc ứng dụng desktop hướng dữ liệu, liên kết chặt chẽ giữa tầng giao diện người dùng và cơ sở dữ liệu quan hệ.

Công nghệ phát triển và môi trường triển khai

Thành phần Công nghệ / Công cụ sử dụng Ghi chú kỹ thuật
Ngôn ngữ lập trình Java Sử dụng bộ phát triển Java JDK
Môi trường phát triển (IDE) NetBeans IDE 12.0 Xây dựng mã nguồn và thiết kế giao diện
Giao diện người dùng (GUI) Java Swing Các điều khiển: JFrame, JPanel, JTable, JComboBox, JRadioButton, JDateChooser, JSpinner
Hệ quản trị cơ sở dữ liệu Microsoft SQL Server Lưu trữ và xử lý toàn bộ dữ liệu quan hệ
Giải thuật bảo mật MD5 (Message-Digest Algorithm 5) Mã hóa mật khẩu người dùng trước khi lưu xuống CSDL
Tương thích định dạng ngoài Microsoft Excel, Adobe PDF Xuất báo cáo, danh sách và xuất phiếu mượn
Đóng gói ứng dụng Tập tin tự giải nén (.exe) Khởi chạy trên Windows, tự tạo biểu tượng ngoài Desktop

Yêu cầu cấu hình hệ thống

  • Hệ điều hành: Microsoft Windows.
  • Bộ nhớ trong (RAM): Tối thiểu 4 GB.
  • Dung lượng lưu trữ: Tối thiểu 300 MB dung lượng đĩa cứng khả dụng.

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

Cơ sở dữ liệu của phần mềm bao gồm 11 bảng dữ liệu được thiết kế đồng bộ:

Tên bảng Ý nghĩa nghiệp vụ Khóa chính (Primary Key) Khóa ngoại (Foreign Key)
NGUOIDUNG Quản lý thông tin tài khoản người dùng và độc giả MANGUOIDUNG MAVAITRO, MALOP
VAITRO Định nghĩa các nhóm quyền người dùng MAVAITRO Không
KHOA Quản lý thông tin đơn vị khoa MAKHOA Không
LOP Quản lý danh sách lớp học MALOP MAKHOA
SACH Quản lý thông tin chi tiết và số lượng sách MASACH MATACGIA, MANXB, MATHELOAI
TACGIA Lưu trữ danh mục tác giả MATACGIA Không
NHAXUATBAN Lưu trữ danh mục nhà xuất bản MANXB Không
THELOAI Lưu trữ danh mục thể loại sách MATHELOAI Không
MUONTRA Theo dõi quá trình mượn và trả sách MANGUOIDUNG, MASACH MANGUOIDUNG, MASACH
XULYVIPHAM Ghi nhận các trường hợp phạt quá hạn, hỏng/mất sách MANGUOIDUNG MANGUOIDUNG
QUYDINH Quản lý các tham số quy định có thể hiệu chỉnh MAQUYDINH Không

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

Chương 1. Hiện trạng và yêu cầu

Chương này khảo sát thực trạng nghiệp vụ quản lý thư viện và phân định 4 nhóm tác nhân tham gia vào hệ thống:

  • Quản trị (Admin): Tiếp nhận, cập nhật, xóa nhân viên; quản lý danh mục lớp, khoa, vai trò; lập báo cáo thống kê nhân sự; cấu hình thay đổi quy định.
  • Thủ kho: Tiếp nhận tài liệu mới, thanh lý tài liệu cũ, lập báo cáo thống kê số tài liệu hiện có và tài liệu đã cho mượn.
  • Thủ thư: Tiếp nhận đăng ký và cấp thẻ độc giả; quản lý tác giả, nhà xuất bản, thể loại; quản lý cho mượn, nhận trả sách, thống kê sách mượn quá hạn và tiền phạt vi phạm.
  • Độc giả: Tra cứu sách trong thư viện, xem thông tin sách đang mượn và nhận thông báo hạn trả.

Tài liệu thiết lập hệ thống 8 biểu mẫu chuẩn (đăng ký độc giả BM1.1, nhân viên BM1.2, NXB BM2, tác giả BM3, thể loại BM4, thông tin sách BM5, quản lý mượn BM6.1, quản lý trả BM6.2) và 4 quy định cốt lõi:

  • QĐ1 (Thông tin độc giả): Thủ thư cấp mã tài khoản và mật khẩu sau khi tạo thẻ; người dùng được quyền đổi mật khẩu.
  • QĐ2 (Mượn - trả sách): Mỗi đầu sách chỉ mượn 1 cuốn; tổng số sách mượn tối đa là 3 cuốn; thời hạn mượn 30 ngày tính từ ngày mượn; độc giả phải trả hết sách quá hạn mới được mượn tiếp.
  • QĐ3 (Xử lý vi phạm): Phạt mượn quá hạn 2.000 – 4.000 VNĐ/ngày trễ; làm hỏng hoặc mất sách phạt từ 50% đến 150% giá bìa sách.
  • QĐ4 (Thay đổi quy định): Quyền điều chỉnh các thông số quy định chỉ thuộc về Quản trị viên.

Về yêu cầu hiệu năng và phi chức năng, hệ thống yêu cầu năng lực kết xuất tạo 100 tài khoản/giờ, thêm mới 100 mục tài liệu/giờ; các thao tác đăng nhập, lập phiếu mượn, nhận trả sách và thay đổi quy định phải được xử lý ngay lập tức; giao diện đảm bảo tính thẩm mỹ, logic và vận hành gọn nhẹ.

Chương 2. Usecase và đặc tả usecase

Chương này xây dựng biểu đồ Use Case tổng quát và đặc tả chi tiết luồng sự kiện cơ sở, luồng thay thế, điều kiện tiên quyết và điều kiện sau cho 7 Use Case chính:

  • Usecase Đăng nhập: Kiểm tra thông tin định danh trong CSDL; phân quyền chuyển hướng đến trang chủ Admin, Thủ thư, Thủ kho hoặc Độc giả; thông báo lỗi nếu nhập sai.
  • Usecase Quản lý độc giả: Cung cấp các thao tác Thêm, Sửa, Xóa, Tìm kiếm và Thống kê theo lớp/khoa/năm. Ràng buộc: chỉ cho phép xóa độc giả khi độc giả đó không còn sách mượn chưa trả.
  • Usecase Quản lý tác giả, nhà xuất bản, thể loại: Thực hiện tạo mới, điều chỉnh thông tin hoặc xóa danh mục. Ràng buộc: không được xóa tác giả/NXB/thể loại nếu đang có sách liên kết trong kho.
  • Usecase Quản lý mượn trả: Thủ thư chọn độc giả và sách để lập phiếu mượn (số lượng sách có sẵn tự động giảm đi 1); khi nhận trả sách, hệ thống cập nhật lại kho, tự động tính số ngày quá hạn để đưa ra tiền phạt và cập nhật bảng XULYVIPHAM.
  • Usecase Quản lý sách: Thủ kho thực hiện thêm mới, chỉnh sửa, xóa và thống kê sách theo thể loại/tác giả/NXB. Độc giả cũng được cấp quyền sử dụng chức năng tìm kiếm sách.
  • Usecase Quản lý nhân viên: Quản trị viên quản lý danh sách nhân sự, phân quyền vai trò và thực hiện đặt lại mật khẩu (reset password).
  • Usecase Chỉnh sửa thông tin cá nhân: Cho phép mọi người dùng đã đăng nhập tự cập nhật thông tin liên lạc và thực hiện đổi mật khẩu cá nhân.

Chương 3. Phân tích và thiết kế phần mềm

Chương này tập trung vào các giải pháp kỹ thuật cụ thể:

  • Mô hình ERD và ràng buộc: Xây dựng quan hệ giữa 11 thực thể; thiết lập các mối quan hệ 1-N (Khoa - Lớp, Người dùng - Vai trò, Sách - Tác giả/NXB/Thể loại) và quan hệ mượn trả - xử lý vi phạm.
  • Sơ đồ DFD và thuật toán: Thiết kế lưu đồ dòng dữ liệu và các bước thuật toán cho 6 tiến trình chính: Thêm sách mới, Tìm kiếm sách, Mượn sách mới, Nhận trả sách, Thay đổi quy định thư viện và Đăng nhập.
  • Thiết kế cơ sở dữ liệu vật lý: Định nghĩa chi tiết kiểu dữ liệu, ràng buộc khóa và kích thước lưu trữ của các trường trong từng bảng dữ liệu (như NGUOIDUNG, SACH, MUONTRA, XULYVIPHAM, QUYDINH...).
  • Thiết kế giao diện và sơ đồ luân chuyển màn hình: Xây dựng sơ đồ điều hướng hoàn chỉnh từ màn hình đăng nhập đến trang chủ của 4 nhóm người dùng, chi tiết hóa hơn 20 biểu mẫu và hộp thoại chức năng (Quản lý mượn trả, Thống kê nộp phạt, Quản lý kho, Quản lý phân quyền Lớp - Khoa - Vai trò, Xuất file Excel/PDF).

Chương 4. Cài đặt và kết quả thực nghiệm

Chương 4 mô tả quy trình triển khai phần mềm:

  • Đóng gói và cài đặt: Ứng dụng được đóng gói thành file thực thi tự giải nén, khi hoàn tất sẽ tự động xuất biểu tượng lên màn hình Desktop để người dùng truy cập thuận tiện.
  • Kết quả thực nghiệm theo tiêu chuẩn chất lượng:
    • Tính đúng đắn: Thực hiện đầy đủ các yêu cầu nghiệp vụ quản lý mượn, trả, lưu kho và phân quyền.
    • Tính tiến hóa: Cho phép quản trị viên linh hoạt thay đổi các tham số quy định (số sách mượn, số ngày mượn, đơn giá phạt) trực tiếp trên giao diện mà không cần chỉnh sửa mã nguồn.
    • Tính hiệu quả: Sử dụng tối ưu tài nguyên hệ thống, vận hành mượt mà với dung lượng bộ nhớ khả dụng thấp.
    • Tính tiện dụng: Thiết kế giao diện Java Swing đồng nhất với tông màu xanh lá chủ đạo, bố cục rõ ràng, thao tác đơn giản.
    • Tính tương thích: Hỗ trợ xuất dữ liệu ra bảng tính Microsoft Excel và xuất tài liệu/phiếu mượn định dạng PDF.

Chương 5. Tổng kết

  • Đánh giá ưu điểm: Chương trình vận hành ổn định; tự động hóa hoàn toàn quy trình thủ công; giao diện trực quan, dễ thao tác; áp dụng mã hóa MD5 bảo vệ mật khẩu; hỗ trợ tốt khả năng tiến hóa quy định nghiệp vụ.
  • Đánh giá khuyết điểm: Tốc độ xử lý trong một số thao tác còn hạn chế; cơ chế bắt lỗi người dùng chưa triệt để và đôi khi thiếu thông báo lỗi cụ thể; chưa có chức năng sao lưu (backup) cơ sở dữ liệu dự phòng; chưa lưu trữ lịch sử mượn trả sau khi sách đã trả xong; ứng dụng mới chỉ chạy đơn máy (chưa hỗ trợ đa máy và chưa đồng bộ dữ liệu qua mạng).
  • Hướng phát triển tương lai: Nâng cấp hệ thống chạy trên môi trường mạng hỗ trợ nhiều máy tính cùng lúc; hoàn thiện cơ chế sao lưu và lưu lịch sử mượn trả; bổ sung chế độ giao diện Sáng/Tối (Dark/Light mode); mở rộng các chức năng in ấn biểu mẫu trực tiếp.

Chương 6. Các mục khác

Chương này cung cấp danh mục tài liệu tham khảo và bảng tổng hợp phân công công việc của 5 thành viên trong nhóm nghiên cứu:

  • Nguyễn Ngọc Phương Trinh (20% khối lượng): Xây dựng CSDL, khảo sát hiện trạng, đặc tả Use Case, thiết kế giao diện, lập trình form Quản lý độc giả, Quản lý nhân viên, Trang chủ Thủ thư/Thủ kho/Admin/Độc giả.
  • Bùi Văn Tuấn (20% khối lượng): Xây dựng CSDL, đặc tả Use Case, thiết kế dữ liệu, đánh giá ưu điểm, lập trình form Quản lý Lớp - Khoa - Vai trò và các chức năng đổi mật khẩu/thông tin cá nhân.
  • Huỳnh Thanh Tùng (20% khối lượng): Xây dựng CSDL, phân tích dữ liệu, thiết kế giao diện form, lập trình chức năng mượn/trả/báo hỏng mất sách, mã hóa MD5 và đặt lại mật khẩu.
  • Nguyễn Ngọc Lâm Như (20% khối lượng): Xây dựng CSDL, nhập liệu cơ sở dữ liệu ban đầu, xác định yêu cầu nghiệp vụ, lập trình chức năng Sửa/Xóa trên form Quản lý sách.
  • Hà Thị Mơ (20% khối lượng): Xây dựng CSDL, viết đặc tả Use Case, thiết kế giao diện, đánh giá khuyết điểm, lập trình xuất/nhập Excel, xuất PDF, quản lý tác giả/NXB/thể loại, form hiển thị quy định và thống kê báo cáo tiền phạt/sách quá hạn.

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

Đồ án đã xây dựng thành công phần mềm quản lý thư viện hoàn chỉnh trên môi trường máy tính để bàn với các kết quả cụ thể:

  • Chuẩn hóa quy trình nghiệp vụ: Chuyển đổi thành công hệ thống biểu mẫu giấy tờ và các quy định quản lý thư viện truyền thống sang hệ thống số hóa, tự động tính toán hạn trả và tiền phạt vi phạm.
  • Đầy đủ chức năng quản trị và nghiệp vụ: Phần mềm hỗ trợ 4 phân hệ giao diện tương ứng với 4 vai trò tác nhân (Admin, Thủ thư, Thủ kho, Độc giả), giải quyết trọn vẹn chu trình từ nhập kho, quản lý danh mục xuất bản, cấp thẻ độc giả, đến mượn/trả và xử lý vi phạm.
  • Tích hợp tiện ích mở rộng: Ứng dụng tích hợp thành công thuật toán mã hóa mật khẩu MD5, hỗ trợ xuất phiếu mượn ra file PDF và xuất/nhập dữ liệu danh sách qua file Microsoft Excel.

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

Theo đánh giá tự thân của nhóm tác giả trong đồ án, hệ thống còn tồn tại một số hạn chế kỹ thuật:

  • Phần mềm hoạt động ở dạng cục bộ trên một máy đơn lẻ (standalone), chưa hỗ trợ triển khai phân tán hoặc đồng bộ hóa dữ liệu trên nhiều máy tính qua mạng LAN/Internet.
  • Khi độc giả hoàn tất việc trả sách, dữ liệu trong bảng MUONTRA bị xóa trực tiếp mà chưa được chuyển sang một bảng lưu trữ riêng để theo dõi lịch sử mượn trả dài hạn.
  • Thiếu module sao lưu và phục hồi dữ liệu tự động (Database Backup & Restore).

Hướng phát triển tiếp theo được nhóm tác giả xác định bao gồm: xây dựng kiến trúc client-server hỗ trợ đa máy trạm, hoàn thiện cơ chế ghi vết lịch sử mượn trả, bổ sung tính năng sao lưu dữ liệu, tối ưu hóa tốc độ xử lý, bổ sung tùy chọn giao diện Dark/Light mode và mở rộng các mẫu in ấn biểu mẫu.


Giá trị tham khảo

Tài liệu đồ án mang lại 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: Là tài liệu mẫu hoàn chỉnh về quy trình thực hiện đồ án môn học Nhập môn Công nghệ phần mềm, từ khâu khảo sát hiện trạng, đặc tả Use Case, thiết kế ERD/DFD đến thiết kế chi tiết giao diện Java Swing và cơ sở dữ liệu SQL Server.
  • Người phát triển ứng dụng quản lý thông tin: Cung cấp giải pháp tham khảo rõ ràng về cách thiết kế bảng dữ liệu linh hoạt (cho phép lưu trữ và thay đổi quy định hệ thống trên giao diện) cùng các kỹ thuật liên kết xuất/nhập dữ liệu với Excel và PDF trong Java.

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

1. Hệ thống phân chia quyền hạn của các nhóm người dùng trong thư viện như thế nào?
Hệ thống phân chia thành 4 nhóm quyền rõ rệt: Admin chịu trách nhiệm quản lý nhân viên, phân quyền vai trò/lớp/khoa và điều chỉnh quy định hệ thống; Thủ kho quản lý danh mục sách, nhập sách mới và thống kê kho; Thủ thư tiếp nhận làm thẻ độc giả, quản lý tác giả/NXB/thể loại, thực hiện cho mượn, nhận trả sách và thu tiền phạt; Độc giả có quyền tra cứu sách và xem hạn mượn của cá nhân.

2. Quy định về số lượng sách mượn tối đa và thời hạn mượn trong hệ thống là bao nhiêu?
Theo quy định hệ thống (QĐ2), mỗi đầu sách độc giả chỉ được mượn 1 cuốn, tổng số sách mượn tối đa trong một lần là 3 cuốn với thời hạn mượn tối đa là 30 ngày tính từ ngày lập phiếu.

3. Cơ chế xử lý vi phạm khi độc giả trả sách trễ hạn hoặc làm hỏng/mất sách được tính toán ra sao?
Trường hợp trả sách quá hạn, hệ thống tự động tính số ngày trễ nhân với mức phạt quy định (2.000 – 4.000 VNĐ/ngày). Trường hợp làm mất hoặc làm hỏng sách, độc giả phải nộp phạt từ 50% đến 150% giá trị in trên bìa của cuốn sách đó và hệ thống sẽ ghi nhận vào bảng XULYVIPHAM.

4. Cơ sở dữ liệu của phần mềm gồm những bảng nào và sử dụng giải thuật gì để bảo mật thông tin đăng nhập?
Cơ sở dữ liệu gồm 11 bảng: NGUOIDUNG, VAITRO, KHOA, LOP, MUONTRA, XULYVIPHAM, SACH, NHAXUATBAN, TACGIA, THELOAI, QUYDINH. Mật khẩu tài khoản người dùng được bảo vệ bằng giải thuật mã hóa một chiều MD5 trước khi lưu vào cơ sở dữ liệu.


Kết luận

Đồ án "Xây dựng phần mềm quản lý thư viện" của nhóm sinh viên Khoa Công nghệ Thông tin 2 – Học viện Công nghệ Bưu chính Viễn thông Cơ sở tại TP. Hồ Chí Minh đã hoàn thành toàn diện mục tiêu tự động hóa công tác quản lý thư viện trường học. Thông qua sự kết hợp giữa ngôn ngữ Java Swing và hệ quản trị Microsoft SQL Server, phần mềm đã giải quyết hiệu quả các bài toán quản lý kho sách, độc giả, mượn trả và xử lý vi phạm. Báo cáo đồ án thể hiện đầy đủ các bước chuẩn mực trong quy trình phát triển phần mềm, cung cấp tài liệu tham khảo có giá trị học thuật và ứng dụng thực tiễn cao cho sinh viên chuyên ngành Công nghệ thông tin.