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

Trong công tác quản lý thư viện hiện đại, việc chuyển đổi từ quy trình mượn trả truyền thống sang mô hình trực tuyến đóng vai trò then chốt nhằm tối ưu hóa thời gian xử lý thủ tục, nâng cao khả năng tra cứu sách và tạo không gian trao đổi học thuật cho độc giả. Đồ án "Phân tích thiết kế hệ thống thông tin - Tài liệu thiết kế đề tài: Thư viện mượn sách trực tuyến" được thực hiện tại Viện Công nghệ Thông tin và Truyền thông, Trường Đại học Bách khoa Hà Nội dưới sự hướng dẫn của TS. Nguyễn Nhật Quang.

Tác giả xác định các nhiệm vụ nghiên cứu trọng tâm trong tài liệu bao gồm:

  1. Mô hình hóa cấu trúc hệ thống thông qua việc xác định các tác nhân và phân rã các nhóm ca sử dụng (Use Case).
  2. Mô hình hóa sự tương tác giữa các đối tượng để làm rõ luồng xử lý của từng chức năng nghiệp vụ.
  3. Xây dựng kiến trúc tổng thể của hệ thống theo mô hình phân tầng.
  4. Thiết kế chi tiết các lớp đối tượng thuộc các gói Model (Mô hình), Control (Điều khiển) và View (Giao diện).
  5. Thiết kế cơ sở dữ liệu quan hệ chi tiết bao gồm danh sách bảng, cấu trúc trường, kiểu dữ liệu và các ràng buộc toàn vẹn.
  6. Xây dựng nguyên mẫu giao diện người dùng tương ứng với từng tác nhân trong hệ thống.

Đối tượng nghiên cứu của đề tài là hệ thống thông tin quản lý mượn trả sách và diễn đàn trao đổi trực tuyến. Phạm vi nghiên cứu tập trung vào giai đoạn phân tích và thiết kế chi tiết hệ thống phần mềm, phân chia theo 4 nhóm tác nhân chính: Khách vãng lai, Người dùng (Độc giả), Admin quản lý sách và Admin quản lý tài khoản.


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

Đề tài áp dụng phương pháp phân tích và thiết kế hướng đối tượng (OOAD - Object-Oriented Analysis and Design) kết hợp ngôn ngữ mô hình hóa thống nhất (UML) và mô hình kiến trúc phân tầng MVC (Model - View - Controller).

  • Khung kiến trúc: Hệ thống được thiết kế theo mô hình 3 tầng phân tách rõ ràng trách nhiệm: tầng hiển thị (View), tầng điều khiển logic nghiệp vụ (Control) và tầng dữ liệu/thực thể (Model).
  • Phương pháp phân tích ca sử dụng và tương tác: Phân rã chức năng theo vai trò tác nhân, thiết lập các sơ đồ tương tác nhằm định nghĩa phương thức và luồng truyền thông điệp giữa các tầng.
  • Phương pháp thiết kế dữ liệu: Chuẩn hóa cơ sở dữ liệu quan hệ, xác định khóa chính (PK), khóa ngoại (FK) và các ràng buộc dữ liệu nhằm đảm bảo tính toàn vẹn thông tin mượn trả, tài khoản và bài đăng.
  • Nguồn dữ liệu: Đặc tả yêu cầu hệ thống thông tin quản lý thư viện đại học và quy trình nghiệp vụ quản lý mượn trả sách thực tế.

Thiết kế và triển khai

Hệ thống được thiết kế hoàn chỉnh từ kiến trúc tổng thể, hệ thống lớp chi tiết đến cấu trúc cơ sở dữ liệu quan hệ.

1. Kiến trúc phân tầng và thiết kế hướng đối tượng

Kiến trúc hệ thống chia thành 3 gói chính với sự tương tác chặt chẽ:

  • Gói Model (11 lớp thực thể): Đại diện cho dữ liệu và trạng thái của hệ thống, bao gồm TaiKhoan (quản lý thông tin cá nhân, cấp tài khoản, số lần vi phạm), Sach (mã sách, tên sách, tác giả, thể loại, giá tiền, số lượng, tình trạng), PhieuMuon (mã phiếu, danh sách mượn, ngày mượn, ngày trả, tình trạng), LichSuMuon (danh sách phiếu mượn, mã QR), DSSach (danh sách sách của người dùng), DanhGia (mức độ đánh giá từ 1-5 sao, bình luận), BaiDang (tiêu đề, nội dung, ảnh, lượt like, danh sách bình luận), BinhLuan (nội dung, mã người dùng, mã bài đăng), BaoCao (nội dung, điều luật vi phạm, tình trạng duyệt), QuyDinh (danh sách quy định diễn đàn), và ThongKeDienDan (tổng số báo cáo, số tài khoản tham gia).
  • Gói Control (12 lớp điều khiển): Đảm nhiệm xử lý logic nghiệp vụ và điều phối dữ liệu giữa View và Model:
    • DieuKhienDangKy, DieuKhienDangNhap: Kiểm tra tính hợp lệ dữ liệu, xác thực mật khẩu, xử lý quên mật khẩu và đổi mật khẩu.
    • DieuKhienDuyetSach, DieuKhienChiTietSach: Xử lý tìm kiếm đa tiêu chí, sắp xếp sách, hiển thị chi tiết và thêm sách vào danh sách yêu thích/danh sách mượn.
    • DieuKhienQuanLyMuonSach, DieuKhienQuanLyDSYeuThich, DieuKhienQuanLyLichSuMuon: Xử lý tạo phiếu mượn, cảnh báo hết hạn, gia hạn mượn sách, đánh giá sách và gửi yêu cầu tạo mã QR tới hệ thống ngoài.
    • DieuKhienTruyCapDienDan: Xử lý đăng bài, bình luận và gửi báo cáo bài viết vi phạm.
    • DK-QuanLySach, DK-QuanLyMuonTra: Xử lý thêm, cập nhật, ẩn/hiện sách, xác nhận mượn/trả sách thủ công và xác nhận qua mã QR.
    • DieuKhienQuanLyTK, DieuKhienQuanLyDienDan: Thống kê tài khoản, tìm kiếm, khóa/mở khóa tài khoản, nâng cấp tài khoản, quản lý quy định và xử lý ẩn bình luận vi phạm.
  • Gói View (36 lớp giao diện): Được phân chia tương ứng với 4 nhóm tác nhân: Khách (4 giao diện), Người dùng (12 giao diện), Admin quản lý sách (13 giao diện) và Admin quản lý tài khoản (7 giao diện).

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

Cơ sở dữ liệu của hệ thống gồm 6 bảng dữ liệu chính, được thiết kế chi tiết về kiểu dữ liệu và ràng buộc:

Tên bảng Trường khóa chính (PK) Trường khóa ngoại (FK) Các trường dữ liệu chính Ràng buộc đáng chú ý
Sach BookID (Varchar(10)) Không có TenSach, TacGia, TheLoai, GiaTien, SoLuong, TinhTrang Không cho phép Null ở mọi trường
TaiKhoan UserID (Varchar(10)) Không có TenTaiKhoan, Email, Diachi, Anhcmnd, SoDienThoai, TaiKhoanCap, TinhTrang Phân cấp tài khoản cấp 1 và cấp 2 (TaiKhoanCap)
PhieuMuon PhieuMuonID (Varchar(10)) UserID, BookID NgayMuon, NgayTra, TinhTrang Liên kết giữa người dùng và sách mượn
BaiDang BaiDangID (Varchar(10)) UserID TieuDe, NoiDung, Anh, NgayDang, LuotThich Cho phép nội dung dài 1000 ký tự
BinhLuan BinhLuanID (Varchar(10)) BaiDangID, UserID NoiDung, NgayDang Liên kết bình luận với bài đăng và tài khoản
BaoCao BaoCaoID (Varchar(10)) BaiDangID, UserID NoiDung, NgayGui, LoaiViPham, TinhTrang Trường BaiDangID có ràng buộc Unique

3. Giải pháp công nghệ và tính năng đặc thù

  • Tích hợp mã QR trong mượn trả: Hệ thống tích hợp tính năng tạo mã QR cho phiếu mượn thông qua phương thức TaoQR trong lớp DieuKhienQuanLyLichSuMuon. Thủ thư có thể xác nhận mượn hoặc trả sách nhanh chóng thông qua các giao diện W-XacNhanMuonSachQR và W-XacNhanTraSachQR.
  • Cơ chế phân cấp tài khoản độc giả: Hệ thống phân chia người dùng thành tài khoản cấp 1 và cấp 2. Admin tài khoản có quyền nâng cấp tài khoản thông qua phương thức nangCapTK sau khi kiểm tra thông tin định danh (ảnh CMND lưu trữ tại trường Anhcmnd).
  • Kiểm soát vi phạm và diễn đàn tương tác: Thiết kế cho phép người dùng báo cáo vi phạm (LoaiViPham, NoiDungViPham). Admin diễn đàn có công cụ thống kê số lần vi phạm (thongKeBCViPham), ẩn bình luận (anBinhLuan) và thực hiện khóa tài khoản vi phạm nhiều lần (khoaTK).

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

Chương 1: Giới thiệu

Chương này xác định mục đích của tài liệu là cung cấp bản mô tả thiết kế toàn diện cho hệ thống mượn trả sách trực tuyến, làm rõ kiến trúc phân tầng, chi tiết hoạt động của từng mô-đun và cấu trúc cơ sở dữ liệu. Chương 1 cũng trình bày bố cục tài liệu gồm hai phần: Phần Giới thiệu và Phần Thiết kế hệ thống với 6 nội dung kỹ thuật cốt lõi.

Chương 2: Phân tích cấu trúc và thiết kế hệ thống

Chương 2 là nội dung trọng tâm của đồ án, bao gồm 6 mục lớn:

  • 2.1 Mô hình hóa cấu trúc hệ thống: Xác định chi tiết use case của 4 tác nhân: Khách (Đăng ký, Đăng nhập, Duyệt sách), Người dùng (Quản lý tài khoản, Duyệt sách, Diễn đàn, Mượn sách, Xem lịch sử mượn), Admin quản lý sách (Quản lý sách, Quản lý mượn trả) và Admin quản lý tài khoản (Quản lý tài khoản, Quản lý diễn đàn).
  • 2.2 Mô hình hóa sự tương tác: Xây dựng sơ đồ tuần tự thể hiện các bước gửi yêu cầu, kiểm tra dữ liệu và phản hồi giữa giao diện, bộ điều khiển và cơ sở dữ liệu cho từng use case.
  • 2.3 Kiến trúc tổng thể của hệ thống: Trình bày sơ đồ kiến trúc phân tầng của toàn hệ thống.
  • 2.4 Thiết kế chi tiết lớp: Đặc tả toàn bộ thuộc tính, kiểu dữ liệu, phạm vi truy cập (private/public), phương thức khởi tạo và các hàm xử lý của 11 lớp Model, 12 lớp Control và hệ thống lớp View.
  • 2.5 Thiết kế cơ sở dữ liệu: Trình bày sơ đồ quan hệ thực thể, danh sách 6 bảng và chi tiết từng trường thuộc tính.
  • 2.6 Thiết kế nguyên mẫu giao diện: Mô tả cấu trúc và luồng hiển thị của toàn bộ các màn hình giao diện từ trang 68 đến trang 85 của tài liệu.

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

Đồ án đã xây dựng thành công bộ tài liệu phân tích và thiết kế hệ thống thông tin hoàn chỉnh cho bài toán thư viện trực tuyến, bao gồm:

  • Đặc tả chi tiết 4 nhóm tác nhân với 11 nhóm ca sử dụng lớn.
  • Thiết kế hướng đối tượng đầy đủ gồm 11 lớp Model, 12 lớp Control và 36 lớp View.
  • Thiết kế cơ sở dữ liệu quan hệ gồm 6 bảng dữ liệu chuẩn hóa, phục vụ đầy đủ các chức năng mượn trả, đánh giá sách và quản trị diễn đàn.
  • Đề xuất quy trình mượn trả kết hợp công nghệ mã QR giúp rút ngắn thao tác đối soát thủ công tại quầy thư viện.
  • Xây dựng mô hình kiểm duyệt diễn đàn và phân cấp tài khoản người dùng gắn với xác thực CMND.

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

  • Hạn chế: Tài liệu tập trung hoàn toàn vào giai đoạn phân tích và thiết kế hệ thống (tài liệu thiết kế), chưa bao gồm mã nguồn lập trình hoàn thiện của ứng dụng, chưa có số liệu thử nghiệm thực tế và đánh giá hiệu năng khi triển khai tải lớn.
  • Hướng nghiên cứu tiếp:
    1. Hiện thực hóa hệ thống phần mềm dựa trên thiết kế chi tiết lớp và cơ sở dữ liệu đã xây dựng.
    2. Tích hợp dịch vụ API bên ngoài để tự động hóa quy trình tạo và quét mã QR.
    3. Triển khai và tối ưu hóa cơ sở dữ liệu trên hệ quản trị cơ sở dữ liệu cụ thể (như MySQL hoặc PostgreSQL).

Giá trị tham khảo

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

  • Sinh viên ngành Công nghệ thông tin, Hệ thống thông tin và Kỹ thuật phần mềm đang thực hiện bài tập lớn, đồ án môn học hoặc khóa luận tốt nghiệp về phân tích thiết kế hệ thống theo mô hình MVC.
  • Các nhà phát triển phần mềm cần tham khảo cấu trúc lớp hướng đối tượng, sơ đồ thực thể cơ sở dữ liệu cho các hệ thống quản lý thư viện, hệ thống quản lý mượn trả tài sản hoặc các nền tảng tích hợp diễn đàn cộng đồng.

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

1. Hệ thống phân chia quyền hạn của người dùng thành những nhóm tác nhân nào? Hệ thống xác định rõ 4 nhóm tác nhân: Khách (người dùng chưa đăng nhập), Người dùng (độc giả đã có tài khoản), Admin quản lý sách (thủ thư phụ trách danh mục sách và quy trình mượn trả) và Admin quản lý tài khoản (quản trị viên phụ trách người dùng, phân cấp tài khoản và diễn đàn).

2. Điểm khác biệt giữa tác nhân "Khách" và "Người dùng" khi thực hiện chức năng duyệt sách là gì? Tác nhân Khách có thể xem danh sách và xem chi tiết sách nhưng không có phương thức thêm sách vào danh sách mượn (themvaoDanhSachMuon) và thêm vào danh sách yêu thích (themVaoYeuThich). Các tính năng này chỉ khả dụng sau khi đăng nhập tài khoản Người dùng.

3. Quy trình xác nhận mượn trả sách hỗ trợ những phương thức nào? Admin quản lý sách có thể xác nhận mượn/trả sách theo hai phương thức: xác nhận thủ công truyền thống qua mã phiếu mượn (XacNhanMuonSach, TraSach) hoặc xác nhận tự động thông qua quét mã QR (XacNhanMuonSachBangQR, TraSach qua QR).

4. Cơ sở dữ liệu của hệ thống gồm những bảng nào và mối quan hệ chính ra sao? Cơ sở dữ liệu gồm 6 bảng: Sach, TaiKhoan, PhieuMuon, BaiDang, BinhLuan, và BaoCao. Trong đó, PhieuMuon là bảng trung gian liên kết giữa TaiKhoan và Sach thông qua UserID và BookID; BaiDang, BinhLuan, BaoCao liên kết với TaiKhoan qua UserID để quản lý nội dung diễn đàn.

5. Hệ thống xử lý các hành vi vi phạm trên diễn đàn như thế nào? Khi người dùng gửi báo cáo vi phạm qua giao diện GiaoDienBaoCao, thông tin được lưu vào bảng BaoCao. Admin diễn đàn sử dụng các phương thức thongKeBCViPham để xem danh sách vi phạm, anBinhLuan để ẩn bài/bình luận vi phạm và khoaTK để khóa tài khoản người dùng vi phạm nhiều lần.


Kết luận

Đồ án "Thư viện mượn sách trực tuyến" của nhóm sinh viên Trường Đại học Bách khoa Hà Nội đã cung cấp một tài liệu phân tích thiết kế hệ thống thông tin chi tiết và chặt chẽ theo mô hình hướng đối tượng và kiến trúc phân tầng MVC. Toàn bộ các yêu cầu nghiệp vụ từ quản lý danh mục sách, quy trình mượn trả tích hợp mã QR, phân cấp người dùng đến quản trị diễn đàn trao đổi đều được đặc tả đầy đủ qua hệ thống ca sử dụng, sơ đồ lớp và mô hình cơ sở dữ liệu quan hệ. Đây là tài liệu thiết kế chuẩn mực, tạo tiền đề vững chắc cho giai đoạn lập trình và triển khai phần mềm thực tế.