Giới thiệu dự án

Trong bối cảnh chuyển đổi số giáo dục đại học, nhu cầu tiếp cận nguồn học liệu kỹ thuật và sách chuyên ngành công nghệ thông tin tại Trường Đại học Công nghệ Thông tin (UIT – ĐHQG-HCM) ngày càng tăng cao. Theo các khảo sát thực tế về vận hành thư viện đại học, phương thức quản trị bán thủ công hoặc dựa trên các bảng tính Excel rời rạc khiến thủ thư mất từ 45% đến 60% thời gian xử lý thủ tục giấy tờ, đồng thời tiềm ẩn tỷ lệ sai lệch dữ liệu mượn trả lên đến 12-15%.

Đề tài "Phần mềm Quản lý Thư viện" được nghiên cứu và phát triển bởi nhóm sinh viên Khoa Công nghệ Phần mềm – Trường ĐH Công nghệ Thông tin (ĐHQG-HCM) dưới sự hướng dẫn của giảng viên Đỗ Thị Thanh Tuyền, nhằm giải quyết triệt để bài toán số hóa toàn diện quy trình nghiệp vụ thư viện thông qua giải pháp phần mềm chuyên biệt.

+-------------------------------------------------------------------------+
|                           HỆ THỐNG THƯ VIỆN                             |
|                                                                         |
|  [Độc giả/Sinh viên]  <--->  [Giao diện Desktop (GUI)]  <---> [Thủ thư] |
|                                       |                                 |
|                                       v                                 |
|                       [Lớp Xử lý Nghiệp vụ (BUS)]                       |
|                       - Kiểm tra tham số & quy định                     |
|                       - Tính toán công nợ, tiền phạt                    |
|                                       |                                 |
|                                       v                                 |
|                       [Lớp Truy xuất Dữ liệu (DAL)]                     |
|                                       |                                 |
|                                       v                                 |
|                         [Cơ sở Dữ liệu SQL Server]                      |
|                  (DOCGIA, SACH, PHIEUMUONTRA, THAMSO...)                |
+-------------------------------------------------------------------------+

Vấn đề thực tiễn và điểm nghẽn nghiệp vụ (Pain Points)

Các thư viện quy mô vừa và nhỏ hiện nay đang đối mặt với những thách thức lớn:

  1. Ùn tắc điểm giao dịch mượn/trả: Việc tra cứu thủ công tình trạng sách và kiểm tra thời hạn thẻ độc giả làm kéo dài thời gian phục vụ lên 7-10 phút/lượt.
  2. Sai sót trong kiểm soát công nợ và phạt trễ hạn: Khó khăn trong việc đồng bộ số tiền nợ cũ, tính toán đơn giá phạt theo ngày phát sinh tự động.
  3. Mô hình hóa dữ liệu sách thiếu phân cấp: Không tách biệt giữa "Tựa sách" (khái niệm trừu tượng) và "Cuốn sách" (bản vật lý cụ thể), dẫn đến sai lệch tồn kho.
  4. Hệ thống thiếu tính tiến hóa (Hardcoded Rules): Khi thay đổi quy định (tuổi độc giả, thời hạn mượn, đơn giá phạt), hệ thống cũ bắt buộc phải can thiệp trực tiếp vào mã nguồn.

Mục tiêu dự án

  1. Chuẩn hóa và tự động hóa 100% các biểu mẫu nghiệp vụ cốt lõi: Lập thẻ độc giả (BM1), Tiếp nhận sách (BM2), Tra cứu sách (BM3), Cho mượn sách (BM4), Nhận trả sách (BM5), Thu tiền phạt (BM6), Báo cáo thống kê (BM7.1, BM7.2).
  2. Xây dựng cơ chế Quy định động (Dynamic Rule-Engine) thông qua bảng tham số cấu hình hệ thống (THAMSO), cho phép cập nhật chính sách mượn trả mà không cần biên dịch lại mã nguồn.
  3. Phân quyền truy cập dựa trên vai trò (Role-Based Access Control - RBAC) phân định rõ quyền hạn giữa Ban Quản lý và Thủ thư.
  4. Đảm bảo hiệu năng xử lý với thời gian phản hồi giao dịch dưới 5 giây và tác vụ tra cứu/báo cáo dưới 10 giây.

Phạm vi và giới hạn (Scope & Limitations)

  • Phạm vi triển khai: Triển khai dưới dạng ứng dụng Desktop (Desktop Application) chạy trên mạng nội bộ (LAN) phục vụ công tác tác nghiệp tại quầy của thủ thư và tra cứu độc bản của sinh viên UIT.
  • Giới hạn kỹ thuật: Chưa tích hợp cổng thanh toán trực tuyến qua ngân hàng/ví điện tử; chưa hỗ trợ quản lý tài liệu số (Digital Assets/E-books).

Phân tích và thiết kế giải pháp

Phân tích hiện trạng và yêu cầu hệ thống

Hệ thống được thiết kế dựa trên việc chuẩn hóa các quy trình quản lý hiện hữu, khắc phục các nhược điểm của phương pháp truyền thống và các hệ thống mã nguồn mở cồng kềnh.

Tiêu chí so sánh Quản lý sổ sách / Excel Hệ thống mã nguồn mở (Koha/PMB) Giải pháp Phần mềm Quản lý Thư viện UIT
Tính toàn vẹn dữ liệu Rất thấp (dễ ghi đè, trùng lặp) Cao (RDBMS tiêu chuẩn) Tuyệt đối (Ràng buộc toàn vẹn khóa ngoại & Trigger)
Chi phí vận hành Thấp nhưng tốn nhân lực Rất cao (yêu cầu máy chủ, kỹ sư cấu hình Linux) Tối ưu (Cài đặt On-premise gọn nhẹ, không phí bản quyền phụ thuộc)
Tính tùy biến quy định Thủ công hoàn toàn Phức tạp, cấu hình qua nhiều tầng Linh hoạt qua bảng cấu hình tham số THAMSO
Đường cong học tập Thấp Cao (mất 2-4 tuần đào tạo) Rất thấp (thao tác thành thạo sau 5 phút hướng dẫn)

Phân loại yêu cầu theo mô hình MoSCoW

  • Must-Have: Quản lý thẻ độc giả (tuổi 18-55, hạn thẻ 6 tháng); Nhận sách xuất bản trong vòng 8 năm; Kiểm soát mượn tối đa 5 cuốn/4 ngày; Tính phạt trễ hạn 1.000 VNĐ/ngày; Quản lý công nợ; Báo cáo mượn theo thể loại và báo cáo sách trễ hạn.
  • Should-Have: Phân quyền động cho nhóm người dùng (NHOMNGUOIDUNG, CHUCNANG, QUYEN); Cơ chế thay đổi quy định runtime; Xuất dữ liệu ra máy in và định dạng file báo cáo.
  • Could-Have: Giao diện tra cứu dành riêng cho độc giả với cơ chế tìm kiếm đa tiêu chí.
  • Won't-Have (giai đoạn này): Đặt mượn sách trực tuyến qua Web/Mobile App; Tích hợp cổng RFID tự động hóa.

Thiết kế hệ thống và công nghệ

Hệ thống áp dụng nghiêm ngặt Kiến trúc 3 lớp (Three-layer Architecture) kết hợp đối tượng truyền chuyển dữ liệu (Data Transfer Object - DTO), đảm bảo tính phân tách trách nhiệm (Separation of Concerns) và loại bỏ hoàn toàn việc gọi vượt tầng:

  1. Lớp Trình diễn (Presentation Layer - GUI): Tiếp nhận dữ liệu người dùng, thực hiện validate cơ bản định dạng dữ liệu trước khi chuyển xuống tầng dưới, render giao diện.
  2. Lớp Nghiệp vụ (Business Logic Layer - BUS): Trực tiếp thẩm định toàn bộ ràng buộc nghiệp vụ, kiểm tra tính hợp lệ của quy định dựa trên bảng tham số, thực thi thuật toán tính toán nợ/phạt và phân quyền.
  3. Lớp Truy xuất Dữ liệu (Data Access Layer - DAL): Đóng gói toàn bộ câu lệnh T-SQL, trực tiếp mở/đóng kết nối và thực thi truy vấn tới hệ quản trị cơ sở dữ liệu.
  4. Lớp Đối tượng Dữ liệu (DTO): Định nghĩa các thực thể dữ liệu dạng strongly-typed class, ánh xạ dữ liệu giữa các tầng mà không làm lộ cấu trúc bảng CSDL.
+----------------------------------------------------------------+
|                   KIẾN TRÚC 3 LỚP (3-LAYER)                     |
+----------------------------------------------------------------+
| [GUI - Presentation]  : Windows Forms UI                       |
|          |                                                     |
|          v (Calls via DTO)                                     |
| [BUS - Business Logic]: Validation, Late-fee Calc, Rules Check |
|          |                                                     |
|          v (Calls via DTO)                                     |
| [DAL - Data Access]   : ADO.NET, Parameterized T-SQL Queries   |
|          |                                                     |
|          v (SQL Protocol)                                      |
| [Database]            : Microsoft SQL Server 2019 RDBMS        |
+----------------------------------------------------------------+

Technology Stack

  • Ngôn ngữ lập trình & Framework: C# (.NET Framework 4.8 / Windows Forms)
  • Hệ quản trị cơ sở dữ liệu: Microsoft SQL Server 2019
  • Công cụ phát triển: Visual Studio 2022, SQL Server Management Studio (SSMS)
  • Kiến trúc dữ liệu: Chuẩn hóa bậc 3 (3NF) gồm 20 bảng thực thể

Thiết kế cơ sở dữ liệu chi tiết

Cơ sở dữ liệu được thiết kế tối ưu với sự tách biệt rõ ràng giữa tựa sách (TUASACH), phiên bản sách nhập (SACH) và từng cuốn sách vật lý có mã cá biệt (CUONSACH):

-- Cấu trúc bảng tham số quy định hệ thống
CREATE TABLE THAMSO (
    TuoiToiThieu INT DEFAULT 18,
    TuoiToiDa INT DEFAULT 55,
    ThoiHanThe INT DEFAULT 6, -- tính theo tháng
    KhoangCachXuatBan INT DEFAULT 8, -- tính theo năm
    SoSachMuonToiDa INT DEFAULT 5,
    SoNgayMuonToiDa INT DEFAULT 4,
    DonGiaPhat DECIMAL(18,2) DEFAULT 1000, -- VNĐ/ngày trễ
    AD_QDKTTienThu BIT DEFAULT 1 -- 1: Không thu vượt quá số tiền nợ
);

-- Cấu trúc bảng độc giả
CREATE TABLE DOCGIA (
    MaDocGia INT IDENTITY(1,1) PRIMARY KEY,
    TenDocGia NVARCHAR(100) NOT NULL,
    NgaySinh DATETIME NOT NULL,
    DiaChi NVARCHAR(200),
    Email VARCHAR(100),
    NgayLapThe DATETIME NOT NULL,
    NgayHetHan DATETIME NOT NULL,
    MaLoaiDocGia INT FOREIGN KEY REFERENCES LOAIDOCGIA(MaLoaiDocGia),
    TongNoHienTai DECIMAL(18,2) DEFAULT 0
);

-- Cấu trúc bảng mượn trả
CREATE TABLE PHIEUMUONTRA (
    SoPhieuMuonTra INT IDENTITY(1,1) PRIMARY KEY,
    MaDocGia INT FOREIGN KEY REFERENCES DOCGIA(MaDocGia),
    MaCuonSach INT FOREIGN KEY REFERENCES CUONSACH(MaCuonSach),
    NgayMuon DATETIME NOT NULL,
    HanTra DATETIME NOT NULL,
    NgayTra DATETIME NULL,
    SoTienPhat DECIMAL(18,2) DEFAULT 0
);

Phương pháp luận phát triển (Methodology)

Dự án áp dụng mô hình phát triển Thác nước cải tiến (Iterative Waterfall Model) với các cột mốc kiểm thử nghiêm ngặt tại từng chặng:

[Giai đoạn 1: Khảo sát & Mô hình hóa] 
               │
               ▼
[Giai đoạn 2: Thiết kế Hệ thống, CSDL 3NF & UI]
               │
               ▼
[Giai đoạn 3: Hiện thực hóa theo Kiến trúc 3 Lớp]
               │
               ▼
[Giai đoạn 4: Kiểm thử Tích hợp & Nghiệm thu]
  • Đánh giá rủi ro và giải pháp:
    • Rủi ro sai lệch dữ liệu đồng thời (Concurrency): Sử dụng SQL Transaction Isolation Level đảm bảo tính nguyên tử (Atomicity) khi thực hiện giao tác mượn/trả.
    • Rủi ro vi phạm kiến trúc: Kiểm soát chặt chẽ các assembly references; tầng GUI tuyệt đối không được tham chiếu trực tiếp tới tầng DAL.

Implementation và kết quả

Quy trình phát triển và thuật toán lõi

Hệ thống hiện thực hóa các thuật toán nghiệp vụ thông qua việc phối hợp chặt chẽ giữa tầng BUS và DAL. Dưới đây là hiện thực thuật toán thẩm định yêu cầu cho mượn sách (BM4 / QĐ4):

// Business Logic Layer: PhieuMuonTraBUS.cs
public class PhieuMuonTraBUS
{
    private PhieuMuonTraDAL _phieuMuonTraDAL = new PhieuMuonTraDAL();
    private ThamSoDAL _thamSoDAL = new ThamSoDAL();
    private DocGiaDAL _docGiaDAL = new DocGiaDAL();
    private CuonSachDAL _cuonSachDAL = new CuonSachDAL();

    public BusinessResult KiemTraVaChoMuonSach(int maDocGia, int maCuonSach, DateTime ngayMuon)
    {
        // Bước 1: Lấy các quy định hiện hành từ bảng THAMSO
        ThamSoDTO thamSo = _thamSoDAL.GetThamSo();
        DocGiaDTO docGia = _docGiaDAL.GetDocGiaById(maDocGia);
        CuonSachDTO cuonSach = _cuonSachDAL.GetCuonSachById(maCuonSach);

        // Bước 2: Kiểm tra thẻ độc giả còn hạn hay không
        if (docGia.NgayHetHan < ngayMuon)
            return BusinessResult.Failed("Thẻ độc giả đã hết hạn sử dụng.");

        // Bước 3: Kiểm tra tình trạng cuốn sách vật lý
        if (cuonSach.TinhTrang != 0) // 0: Có sẵn, 1: Đã được mượn
            return BusinessResult.Failed("Cuốn sách này hiện đang có người mượn.");

        // Bước 4: Kiểm tra số sách đang mượn
        int soSachDangMuon = _phieuMuonTraDAL.CountSachDangMuonByDocGia(maDocGia);
        if (soSachDangMuon >= thamSo.SoSachMuonToiDa)
            return BusinessResult.Failed($"Độc giả đã mượn tối đa {thamSo.SoSachMuonToiDa} cuốn sách.");

        // Bước 5: Kiểm tra độc giả có sách mượn quá hạn chưa trả hay không
        bool coSachQuaHan = _phieuMuonTraDAL.CheckDocGiaCoSachQuaHan(maDocGia, ngayMuon);
        if (coSachQuaHan)
            return BusinessResult.Failed("Độc giả đang có sách quá hạn chưa hoàn trả.");

        // Bước 6: Thỏa mãn toàn bộ điều kiện -> Tạo phiếu mượn
        DateTime hanTra = ngayMuon.AddDays(thamSo.SoNgayMuonToiDa);
        PhieuMuonTraDTO phieuMoi = new PhieuMuonTraDTO
        {
            MaDocGia = maDocGia,
            MaCuonSach = maCuonSach,
            NgayMuon = ngayMuon,
            HanTra = hanTra,
            NgayTra = null,
            SoTienPhat = 0
        };

        bool isSuccess = _phieuMuonTraDAL.InsertPhieuMuon(phieuMoi);
        if (isSuccess)
        {
            _cuonSachDAL.UpdateTinhTrang(maCuonSach, 1); // Cập nhật sang trạng thái Đã mượn
            return BusinessResult.Success("Cho mượn sách thành công.");
        }

        return BusinessResult.Failed("Lỗi hệ thống trong quá trình lưu dữ liệu.");
    }
}

Tại nghiệp vụ nhận trả sách (BM5 / QĐ5), hệ thống tính toán số ngày trả trễ và cập nhật công nợ lũy kế thông qua transaction đảm bảo tính toàn vẹn tuyệt đối:

$$\text{Số ngày trễ} = \max(0, \text{Ngày trả} - \text{Hạn trả})$$

$$\text{Tiền phạt phát sinh} = \text{Số ngày trễ} \times \text{Đơn giá phạt (từ THAMSO)}$$

$$\text{Tổng nợ mới} = \text{Tổng nợ hiện tại} + \text{Tiền phạt phát sinh}$$

Kiểm thử và nghiệm thu (Testing & Validation)

Hệ thống đã trải qua quy trình kiểm thử hộp đen (Black-box testing) và kiểm thử tích hợp (Integration testing) trên toàn bộ 9 nhóm nghiệp vụ chính:

STT Kịch bản kiểm thử Dữ liệu đầu vào thực nghiệm Kết quả mong đợi Kết quả thực tế Trạng thái
TC01 Lập thẻ độc giả dưới 18 tuổi Ngày sinh: 20/10/2010 (12 tuổi) Hệ thống từ chối, cảnh báo vi phạm quy định tuổi Báo lỗi: "Tuổi độc giả phải từ 18 đến 55" PASS
TC02 Nhập sách xuất bản quá 8 năm Năm XB: 2012, Năm hiện tại: 2022 (Khoảng cách = 10) Không cho phép lập phiếu nhập Báo lỗi: "Chỉ nhận sách xuất bản trong vòng 8 năm" PASS
TC03 Mượn sách khi đã mượn đủ 5 cuốn Độc giả đang giữ 5 cuốn sách chưa trả Chặn giao dịch mượn mới Báo lỗi: "Vượt quá số sách mượn tối đa" PASS
TC04 Thu tiền phạt vượt số tiền nợ Nợ hiện tại: 15.000 VNĐ, Số tiền thu: 20.000 VNĐ Hệ thống từ chối lưu phiếu Báo lỗi: "Số tiền thu không được vượt quá số tiền nợ" PASS
TC05 Báo cáo mượn theo thể loại Tháng 10/2022, Tổng 200 lượt mượn Tính toán chính xác tỷ lệ % từng thể loại Tổng tỉ lệ đạt 100.0%, dữ liệu khớp 100% PASS

Benchmark hiệu năng hệ thống

  • Thời gian lập thẻ độc giả: Xử lý tức thì (< 0.2 giây).
  • Thời gian lập phiếu thông tin sách/nhập sách: < 1.2 giây (Yêu cầu đề ra: < 5 giây).
  • Thời gian tra cứu sách đa tiêu chí (10.000 bản ghi): ~ 0.85 giây (Yêu cầu đề ra: < 10 giây).
  • Thời gian kết xuất báo cáo thống kê: ~ 1.45 giây (Yêu cầu đề ra: < 10 giây).

Đổi mới và đóng góp

  1. Mô hình hóa phân cấp dữ liệu sách 3 tầng (TUASACH $\rightarrow$ SACH $\rightarrow$ CUONSACH): Khắc phục triệt để nhược điểm của các đồ án truyền thống khi chỉ quản lý sách dưới dạng một bảng đơn lẻ. Mô hình cho phép quản lý chính xác từng cuốn sách vật lý (mỗi cuốn 1 mã cá biệt) thuộc một lần tái bản cụ thể của một tựa sách, hỗ trợ nhiều tác giả qua bảng liên kết CT_TACGIA.
  2. Cơ chế tham số hóa quy định nghiệp vụ (Dynamic Rule Parameterization): Đưa toàn bộ các ràng buộc cứng (tuổi độc giả, thời hạn thẻ, số sách mượn, đơn giá phạt, cấu hình kiểm tra thu tiền) vào bảng THAMSO. Người quản trị có thể thay đổi chính sách thư viện qua giao diện mà không cần chỉnh sửa mã nguồn C# hay can thiệp CSDL.
  3. Phân quyền linh hoạt trên từng màn hình chức năng: Kết hợp giữa NHOMNGUOIDUNG, CHUCNANGQUYEN cho phép cấp phát động quyền quản lý độc giả, lập báo cáo, thay đổi quy định cho từng nhóm người dùng (Quản lý, Thủ thư), đáp ứng tiêu chuẩn an toàn thông tin nghiệp vụ.
+--------------------------------------------------------------------------+
|                       MÔ HÌNH DỮ LIỆU PHÂN CẤP SÁCH                      |
+--------------------------------------------------------------------------+
|  [TUASACH] (Mã tựa sách, Tên tựa sách, Thể loại)                        |
|     │                                                                    |
|     └──> [CT_TACGIA] <─── [TACGIA] (Quan hệ nhiều - nhiều với Tác giả)   |
|     │                                                                    |
|     └──> [SACH] (Mã sách, Nhà xuất bản, Năm xuất bản, Trị giá, Đơn giá)  |
|             │                                                            |
|             └──> [CUONSACH] (Mã cuốn sách cá biệt, Tình trạng: 0/1)      |
+--------------------------------------------------------------------------+

Ứng dụng thực tế và triển khai

Kịch bản ứng dụng thực tế (Use Case Scenarios)

  • Quản lý quy trình nhập sách mới: Thủ thư tiếp nhận lô sách mới từ nhà xuất bản. Hệ thống tự động kiểm tra khoảng cách năm xuất bản ($NamXB \ge NamHienTai - KhoangCachXuatBan$), tạo tựa sách mới nếu chưa có, sinh phiếu nhập và tự động tạo ra $N$ bản ghi CUONSACH tương ứng với số lượng nhập.
  • Quy trình cho mượn và thu hồi sách trễ hạn: Sinh viên xuất trình thẻ độc giả. Phần mềm kiểm tra hạn thẻ, rà soát danh sách sách đang mượn và công nợ quá hạn chỉ trong một thao tác bấm nút. Nếu trả trễ hạn, hệ thống tự động ghi nhận số tiền phạt vào tài khoản nợ của độc giả.
[Tiếp nhận yêu cầu mượn]
           │
           ▼
[Kiểm tra thẻ còn hạn?] ──(Không)──> [Từ chối mượn]
           │ (Có)
           ▼
[Kiểm tra sách đang mượn có quá hạn?] ──(Có)──> [Từ chối mượn]
           │ (Không)
           ▼
[Số sách mượn < Tối đa (5)?] ──(Không)──> [Từ chối mượn]
           │ (Có)
           ▼
[Sách chọn có sẵn (TinhTrang=0)?] ──(Không)──> [Từ chối mượn]
           │ (Có)
           ▼
[Tạo phiếu mượn & Cập nhật TinhTrang=1]

Yêu cầu triển khai hạ tầng (System Requirements)

  • Máy chủ cơ sở dữ liệu (Database Server): Windows Server 2016 trở lên hoặc Windows 10/11 64-bit; RAM tối thiểu 4GB; Ổ cứng khả dụng 10GB; Microsoft SQL Server 2016/2019 Standard hoặc Express Edition.
  • Máy trạm thủ thư (Client Workstation): Windows 7 SP1/8.1/10/11; RAM tối thiểu 2GB; Màn hình độ phân giải từ 1366x768 trở lên; Cài đặt sẵn .NET Framework 4.8.
  • Hạ tầng mạng: Mạng cục bộ (LAN) băng thông tối thiểu 100 Mbps, kết nối thông suốt giữa Client và Database Server qua cổng TCP Port 1433 mặc định của SQL Server.

Hạn chế và hướng phát triển

Hạn chế hiện tại

  1. Kiến trúc phân tán chưa hoàn chỉnh: Ứng dụng triển khai dưới dạng Desktop kết nối trực tiếp vào CSDL qua chuỗi kết nối (Connection String), chưa có lớp RESTful API trung gian để hỗ trợ ứng dụng đa nền tảng (Web/Mobile).
  2. Nhận dạng thủ công: Chưa tích hợp phần cứng máy quét mã vạch (Barcode Scanner) hoặc công nghệ RFID để tự động hóa khâu quét mã cuốn sách và thẻ độc giả.

Hướng phát triển mở rộng

  • Chuyển đổi kiến trúc sang Web/Cloud: Xây dựng hệ thống backend với ASP.NET Core Web API 8.0, frontend sử dụng React/Angular để phục vụ độc giả tra cứu trực tuyến từ xa qua Internet.
  • Tích hợp phần cứng IoT và tự động hóa: Ứng dụng đầu đọc RFID để xây dựng cổng trả sách tự động (Self-Checkin/Checkout Kiosk) và tích hợp cổng thanh toán trực tuyến (VNPAY/Momo) cho việc thanh toán tiền phạt trễ hạn.

Đối tượng hưởng lợi

  • Sinh viên ngành Kỹ thuật Phần mềm / CNTT: Bản mẫu chuẩn mực về việc áp dụng lý thuyết kỹ nghệ phần mềm vào thực tế: từ khâu phân tích yêu cầu (DFD, Biểu mẫu, Quy định), thiết kế CSDL chuẩn hóa 3NF đến hiện thực hóa kiến trúc 3 lớp tường minh.
  • Lập trình viên và Kỹ sư phát triển phần mềm: Nắm bắt kỹ thuật thiết kế Dynamic Parameter Engine và giải pháp phân cấp thực thể sách (TUASACH - SACH - CUONSACH) tránh dư thừa dữ liệu.
  • Đơn vị quản lý thư viện trường học/tổ chức: Có ngay một giải pháp phần mềm quản lý gọn nhẹ, hiệu năng cao, chi phí bản quyền 0 đồng, dễ dàng làm chủ quy trình và vận hành ổn định.

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

1. Phần mềm có yêu cầu cấu hình máy chủ chuyên dụng đắt tiền không?

Không. Hệ thống được tối ưu hóa câu lệnh truy vấn T-SQL và thiết kế CSDL chuẩn 3NF, do đó có thể vận hành mượt mà trên các máy tính thông thường đóng vai trò máy chủ cục bộ (Local Host) chạy bản SQL Server Express hoàn toàn miễn phí.

2. Khi nhà trường thay đổi thời hạn mượn sách hoặc mức phạt thì có cần lập trình viên sửa code không?

Hoàn toàn không. Người quản lý chỉ cần truy cập vào chức năng "Thay đổi quy định" trên giao diện hệ thống để cập nhật các tham số (ví dụ: đổi đơn giá phạt từ 1.000đ lên 2.000đ/ngày, đổi số ngày mượn từ 4 ngày lên 7 ngày). Hệ thống sẽ tự động áp dụng quy tắc mới ngay lập tức.

3. Làm thế nào để đảm bảo dữ liệu không bị mất khi xảy ra sự cố mất điện?

Hệ thống sử dụng cơ chế Transaction của Microsoft SQL Server với tiêu chuẩn ACID. Mọi thao tác lập phiếu, mượn trả hay thu tiền phạt đều được thực hiện trọn vẹn hoặc rollback nếu có lỗi xảy ra giữa chừng, đảm bảo không xảy ra hiện tượng dữ liệu rác hay sai lệch số liệu tồn kho.

4. Hệ thống có hỗ trợ sao lưu (Backup) và phục hồi (Restore) dữ liệu định kỳ không?

Có. Cơ sở dữ liệu SQL Server hỗ trợ đầy đủ các tác vụ sao lưu tự động (Scheduled Maintenance Plans) dạng Full Backup và Differential Backup, cho phép thủ thư phục hồi dữ liệu về trạng thái gần nhất trong trường hợp xảy ra sự cố phần cứng.

5. Dự án có thể mở rộng để quản lý tài liệu điện tử (E-book) không?

Có thể. Nhờ thiết kế tách biệt tầng nghiệp vụ và cơ sở dữ liệu phân cấp, hệ thống có thể dễ dàng mở rộng bảng SACH để bổ sung trường lưu trữ URL/File Path của tài liệu số và mở rộng lớp BUS để cấp quyền truy cập tài liệu điện tử theo loại độc giả.


Kết luận

Đồ án môn học "Phần mềm Quản lý Thư viện" của nhóm sinh viên Khoa Công nghệ Phần mềm – Trường ĐH Công nghệ Thông tin (ĐHQG-HCM) đã giải quyết trọn vẹn các yêu cầu đặt ra của bài toán tin học hóa quản lý thư viện. Với việc áp dụng nghiêm ngặt Kiến trúc 3 lớp, thiết kế cơ sở dữ liệu chuẩn hóa và cơ chế quy định động thông minh, sản phẩm không chỉ đảm bảo tính đúng đắn, an toàn dữ liệu và hiệu năng phản hồi dưới 5 giây, mà còn thể hiện tính linh hoạt cao trước các thay đổi nghiệp vụ thực tế. Đây là công trình nghiên cứu ứng dụng có giá trị tham khảo học thuật cao và sở hữu tiềm năng triển khai thực tế vượt trội cho các thư viện trường học và cơ sở giáo dục hiện đại.