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

Trong hệ thống giáo dục từ bậc trung học phổ thông, cao đẳng đến đại học, thư viện đóng vai trò hỗ trợ học tập, nghiên cứu và phát triển tri thức cho học sinh, sinh viên và giảng viên. Tuy nhiên, phương thức quản lý thư viện truyền thống dựa trên sổ sách viết tay hoặc bảng tính Excel rời rạc bộc lộ nhiều điểm hạn chế trong vận hành thực tế:

  • Tốc độ xử lý và thao tác nghiệp vụ chậm;
  • Khó kiểm soát chính xác số lượng và tình trạng sách lưu trữ;
  • Tốn nhiều thời gian khi tra cứu, tìm kiếm tài liệu;
  • Dễ xảy ra sai sót dữ liệu do nhập liệu thủ công;
  • Không hỗ trợ cơ chế đồng bộ và cập nhật thông tin theo thời gian thực.

Xuất phát từ thực trạng trên, đồ án kết thúc học phần môn Lập trình hướng đối tượng (OOP) của nhóm sinh viên ngành Công nghệ thông tin thuộc Trường Đại học Xây dựng Hà Nội đã thực hiện đề tài "Xây dựng phần mềm quản lý thư viện". Đề tài nhằm mục tiêu giải quyết các bất cập trong quản lý truyền thống bằng giải pháp tin học hóa toàn diện.

Mục tiêu nghiên cứu

Văn bản xác định 4 mục tiêu cụ thể:

  1. Xây dựng phần mềm quản lý thư viện với giao diện thân thiện, trực quan và dễ sử dụng cho người vận hành.
  2. Tự động hóa các nghiệp vụ thư viện chính: quản lý bạn đọc, quản lý danh mục sách, quy trình mượn/trả sách và công tác thống kê báo cáo.
  3. Hỗ trợ tính năng tra cứu, tìm kiếm sách nhanh chóng theo nhiều tiêu chí đa dạng như mã sách, tên sách, tên tác giả, thể loại.
  4. Kiểm soát chặt chẽ quá trình mượn – trả nhằm hạn chế tối đa nguy cơ thất lạc, mất mát tài sản của thư viện.

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

  • Đối tượng nghiên cứu: Quy trình nghiệp vụ thư viện trường học bao gồm quản lý hồ sơ độc giả (sinh viên), quản lý danh mục sách, quản lý lưu thông tài liệu (lập phiếu mượn, phiếu trả), xử lý vi phạm (lập và thu phí phiếu phạt), cùng hệ thống thống kê báo cáo liên quan.
  • Phạm vi triển khai: Ứng dụng phần mềm được thiết kế để triển khai cục bộ (nội bộ) trong phạm vi các cơ sở giáo dục (trường đại học, cao đẳng hoặc trung học phổ thông), phục vụ trực tiếp cho đối tượng người dùng chính là cán bộ thư viện (thủ thư) và đáp ứng nhu cầu sử dụng của người dùng cuối (sinh viên, giáo viên).
  • Thời gian thực hiện: Đồ án hoàn thành vào tháng 05/2025 bởi nhóm sinh viên lớp học phần 68IT3 dưới sự hướng dẫn của giảng viên Lê Đức Quang.

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

Đồ án được xây dựng dựa trên phương pháp luận phân tích và thiết kế hệ thống hướng đối tượng (Object-Oriented Analysis and Design - OOAD) kết hợp cùng ngôn ngữ mô hình hóa thống nhất (UML).

Khung lý thuyết và mô hình kỹ thuật

Nghiên cứu áp dụng các nguyên lý cốt lõi của môn học Lập trình hướng đối tượng (OOP) nhằm mô hình hóa thế giới thực vào các thực thể phần mềm:

  • Mô hình hóa ca sử dụng (Use Case Modeling): Xác định các tác nhân (Actor), ranh giới hệ thống, các luồng sự kiện chính (Basic Flow), luồng thay thế (Alternative Flow) và luồng ngoại lệ (Exception Flow).
  • Mô hình hóa cấu trúc tĩnh (Class Diagram): Phân chia thành biểu đồ lớp tổng thể và biểu đồ lớp thực thể nhằm mô tả cấu trúc dữ liệu, các thuộc tính, phương thức và mối quan hệ giữa các đối tượng trong cơ sở dữ liệu.
  • Mô hình hóa hành vi động (Activity Diagram & Sequence Diagram): Mô tả chi tiết luồng xử lý nghiệp vụ tuần tự và sự tương tác qua lại giữa các đối tượng trong từng chức năng cụ thể.

Phương pháp nghiên cứu và tổ chức thực hiện

Phương pháp nghiên cứu kết hợp giữa phân tích nghiệp vụ thực tế, thiết kế cấu trúc phần mềm, lập trình chức năng và kiểm thử đơn vị trên giao diện người dùng. Việc tổ chức công việc được phân công rõ ràng giữa 4 thành viên nhóm nghiên cứu:

Thành viên Mã sinh viên Phân công trách nhiệm chuyên môn
Đoàn Đức Huy (Trưởng nhóm) 1502168 - Tạo thực thể cho cơ sở dữ liệu (Database Entities)
- Lập trình các chức năng thêm, sửa, xóa, xuất tệp tin
- Thực hiện kiểm thử và bảo trì hệ thống
- Xây dựng biểu đồ Hoạt động (Activity Diagram) và biểu đồ Lớp (Class Diagram)
- Soạn thảo đặc tả Use Case
Trần Quang Tiến 0025968 - Xây dựng biểu đồ Tuần tự (Sequence Diagram)
- Thiết kế giao diện người dùng (UI)
- Lập trình chức năng tìm kiếm dữ liệu
- Tạo dữ liệu mẫu cho cơ sở dữ liệu
Nguyễn Quang Huy 0014068 - Xây dựng biểu đồ Lớp (Class Diagram)
- Thiết kế giao diện thống kê
- Lập trình phân hệ đăng nhập và xác thực (Login)
Bùi Tiến Đạt 0007168 - Xây dựng biểu đồ Use Case
- Thiết kế các giao diện quản lý
- Lập trình giao diện chính của hệ thống
- Tổng hợp và biên soạn báo cáo đồ án

Thiết kế và triển khai

Hệ thống được thiết kế hướng tới việc chuẩn hóa dữ liệu, đảm bảo tính toàn vẹn thông tin và hỗ trợ xuất nhập tệp tin phục vụ công tác lưu trữ.

Cấu trúc thực thể và quan hệ dữ liệu

Các thực thể dữ liệu chính được quản lý trong hệ thống bao gồm:

  • Thực thể Sinh viên / Bạn đọc: Lưu trữ thông tin sinh viên của nhà trường gồm mã sinh viên, họ tên và các thông tin định danh phục vụ cấp quyền bạn đọc.
  • Thực thể Sách: Quản lý thông tin chi tiết về từng đầu sách gồm mã sách, tên sách, tác giả, thể loại, nhà xuất bản, giá tiền và trạng thái lưu thông (phân định rõ giữa trạng thái "chưa mượn" và "đã mượn").
  • Thực thể Phiếu mượn: Lưu trữ mã phiếu mượn, thông tin mã bạn đọc, danh sách các mã sách được mượn, thời gian mượn tương ứng của từng quyển và trạng thái của phiếu.
  • Thực thể Phiếu trả: Liên kết trực tiếp với phiếu mượn, ghi nhận danh sách sách hoàn trả, thời gian trả thực tế và tình trạng vật lý của sách khi nhận lại.
  • Thực thể Phiếu phạt: Ghi nhận các trường hợp phát sinh vi phạm quy chế (sách bị hư hỏng hoặc mượn quá hạn), lưu trữ mức độ thiệt hại, số tiền phạt tương ứng và trạng thái thanh toán ("chưa thanh toán" hoặc "đã thanh toán").

Quy trình nghiệp vụ và các ràng buộc dữ liệu

Hệ thống thiết lập các quy tắc nghiệp vụ chặt chẽ thông qua các điều kiện tiên quyết và kiểm tra lỗi ngoại lệ:

  1. Ràng buộc xóa bạn đọc: Hệ thống từ chối xóa thông tin độc giả nếu tài khoản đó đang có sách chưa trả (tồn tại trong phiếu mượn) hoặc đang có nghĩa vụ tài chính chưa hoàn thành (tồn tại trong danh sách phiếu phạt chưa thanh toán).
  2. Ràng buộc trạng thái sách: Một cuốn sách chỉ có thể được lập phiếu mượn, sửa thông tin hoặc xóa khỏi hệ thống khi đang ở trạng thái "chưa mượn". Khi sách đã được đưa vào phiếu mượn hợp lệ, hệ thống tự động khóa trạng thái và cập nhật thành "đã mượn".
  3. Cơ chế tự động hóa phiếu phạt: Khi thủ thư tiếp nhận trả sách tại phân hệ phiếu trả, nếu sách được đánh dấu tình trạng là "Hư hỏng" hoặc thời gian trả là "Quá hạn", hệ thống sẽ tự động khởi tạo bản ghi chuyển tiếp vào danh sách phiếu phạt chưa thanh toán để phục vụ việc xử lý bồi thường.
  4. Cơ chế hoàn nguyên dữ liệu (Rollback nghiệp vụ):
    • Khi xóa một phiếu mượn: Hệ thống tự động chuyển trạng thái các đầu sách trong phiếu từ "đã mượn" quay trở lại "chưa mượn".
    • Khi xóa một phiếu trả: Phiếu mượn tương ứng được chuyển ngược về trạng thái "chưa trả", đồng thời trạng thái sách được cập nhật lại thành "đã mượn".
    • Khi xóa một phiếu phạt đã thanh toán: Phiếu trả liên quan sẽ được khôi phục về trạng thái "chưa thanh toán" và đưa trở lại danh sách chờ xử lý.

Tương tác tệp tin ngoại vi

Phần mềm tích hợp khả năng làm việc với các định dạng văn phòng tiêu chuẩn:

  • Tệp Excel (.xlsx): Hỗ trợ chức năng đọc dữ liệu (Ghi file vào hệ thống) từ danh sách sinh viên hoặc danh mục sách có sẵn; hỗ trợ trích xuất (Xuất file) danh sách bạn đọc đã đăng ký và toàn bộ kho sách ra bảng tính Excel.
  • Tệp PDF (.pdf): Tự động kết xuất và xuất bản biểu mẫu in ấn cho các chứng từ nghiệp vụ bao gồm Phiếu mượn, Phiếu trả và Phiếu phạt sau khi hoàn tất giao dịch.

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

Chương 1: Đặt vấn đề và mô tả bài toán

Chương 1 làm rõ sự cần thiết của việc chuyển đổi phương thức quản lý thư viện từ thủ công sang tự động hóa trên máy tính. Tác giả chỉ ra các điểm nghẽn của quy trình cũ và xác định phạm vi tin học hóa nội bộ trong trường học. Nội dung chương tập trung định nghĩa chi tiết các yêu cầu chức năng nghiệp vụ của hệ thống:

  • Phân hệ quản lý sinh viên: Đăng ký bạn đọc mới dựa trên mã số sinh viên, xóa bạn đọc, trích xuất dữ liệu ra bảng tính Excel.
  • Phân hệ quản lý sách: Tiếp nhận sách mới, chỉnh sửa thông tin thư mục, xóa sách, kiểm soát trạng thái khả dụng, nhập/xuất kho sách qua tệp Excel, tìm kiếm nâng cao theo nhiều thuộc tính.
  • Phân hệ quản lý phiếu mượn: Lập phiếu mượn đa sách cho độc giả, kiểm tra trạng thái khả dụng của tài liệu, lưu thông tin vào cơ sở dữ liệu và xuất phiếu PDF/Excel.
  • Phân hệ quản lý phiếu trả: Tra cứu phiếu mượn gốc, lập phiếu tiếp nhận sách trả, kiểm tra hiện trạng hư hại/quá hạn để chuyển tiếp xử lý phạt, kết xuất tệp PDF.
  • Phân hệ quản lý phiếu phạt: Tra cứu các vi phạm mượn trả, cập nhật mức độ bồi hoàn, thực hiện xác nhận thu phí và xuất biên lai PDF.
  • Phân hệ thống kê: Cung cấp số liệu tổng quan về tổng số lượng sách, số sách đang sẵn sàng phục vụ và số lượng sách đang lưu hành bên ngoài.

Chương 2: Phân tích hệ thống

Chương 2 là phần trọng tâm về kỹ thuật phần mềm, mô hình hóa toàn bộ cấu trúc và hành vi hệ thống thông qua hệ thống biểu đồ UML và tài liệu đặc tả:

  • Mô hình hóa Use Case: Trình bày biểu đồ Use Case tổng thể cùng các biểu đồ phân rã chức năng (Quản lý bạn đọc, Quản lý sách, Quản lý phiếu trả). Đi kèm là 14 bảng đặc tả Use Case chi tiết (Use Case ID từ 1 đến 6.2) thể hiện rõ ràng: Tên Use Case, Độ ưu tiên ("Phải có"), Tác nhân ("Thủ thư"), Tiền điều kiện, Hậu điều kiện, Luồng sự kiện chính, Luồng thay thế và các Luồng ngoại lệ.
  • Mô hình hóa Lớp (Class Diagram): Cung cấp Biểu đồ lớp tổng thể (Hình 2.1) và Biểu đồ lớp thực thể (Hình 2.2) xác định các thuộc tính, mối quan hệ kết tập, phụ thuộc giữa các thực thể phần mềm.
  • Mô hình hóa Hoạt động (Activity Diagram): Hệ thống hóa 13 sơ đồ hoạt động (Hình 3.1 đến Hình 3.13) biểu diễn logic rẽ nhánh cho từng tác vụ: Đăng nhập, Thêm/Xóa bạn đọc, Thêm/Sửa/Xóa sách, Thêm/Sửa/Xóa phiếu mượn, Thêm/Sửa/Xóa phiếu trả, Thêm/Sửa/Xóa/Thanh toán phiếu phạt.
  • Mô hình hóa Tuần tự (Sequence Diagram): Cung cấp 13 sơ đồ tuần tự (Hình 4.1 đến Hình 4.13) mô tả dòng thông điệp trao đổi giữa giao diện (UI), bộ điều khiển (Controller) và thực thể cơ sở dữ liệu theo thời gian thực.

Chương 3: Hướng dẫn sử dụng và kiểm thử

Chương 3 trình bày các bước vận hành thực tế của phần mềm thông qua giao diện đồ họa cùng quy trình kiểm thử chức năng:

  • Đăng nhập hệ thống: Xác thực tài khoản và mật khẩu của cán bộ thủ thư; điều hướng về màn hình Quản lý sinh viên sau khi đăng nhập thành công.
  • Vận hành phân hệ Quản lý sinh viên: Hướng dẫn nạp danh sách sinh viên từ tệp Excel vào cơ sở dữ liệu (chức năng Ghi Excel), tra cứu mã sinh viên để đăng ký bạn đọc, xóa bạn đọc khỏi hệ thống và xuất báo cáo bạn đọc ra file Excel.
  • Vận hành phân hệ Quản lý sách: Thao tác biểu mẫu thêm sách mới với đầy đủ các trường thông tin (mã, tên, tác giả, thể loại, NXB, giá tiền), chọn dòng để cập nhật/sửa hoặc xóa sách; thực hiện các thao tác nhập và xuất kho sách với file Excel.
  • Vận hành phân hệ Quản lý Phiếu mượn: Giao diện lập phiếu mượn, nhập mã độc giả, thêm danh sách mã sách cần mượn và hoàn tất giao dịch.

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

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

  1. Thiết kế và cài đặt hoàn chỉnh phần mềm quản lý thư viện trường học dựa trên các nguyên lý của lập trình hướng đối tượng.
  2. Xây dựng bộ tài liệu phân tích thiết kế phần mềm chi tiết với 14 đặc tả ca sử dụng, 2 biểu đồ lớp, 13 biểu đồ hoạt động và 13 biểu đồ tuần tự.
  3. Tự động hóa hoàn toàn chu trình quản lý mượn - trả sách, đồng bộ trạng thái sách tức thời giữa "chưa mượn" và "đã mượn".
  4. Thiết lập thành công cơ chế phát hiện và luân chuyển tự động các trường hợp vi phạm (trả sách trễ hạn hoặc hư hỏng tài liệu) sang phân hệ quản lý phiếu phạt.
  5. Tích hợp chức năng trao đổi dữ liệu hai chiều với Microsoft Excel và xuất báo cáo, chứng từ nghiệp vụ chuẩn định dạng PDF.

Đóng góp thực tiễn của đồ án

Đồ án mang lại giải pháp khắc phục triệt để các hạn chế của phương thức quản lý thư viện truyền thống bằng sổ sách hoặc bảng tính đơn lẻ. Hệ thống giúp giảm thiểu thời gian tra cứu, loại bỏ các sai sót trong việc ghi nhận mượn trả, kiểm soát chặt chẽ việc bồi hoàn tài sản thư viện bị hư hại và nâng cao hiệu suất làm việc của cán bộ thư viện.


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

  • Hạn chế: Hệ thống được thiết kế theo mô hình triển khai nội bộ, tập trung vào một tác nhân duy nhất là cán bộ thư viện (Thủ thư). Phần mềm chưa mở rộng cổng thông tin tương tác trực tuyến độc lập dành riêng cho người dùng cuối (sinh viên, giảng viên) tự tra cứu hoặc đăng ký mượn tài liệu từ xa.
  • Hướng phát triển: Mở rộng hệ thống thành mô hình Web hoặc ứng dụng đa nền tảng; bổ sung phân quyền người dùng (bạn đọc tự đăng nhập tra cứu kho sách, theo dõi lịch sử mượn trả cá nhân); tích hợp các cổng thanh toán điện tử phục vụ thu phí phạt trực tuyến; mở rộng chức năng quản lý thư viện liên chi nhánh.

Giá trị tham khảo

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

  • Sinh viên ngành Công nghệ thông tin, Kỹ thuật phần mềm: Nắm bắt phương pháp luận phân tích và thiết kế hệ thống hướng đối tượng chuẩn mực; cách thức chuyển đổi từ yêu cầu bài toán thực tế sang hệ thống biểu đồ UML (Use Case, Class, Activity, Sequence Diagram).
  • Người thực hiện đồ án môn học hoặc khóa luận tốt nghiệp: Tham khảo cấu trúc trình bày một báo cáo kỹ thuật hoàn chỉnh, cách viết bảng đặc tả Use Case với đầy đủ các luồng ngoại lệ và quy tắc toàn vẹn dữ liệu nghiệp vụ mượn - trả.

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

1. Hệ thống quy định những điều kiện nào để có thể xóa một bạn đọc khỏi cơ sở dữ liệu?

Theo đặc tả Use Case 2.2 (Xóa bạn đọc), hệ thống chỉ cho phép xóa bạn đọc khi đáp ứng đủ các tiền điều kiện: bạn đọc có tồn tại trong hệ thống, hiện không đứng tên trong bất kỳ phiếu mượn nào chưa hoàn tất, và không tồn tại trong danh sách phiếu phạt chưa thanh toán. Nếu vi phạm các điều kiện trên, hệ thống sẽ chặn thao tác và thông báo lỗi.

2. Quy trình xử lý tự động khi phát sinh sách bị hư hỏng hoặc trả quá hạn diễn ra như thế nào?

Khi thủ thư thực hiện nghiệp vụ tiếp nhận trả sách (Use Case 4.1), nếu sách được đánh dấu tình trạng là "Hư hỏng" hoặc thời gian trả là "Quá hạn", hệ thống sẽ tự động chuyển thông tin bản ghi này vào danh sách phiếu phạt chưa thanh toán. Thủ thư sau đó sẽ truy cập phân hệ quản lý phiếu phạt để xác định mức độ thiệt hại, tính toán tiền phạt và thực hiện xác nhận thanh toán.

3. Khi thủ thư thực hiện xóa một phiếu trả thì các dữ liệu liên quan sẽ biến động ra sao?

Theo đặc tả Use Case 6.1 (Xóa phiếu trả), khi xóa một phiếu trả khỏi hệ thống, cơ chế hoàn nguyên sẽ được kích hoạt: phiếu trả bị xóa, phiếu mượn gốc được cập nhật trạng thái quay trở lại là "chưa trả", và trạng thái của các cuốn sách trong phiếu được cập nhật lại thành "đã mượn".

4. Phần mềm hỗ trợ xuất và nhập dữ liệu với những định dạng tệp tin nào?

Hệ thống hỗ trợ làm việc với hai định dạng tệp tin chính:

  • Định dạng Excel (.xlsx): Dùng để ghi (nhập) dữ liệu danh sách sinh viên và kho sách vào hệ thống; xuất danh sách bạn đọc đã đăng ký và toàn bộ danh mục sách ra bảng tính.
  • Định dạng PDF (.pdf): Dùng để xuất các biểu mẫu in ấn chứng từ nghiệp vụ gồm Phiếu mượn, Phiếu trả và Phiếu phạt.

5. Việc phân công nhiệm vụ kỹ thuật trong nhóm sinh viên được thực hiện như thế nào?

Nhóm gồm 4 thành viên với vai trò chuyên biệt: Đoàn Đức Huy làm trưởng nhóm phụ trách thực thể cơ sở dữ liệu, code nghiệp vụ thêm/sửa/xóa/xuất file, kiểm thử và vẽ sơ đồ Activity/Class/Use Case spec; Trần Quang Tiến vẽ Sequence Diagram, thiết kế UI, code tìm kiếm và tạo dữ liệu mẫu; Nguyễn Quang Huy vẽ Class Diagram, thiết kế giao diện thống kê và code module đăng nhập; Bùi Tiến Đạt vẽ Use Case Diagram, thiết kế UI quản lý, code giao diện chính và viết báo cáo.


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 Trường Đại học Xây dựng Hà Nội đã giải quyết trọn vẹn bài toán tự động hóa quy trình quản lý tài liệu và độc giả trong môi trường giáo dục. Thông qua việc áp dụng chặt chẽ các nguyên lý lập trình hướng đối tượng và công cụ mô hình hóa UML, nhóm tác giả đã xây dựng được một hệ thống phần mềm có tính toàn vẹn dữ liệu cao, giao diện trực quan và tích hợp đầy đủ các chức năng mượn, trả, xử lý phạt và kết xuất tệp tin văn phòng. Đây là sản phẩm học thuật có cấu trúc kỹ thuật rõ ràng, mang tính ứng dụng thực tiễn cao cho công tác quản trị thư viện nội bộ.