Bối cảnh và vấn đề nghiên cứu
Trước bối cảnh xã hội phát triển nhanh chóng và đặc thù ngành học đòi hỏi sinh viên phải liên tục trau dồi các kiến thức công nghệ, kỹ thuật mới, nhu cầu đọc và mượn sách của sinh viên Trường Đại học Công nghệ Thông tin (ĐHQG-HCM) ngày càng gia tăng. Thực trạng này đòi hỏi lượng sách nhập về thư viện phải được đảm bảo và các đầu sách mới phải được cập nhật thường xuyên. Sự gia tăng về quy mô tài liệu và độc giả làm tăng khối lượng công việc quản lý của cán bộ thư viện, đặt ra yêu cầu xây dựng một phần mềm Quản lý Thư viện nhằm tin học hóa các quy trình, phục vụ người quản lý và sinh viên.
Đề tài xác định 3 mục đích nghiên cứu và phát triển chính:
- Giảm thiểu khối lượng công việc thủ công, tiết kiệm thời gian vận hành.
- Tăng năng suất trong việc nhập liệu và kết xuất báo cáo thống kê.
- Tăng tính bảo mật và nâng cao hiệu quả trong công tác quản lý thư viện.
Đối tượng sử dụng của phần mềm bao gồm cán bộ quản lý, thủ thư và cộng tác viên – những người trực tiếp chịu trách nhiệm quản lý thông tin sách và độc giả tại thư viện trường Đại học Công nghệ Thông tin (UIT). Phạm vi nghiên cứu tập trung vào các quy trình nghiệp vụ thư viện đại học (tiếp nhận sách, quản lý độc giả, mượn trả sách, thu tiền phạt, kết xuất báo cáo, phân quyền và cấu hình quy định) trong khuôn khổ đồ án môn Nhập môn Công nghệ Phần mềm, hoàn thành vào tháng 10 năm 2022.
Cơ sở lý thuyết và phương pháp
Đồ án áp dụng phương pháp luận phát triển phần mềm hướng cấu trúc kết hợp phân lớp, bám sát quy trình kỹ thuật phần mềm chuẩn:
- Khung quy trình phát triển: Chia làm 4 giai đoạn chính gồm (1) Xác định và mô hình hóa yêu cầu phần mềm; (2) Phân tích và thiết kế (thiết kế hệ thống, thiết kế cơ sở dữ liệu, thiết kế giao diện); (3) Cài đặt; (4) Kiểm thử và sửa lỗi.
- Mô hình hóa yêu cầu và nghiệp vụ: Sử dụng bảng phân loại yêu cầu (nghiệp vụ, chất lượng, hệ thống), bảng trách nhiệm (RACI/Responsibility Matrix), Sơ đồ luồng dữ liệu (Data Flow Diagram - DFD) kèm đặc tả luồng thông tin (D1 đến D6) và thuật toán xử lý từng bước.
- Phương pháp thiết kế dữ liệu logic: Sử dụng thuật toán xây dựng lược đồ quan hệ logic 8 bước, phân tích lần lượt dựa trên ba tiêu chuẩn: tính đúng đắn (dữ liệu theo biểu mẫu), tính tiến hóa (khả năng thay đổi quy định qua bảng tham số) và tính bảo mật (phân quyền tài khoản).
- Nguồn dữ liệu và căn cứ nghiệp vụ: Hệ thống biểu mẫu (BM1: Thẻ độc giả, BM2: Thông tin sách, BM3: Danh sách tựa sách, BM4: Phiếu mượn sách, BM6: Phiếu thu tiền phạt, BM7.1: Báo cáo mượn theo thể loại, BM7.2: Báo cáo sách trả trễ) và tập quy định nghiệp vụ (QĐ1 đến QĐ9).
Thiết kế và triển khai
Hệ thống được thiết kế hoàn chỉnh từ kiến trúc phân tầng, lược đồ cơ sở dữ liệu quan hệ đến mô hình liên kết giao diện người dùng.
1. Kiến trúc hệ thống
Hệ thống áp dụng kiến trúc 3 lớp (Three-layer Architecture), tuân thủ nguyên tắc một lớp chỉ tương tác với lớp ngay dưới nó và không được tương tác vượt tầng:
- Lớp Trình diễn (Presentation - GUI): Lớp trên cùng, tiếp nhận tương tác trực tiếp từ người dùng, thực hiện kiểm tra tính hợp lệ sơ bộ của dữ liệu đầu vào và hiển thị kết quả phản hồi từ lớp BUS.
- Lớp Xử lý Nghiệp vụ (Business Logic - BUS): Kiểm tra các ràng buộc, tính toàn vẹn dữ liệu, tiếp nhận dữ liệu từ lớp DAL để tính toán, thực thi quy tắc nghiệp vụ và trả kết quả về GUI.
- Lớp Truy xuất Dữ liệu (Data Access - DAL): Lớp dưới cùng, trực tiếp thực hiện các câu lệnh truy vấn (tìm kiếm, thêm, xóa, sửa) với hệ quản trị cơ sở dữ liệu.
- Thành phần DTO (Data Transfer Object): Đóng gói dữ liệu (chuyển đổi từ DataSet/DataTable thành Class) để luân chuyển giữa các tầng.
2. Thiết kế cơ sở dữ liệu logic
Cơ sở dữ liệu của phần mềm gồm 20 bảng dữ liệu quan hệ:
| STT |
Tên bảng dữ liệu |
Chức năng và mô tả nội dung lưu trữ |
| 1 |
THAMSO |
Lưu trữ các thông số quy định nghiệp vụ có thể thay đổi |
| 2 |
DOCGIA |
Lưu thông tin chi tiết của độc giả, ngày lập/hết hạn thẻ, tổng nợ |
| 3 |
LOAIDOCGIA |
Quản lý danh mục các loại độc giả (X, Y...) |
| 4 |
NHOMNGUOIDUNG |
Quản lý danh sách các nhóm người dùng trong hệ thống |
| 5 |
CHUCNANG |
Danh mục các màn hình/chức năng phần mềm |
| 6 |
QUYEN |
Bảng phân quyền chi tiết (chức năng được phép cho từng nhóm) |
| 7 |
NGUOIDUNG |
Thông tin tài khoản đăng nhập, mật khẩu, chức vụ nhân viên |
| 8 |
THELOAI |
Danh mục các thể loại sách (A, B, C...) |
| 9 |
TUASACH |
Thông tin tổng quát về từng tựa sách |
| 10 |
SACH |
Thông tin một tựa sách theo từng lần xuất bản cụ thể |
| 11 |
CUONSACH |
Quản lý từng cuốn sách vật lý cụ thể (mã cá biệt, tình trạng) |
| 12 |
PHIEUNHAPSACH |
Lưu thông tin tổng quát các đợt nhập sách và tổng tiền |
| 13 |
CT_PHIEUNHAP |
Chi tiết số lượng nhập, đơn giá, thành tiền của từng sách nhập |
| 14 |
TACGIA |
Danh mục thông tin các tác giả |
| 15 |
PHIEUMUONTRA |
Quản lý thông tin từng lượt mượn trả cuốn sách |
| 16 |
PHIEUTHU |
Ghi nhận các phiếu thu tiền phạt độc giả |
| 17 |
CT_TACGIA |
Bảng kết hợp thể hiện quan hệ nhiều - nhiều giữa tựa sách và tác giả |
| 18 |
BCLMUONTHEOTLOAI |
Lưu thông tin tổng hợp báo cáo mượn theo thể loại theo tháng |
| 19 |
CT_BCLMUONTHEOTLOAI |
Chi tiết số lượt mượn và tỉ lệ mượn theo từng thể loại |
| 20 |
BCSACHTRATRE |
Lưu thông tin chi tiết danh sách các sách bị trả trễ hạn |
Bảng tham số hệ thống (THAMSO) được thiết lập giá trị mặc định phục vụ tính tiến hóa:
TuoiToiThieu: 18 (tuổi tối thiểu lập thẻ).
TuoiToiDa: 55 (tuổi tối đa lập thẻ).
ThoiHanThe: 6 (thời hạn hiệu lực của thẻ tính theo tháng).
KhoangCachXuatBan: 8 (chỉ tiếp nhận sách xuất bản trong vòng 8 năm trở lại).
SoSachMuonToiDa: 5 (số lượng sách tối đa một độc giả được mượn cùng lúc).
SoNgayMuonToiDa: 4 (số ngày mượn sách tối đa cho một lượt mượn).
DonGiaPhat: 1.000 VNĐ (tiền phạt trả trễ cho mỗi ngày quá hạn).
AD_QDKTTienThu: 1 (kích hoạt quy định số tiền thu phạt không vượt quá số nợ).
Nội dung chính theo từng chương
1. Giới thiệu bài toán và Quy trình thực hiện
Chương này phân tích bối cảnh phát sinh đề tài tại thư viện UIT, xác định đối tượng người dùng (Quản lý, Thủ thư, Độc giả). Văn bản xác định 4 yêu cầu chung: giao diện hợp lý, tốc độ xử lý nhanh, ghi nhận xử lý nghiệp vụ đúng đắn và hỗ trợ điều chỉnh cập nhật quy định. Quy trình thực hiện được chia thành 4 giai đoạn cụ thể từ xác định yêu cầu đến kiểm thử.
2. Xác định và mô hình hóa yêu cầu phần mềm
Chương 2 phân loại toàn diện các yêu cầu hệ thống và lập bảng trách nhiệm chi tiết:
- Yêu cầu nghiệp vụ: Bao gồm 7 nghiệp vụ chuẩn hóa qua biểu mẫu (Lập thẻ độc giả - BM1, Tiếp nhận sách mới - BM2, Tra cứu sách - BM3, Cho mượn sách - BM4, Nhận trả sách - BM4, Lập phiếu thu tiền phạt - BM6, Lập báo cáo - BM7.1/BM7.2).
- Yêu cầu chất lượng:
- Tiến hóa: Hỗ trợ thay đổi độ tuổi độc giả, thời hạn thẻ, bảng giá phạt, danh mục thể loại/tác giả, khoảng cách năm xuất bản, hạn mức mượn sách, quy định thu phạt và cấu trúc nhóm người dùng.
- Tiện dụng: Đặt mục tiêu người dùng làm quen trong vòng 5 phút hướng dẫn cho tất cả các nghiệp vụ; riêng chức năng tra cứu sách không cần hướng dẫn.
- Tương thích: Hỗ trợ xuất file PDF (phiếu thu), xuất Excel (báo cáo) và kết nối máy in (thẻ độc giả, phiếu thu, báo cáo).
- Hiệu quả: Thời gian xử lý lập thẻ độc giả đạt "ngay lập tức"; lập phiếu thông tin sách, phiếu mượn, phiếu thu tiền phạt dưới 5 giây; lập báo cáo và tra cứu sách dưới 10 giây.
- Yêu cầu hệ thống:
- Bảo mật: Phân quyền người dùng thành 2 nhóm: Quản lý (toàn quyền quản trị, người dùng, phân quyền, đổi quy định và thực hiện các nghiệp vụ) và Thủ thư (chỉ thực hiện nghiệp vụ mượn trả, thu phạt, quản lý sách, độc giả, báo cáo và tra cứu).
- An toàn dữ liệu: Cấm xóa độc giả còn đang mượn sách hoặc còn nợ tiền; cấm xóa đầu sách còn đang được mượn; cấm xóa hoặc cấp quyền quản trị hệ thống cho nhóm người dùng không phải Quản lý.
- Sơ đồ luồng dữ liệu (DFD) và Thuật toán: Thiết kế chi tiết 9 sơ đồ DFD và thuật toán từng bước cho các tác vụ lập thẻ, nhập sách, tra cứu, cho mượn, nhận trả, thu phạt, báo cáo thể loại, báo cáo trả trễ, đổi quy định và phân quyền.
3. Thiết kế hệ thống
Chương 3 quy định việc hiện thực hóa phần mềm trên mô hình kiến trúc 3 lớp (Presentation - Business Logic - Data Access) cùng lớp DTO. Chương xác định rõ chức năng tiếp nhận dữ liệu của GUI, xử lý ràng buộc của BUS và các thao tác CRUD dữ liệu của DAL, ngăn chặn việc gọi chéo vi phạm nguyên tắc kiến trúc.
4. Thiết kế dữ liệu
Chương 4 thực hiện thuật toán xây dựng sơ đồ logic cơ sở dữ liệu qua 8 bước phân tích:
- Bước 1: Xét yêu cầu lập thẻ độc giả (tạo bảng
DOCGIA, LOAIDOCGIA, THAMSO).
- Bước 2: Xét yêu cầu tiếp nhận sách mới (tạo bảng
PHIEUNHAPSACH, CT_PHIEUNHAP, TUASACH, SACH, TACGIA, THELOAI, CT_TACGIA).
- Bước 3: Xét yêu cầu tra cứu sách (bổ sung thuộc tính
SoLuongConLai trong SACH).
- Bước 4: Xét yêu cầu cho mượn sách (tạo bảng
PHIEUMUONTRA, CUONSACH, cập nhật ràng buộc tham số mượn).
- Bước 5: Xét yêu cầu nhận trả sách (bổ sung thuộc tính phạt và cập nhật tham số
DonGiaPhat).
- Bước 6: Xét yêu cầu lập phiếu thu tiền phạt (tạo bảng
PHIEUTHU, tham số AD_QDKTTienThu).
- Bước 7: Xét yêu cầu lập báo cáo (tạo bảng
BCLUOTMUONTHEOTHELOAI, CT_BCLUOTMUONTHEOTHELOAI, BCSACHTRATRE).
- Bước 8: Xét yêu cầu phân quyền và người dùng (tạo bảng
NGUOIDUNG, NHOMNGUOIDUNG, CHUCNANG, QUYEN).
Chương cung cấp bảng danh mục 20 thực thể và chi tiết kiểu dữ liệu, khóa chính, khóa ngoại của từng trường thông tin.
5. Thiết kế giao diện
Chương 5 xây dựng sơ đồ liên kết màn hình và đặc tả chi tiết hơn 30 màn hình giao diện ứng dụng:
- Màn hình hệ thống: Đăng nhập, Trang chủ quản lý, Thông tin tài khoản, Đổi mật khẩu.
- Màn hình quản lý độc giả: Quản lý độc giả, Quản lý loại độc giả, Thông tin độc giả, Thêm/Sửa thẻ độc giả.
- Màn hình quản lý sách và nhập sách: Quản lý tựa sách, Thông tin tựa sách, Thêm/Sửa tựa sách, Quản lý sách, Thêm phiếu nhập sách mới/đã có, Quản lý cuốn sách, Quản lý/Sửa tác giả, Quản lý/Sửa thể loại, Quản lý/Thông tin phiếu nhập sách.
- Màn hình mượn trả và tài chính: Quản lý phiếu mượn trả, Chi tiết phiếu mượn trả, Quản lý phiếu thu, Thêm phiếu thu tiền phạt.
- Màn hình thống kê: Báo cáo lượt mượn theo thể loại, Báo cáo sách trả trễ.
- Màn hình quản trị: Quản lý người dùng, Thêm/Sửa người dùng, Quản lý nhóm người dùng, Thêm/Sửa nhóm người dùng, Thay đổi quy định.
- Màn hình dành cho độc giả: Trang chủ độc giả, Thông tin tài khoản độc giả, Tra cứu sách cho độc giả.
6. Cài đặt và thử nghiệm
Chương 6 tổng kết mức độ hoàn thành các chức năng phần mềm đối chiếu theo mục tiêu ban đầu và đề xuất các định hướng phát triển nhằm nâng cao năng lực ứng dụng trong môi trường thực tế.
Kết quả và đóng góp
1. Kết quả chính kèm dữ liệu văn bản
- Chuẩn hóa và mô hình hóa thành công 7 quy trình nghiệp vụ cốt lõi của thư viện trường đại học theo các biểu mẫu và quy định rõ ràng.
- Xây dựng thành công cơ sở dữ liệu quan hệ chuẩn hóa gồm 20 bảng dữ liệu, quản lý đa cấp từ tựa sách (
TUASACH), phiên bản sách (SACH) đến từng cuốn sách vật lý cá biệt (CUONSACH).
- Thiết lập hệ thống kiểm soát thông số linh hoạt qua bảng
THAMSO với 8 giá trị mặc định (tuổi 18-55, hạn thẻ 6 tháng, năm xuất bản cách tối đa 8 năm, mượn tối đa 5 quyển trong 4 ngày, tiền phạt 1.000 VNĐ/ngày).
- Thiết kế phân quyền chi tiết cho 2 nhóm tài khoản (Quản lý và Thủ thư) cùng hệ thống giao diện trực quan gồm hơn 30 màn hình chức năng.
2. Giải pháp kỹ thuật được đề xuất
- Tách rời quy tắc nghiệp vụ khỏi mã nguồn cứng: Toàn bộ quy định về độ tuổi, hạn mượn, hạn trả, đơn giá phạt và kiểm tra trần nợ được đưa vào bảng tham số, cho phép người quản lý tùy chỉnh qua giao diện
Thay đổi quy định mà không cần biên dịch lại phần mềm.
- Mô hình hóa dữ liệu sách đa tầng: Phân tách tựa sách (thông tin nội dung), sách (thông tin xuất bản) và cuốn sách (vật thể lưu hành) giúp giải quyết triệt để bài toán mượn trả từng bản sao sách và kiểm kê số lượng sách khả dụng.
3. Đóng góp của đồ án
Đồ án cung cấp một tài liệu thiết kế phần mềm hoàn chỉnh theo đúng phương pháp kỹ thuật phần mềm, tích hợp đầy đủ từ khâu khảo sát yêu cầu, mô hình hóa DFD, thiết kế CSDL logic từng bước đến thiết kế giao diện chi tiết cho bài toán quản lý thư viện.
Hạn chế và hướng nghiên cứu tiếp
- Hạn chế: Tài liệu đồ án phản ánh kết quả trong phạm vi môn học Nhập môn Công nghệ Phần mềm; hệ thống tập trung chủ yếu vào các tác vụ nội bộ của thủ thư và quản lý tại quầy, chưa tích hợp sâu các tiện ích mở rộng như thanh toán trực tuyến tiền phạt hoặc tương tác mượn sách từ xa cho độc giả.
- Hướng phát triển: Căn cứ mục 6.2 của văn bản, hướng nghiên cứu tiếp theo của nhóm tác giả là hoàn thiện tối ưu hóa cài đặt phần mềm, nâng cấp các tính năng bổ trợ và mở rộng thử nghiệm thực tế theo phản hồi của cán bộ thư viện và người dùng.
Giá trị tham khảo
Báo cáo đồ án là tài liệu học thuật có giá trị tham khảo thiết thực cho:
- Sinh viên ngành Công nghệ Phần mềm, Hệ thống Thông tin, Khoa học Máy tính: Tham khảo phương pháp phân tích yêu cầu, cách lập bảng trách nhiệm, kỹ thuật vẽ sơ đồ luồng dữ liệu (DFD) và phương pháp luận thiết kế CSDL logic 8 bước chuẩn mực.
- Nhóm phát triển phần mềm quản lý thông tin: Cung cấp lược đồ dữ liệu 20 bảng và thiết kế bảng
THAMSO như một mô hình tham chiếu điển hình cho các bài toán quản lý cần tính tùy biến tham số nghiệp vụ cao.
Câu hỏi thường gặp
1. Phần mềm quy định độ tuổi độc giả, thời hạn thẻ và số lượng sách mượn tối đa như thế nào?
Theo quy định QĐ1, QĐ4 và bảng THAMSO, độ tuổi độc giả hợp lệ từ 18 đến 55 tuổi; thẻ độc giả có thời hạn sử dụng 6 tháng; mỗi độc giả được mượn tối đa 5 quyển sách với thời gian mượn tối đa là 4 ngày.
2. Kiến trúc hệ thống của phần mềm được phân chia như thế nào?
Hệ thống sử dụng kiến trúc 3 lớp (Three-layer Architecture) gồm: Lớp Trình diễn (GUI), Lớp Xử lý Nghiệp vụ (BUS) và Lớp Truy xuất Dữ liệu (DAL), kết hợp thành phần DTO để đóng gói dữ liệu. Hệ thống tuân thủ nguyên tắc không tương tác vượt tầng.
3. Quy tắc an toàn dữ liệu của phần mềm ngăn chặn những thao tác xóa nào?
Phần mềm nghiêm cấm: (1) Xóa độc giả đang còn mượn sách hoặc đang còn nợ tiền phạt; (2) Xóa đầu sách đang có người mượn; (3) Xóa quyền "Phân quyền" và "Quản lý người dùng" của nhóm Quản lý; (4) Thêm quyền quản trị người dùng và phân quyền cho các nhóm khác ngoài Quản lý.
4. Đơn giá phạt trả sách trễ hạn và quy định thu tiền phạt được thiết lập ra sao?
Theo quy định QĐ5, QĐ6 và bảng THAMSO, đơn giá phạt trễ hạn mặc định là 1.000 VNĐ/ngày trễ. Quy định AD_QDKTTienThu (giá trị 1) bắt buộc số tiền thu tại phiếu phạt không được vượt quá số tiền độc giả đang nợ.
5. Sự khác biệt về quyền hạn giữa nhóm Quản lý và nhóm Thủ thư là gì?
Nhóm Quản lý có toàn quyền sử dụng tất cả các chức năng của phần mềm, bao gồm phân quyền, quản lý người dùng và thay đổi quy định. Nhóm Thủ thư chỉ được phép thực hiện các chức năng nghiệp vụ (lập phiếu mượn/trả, lập phiếu thu, quản lý độc giả, lập báo cáo, tra cứu sách) và không có quyền can thiệp vào phân quyền, người dùng hay thay đổi quy định hệ thống.
Kết luận
Đồ án môn học "Phần mềm Quản lý Thư viện" do nhóm sinh viên Khoa Công nghệ Phần mềm, Trường Đại học Công nghệ Thông tin (ĐHQG-HCM) thực hiện đã xây dựng một giải pháp tin học hóa toàn diện cho công tác quản lý thư viện. Báo cáo trình bày phương pháp luận phát triển phần mềm chặt chẽ từ việc mô hình hóa yêu cầu, xây dựng kiến trúc 3 lớp, thiết kế lược đồ cơ sở dữ liệu quan hệ 20 bảng cho đến đặc tả chi tiết hệ thống giao diện người dùng. Việc tham số hóa toàn bộ các quy tắc nghiệp vụ giúp hệ thống đạt độ mềm dẻo và tính tiến hóa cao, đáp ứng tốt yêu cầu quản trị và tra cứu tài liệu học thuật.