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

Đề tài "Phân tích thiết kế hệ thống Quản lý thư viện" được thực hiện bởi nhóm sinh viên (Lê Ngọc Anh, Nguyễn Quảng Phúc, Lê Hồng Vũ, Nguyễn Văn Kiên, Nguyễn Xuân Đức) dưới sự hướng dẫn của giảng viên Trần Đăng Công tại Khoa Công nghệ Thông tin, Học viện Công nghệ Bưu chính Viễn thông (Lớp PTTKHT-09, Nhóm 02).

Trong bối cảnh hoạt động vận hành thư viện đòi hỏi sự chuẩn xác, nhanh chóng trong việc theo dõi luân chuyển sách và quản lý thông tin bạn đọc, việc xây dựng một hệ thống phần mềm hỗ trợ là yêu cầu thực tiễn cần thiết. Mục tiêu của báo cáo là thực hiện quy trình phân tích và thiết kế hoàn chỉnh cho một phần mềm quản lý thư viện dựa trên phương pháp hướng đối tượng và ngôn ngữ mô hình hóa UML.

Nhiệm vụ nghiên cứu của đề tài bao gồm ba nội dung chính:

  1. Xác định và đặc tả đầy đủ các yêu cầu chức năng, danh sách tác nhân, ca sử dụng (use case), kịch bản thực hiện và luồng sự kiện ngoại lệ.
  2. Tiến hành phân tích hệ thống bao gồm phân tích tĩnh (xác định các lớp thực thể, thuộc tính, phương thức, quan hệ giữa các lớp) và phân tích động (xây dựng các biểu đồ hoạt động, biểu đồ giao tiếp).
  3. Thiết kế kiến trúc hệ thống mạng, lựa chọn mô hình phân tầng, thiết kế an toàn bảo mật, tương tranh và xây dựng lược đồ cơ sở dữ liệu.

Đối tượng nghiên cứu là các quy trình nghiệp vụ thư viện (quản lý sách, quản lý độc giả, mượn sách, trả sách) và kiến trúc phần mềm hướng đối tượng. Phạm vi nghiên cứu tập trung vào mô hình hóa phân tích và thiết kế hệ thống phần mềm phục vụ cho tác nhân trực tiếp là thủ thư dưới sự quản lý của người quản lý hệ thống.

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

Báo cáo áp dụng nền tảng lý thuyết và công cụ của phương pháp phân tích thiết kế hướng đối tượng (OOAD - Object-Oriented Analysis and Design):

  • Khung mô hình hóa: Sử dụng ngôn ngữ mô hình hóa thống nhất UML (Unified Modeling Language) để trực quan hóa cấu trúc và hành vi hệ thống thông qua Biểu đồ Ca sử dụng (Use Case Diagram), Biểu đồ Hoạt động (Activity Diagram) và Biểu đồ Giao tiếp (Communication Diagram).
  • Phương pháp phân tích:
    • Áp dụng kỹ thuật trích xuất danh từ từ kịch bản nghiệp vụ và ca sử dụng để nhận diện các ứng viên lớp thực thể, sau đó lọc bỏ các danh từ ngoài phạm vi, danh từ trùng lặp hoặc danh từ bản chất là thuộc tính.
    • Phân tích động thông qua việc mô hình hóa chuỗi tương tác thông điệp giữa các đối tượng để hoàn thiện danh sách phương thức cho từng lớp.
  • Nguồn dữ liệu: Dữ liệu đầu vào là tập hợp các kịch bản nghiệp vụ chuẩn trong quản lý thư viện, bao gồm thông tin biên mục sách, hồ sơ thẻ độc giả và dữ liệu giao dịch mượn - trả tài liệu.

Thiết kế và triển khai

Báo cáo tập trung vào việc thiết kế kiến trúc kỹ thuật cho hệ thống quản lý thư viện với các nội dung trọng tâm:

Lựa chọn kiến trúc mạng 3 tầng (3-Tier Architecture)

Hệ thống được thiết kế theo mô hình 3 tầng độc lập:

  • Tầng giao diện người dùng (User Interface / Client Tier): Đảm nhiệm việc hiển thị giao diện, thu nhận yêu cầu từ thủ thư và hiển thị kết quả xử lý. Tầng này không trực tiếp thực hiện tính toán hay xử lý nghiệp vụ.
  • Tầng ứng dụng (Application Server / Business Rule Tier): Tầng logic nghiệp vụ, chạy chương trình đa luồng để xử lý các chức năng chính, kiểm tra quy tắc nghiệp vụ và ràng buộc dữ liệu độc lập với tầng giao diện.
  • Tầng dữ liệu (Database Server / Data Storage Tier): Thực hiện lưu trữ dữ liệu, quản lý đọc/ghi và cung cấp cơ chế kiểm soát truy nhập đồng thời thông qua hệ quản trị cơ sở dữ liệu.
Tiêu chí lựa chọn Phân tích kỹ thuật từ tác giả
Phát triển hệ thống Tách bạch logic chương trình, giao diện và quản lý dữ liệu giúp đơn giản hóa việc lập trình và bảo trì.
Hiệu quả phần cứng Phân bổ máy tính phù hợp từng vai trò: máy trạm cho giao diện, máy chủ xử lý CPU/RAM cho tầng logic, máy chủ dữ liệu dung lượng lớn cho tầng CSDL.
Hiệu năng & tải Cho phép nhân rộng máy chủ ở tầng logic và dữ liệu để cân bằng tải và tối ưu hóa xử lý.
Bảo mật Thiết lập cơ chế bảo vệ tại tầng giữa, ngăn ngừa truy cập và tấn công trực tiếp từ máy khách vào tầng dữ liệu.
Kế thừa & Chi phí Dễ dàng tích hợp với các hệ thống máy chủ/dữ liệu có sẵn thông qua tầng trung gian mà không cần xây dựng lại từ đầu.
Độ linh hoạt Cho phép nâng cấp linh hoạt từ mô hình 1 tầng, 2 tầng lên 3 tầng tùy theo quy mô sử dụng.

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

I. Xác định yêu cầu

Phần này làm rõ ranh giới hệ thống, định nghĩa các đối tượng tương tác và đặc tả chi tiết 6 nhóm ca sử dụng chính:

  • Tác nhân hệ thống:
    • Độc giả: Người đã được cấp thẻ thư viện, có dữ liệu lưu trữ trong CSDL (họ tên, ngày sinh, giới tính, số CMND,...).
    • Thủ thư: Người trực tiếp thao tác trên phần mềm thông qua tài khoản đăng nhập được cấp.
  • Danh mục Use Case chính:
    • U1: Đăng nhập và U2: Đăng xuất
    • U3: Quản lý độc giả (Thêm, sửa, xóa, tìm kiếm độc giả)
    • U4: Quản lý sách (Thêm, sửa, xóa, tìm kiếm sách)
    • U5: Quản lý mượn sách
    • U6: Quản lý trả sách

Báo cáo xây dựng bảng đặc tả chi tiết cho từng ca sử dụng cụ thể, xác định rõ tiền điều kiện, đảm bảo tối thiểu, đảm bảo thành công, sự kiện kích hoạt trên giao diện, chuỗi sự kiện chính và các luồng ngoại lệ:

Ca sử dụng Kích hoạt giao diện Xử lý ngoại lệ chính
Đăng nhập Button Đăng nhập (Frm Đăng nhập) Báo lỗi tên tài khoản hoặc mật khẩu không chính xác; yêu cầu nhập lại.
Đăng xuất Button Đăng xuất (Frm Menu chính) Không có ngoại lệ; trở về trạng thái màn hình đăng nhập.
Thêm sách Button Thêm (Frm Quản lý sách) Báo lỗi trùng Mã sách; yêu cầu nhập lại mã.
Sửa thông tin sách Button Sửa (Frm Quản lý sách) Báo lỗi trùng Mã sách khi lưu chỉnh sửa.
Xóa sách Button Xóa (Frm Quản lý sách) Báo lỗi sách đang có người mượn, hệ thống từ chối thao tác xóa.
Tìm kiếm sách Button Tìm kiếm (Frm Tìm kiếm sách) Thông báo không tìm thấy sách phù hợp với tiêu chí tra cứu.
Thêm độc giả Button Thêm (Frm Quản lý độc giả) Báo lỗi trùng Mã độc giả; yêu cầu nhập lại mã.
Sửa thông tin độc giả Button Sửa (Frm Quản lý độc giả) Báo lỗi trùng Mã độc giả.
Xóa độc giả Button Xóa (Frm Quản lý độc giả) Kiểm tra thông tin và xóa khỏi CSDL.
Tìm kiếm độc giả Button Tìm kiếm (Frm Tìm kiếm độc giả) Báo không tìm thấy độc giả theo mã, tên, SĐT hoặc số CMTND.
Mượn sách Button Mượn (Frm Quản lý mượn – trả sách) Báo số lượng mượn vượt quá quy định; báo mã độc giả không tồn tại.
Trả sách Button Trả (Frm Quản lý mượn – trả sách) Báo không tìm thấy mã độc giả; báo ngày trả không hợp lệ.

Phần này cũng phác thảo thiết kế giao diện người dùng tương ứng cho từng form chức năng và xây dựng tập hợp Biểu đồ Hoạt động (Activity Diagram) chi tiết cho từng luồng nghiệp vụ.

II. Phân tích yêu cầu

Phần phân tích hệ thống được chia thành hai nhánh phân tích tĩnh và phân tích động:

1. Phân tích tĩnh (Static Analysis): Áp dụng kỹ thuật trích danh từ, nhóm tác giả đã phân loại danh từ nghiệp vụ và loại bỏ các thuộc tính (như Mã, Ngày mượn, Ngày hẹn trả, Ngày trả), xác định được 4 lớp thực thể cốt lõi:

  • Lớp ThuThu: Quản lý tài khoản truy cập dùng chung của thủ thư.
    • Thuộc tính: tK (tên đăng nhập), mK (mật khẩu).
    • Phương thức: taoTK(tk, mk), dangNhap(tk, mk), dangXuat().
  • Lớp Sach: Lưu trữ thông tin tài liệu và tình trạng tồn kho.
    • Thuộc tính: maS, tenS, loaiS, tenTg, nhaXb, namXb, soL.
    • Phương thức: getter(), setter(), add(Sach), delete(Sach), edit(Sach), display(Sach), check(int sl), search(String).
  • Lớp DocGia: Quản lý thông tin bạn đọc và hiệu lực thẻ.
    • Thuộc tính: maDG, tenDG, ngaySinh, soCMT, sDt, ngayHHT, diaC.
    • Phương thức: getter(), setter(), add(DocGia), delete(DocGia), edit(DocGia), display(DocGia), checkCard(String), search(String).
  • Lớp MuonTraSach: Thể hiện quan hệ giao dịch giữa độc giả và sách.
    • Thuộc tính: ngayM, ngayHentra, ngayT, maS, maDG.
    • Phương thức: getter(), setter(), add(Muontrasach), delete(Muontrasach), edit(Muontrasach), display(Muontrasach).

2. Phân tích động (Dynamic Analysis): Xây dựng hệ thống các Biểu đồ Giao tiếp (Communication Diagram) nhằm xác định chuỗi gửi nhận thông điệp giữa các đối tượng cho toàn bộ các ca sử dụng: Đăng nhập, Tìm kiếm sách/độc giả, Thêm/Sửa/Xóa sách, Thêm/Sửa/Xóa độc giả, Độc giả mượn sách, Độc giả trả sách.

III. Pha thiết kế

Chương này tập trung xác định giải pháp công nghệ và phân rã hệ thống:

  • Thiết lập mô hình mạng 3 tầng chi tiết (Client - Application Server - Database Server).
  • Đưa ra định hướng thiết kế xử lý tương tranh và an toàn bảo mật.
  • Phân rã hệ thống con, xây dựng biểu đồ gói và thiết lập cấu trúc lược đồ cơ sở dữ liệu quan hệ phục vụ lưu trữ thông tin.

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

Báo cáo hoàn thành đầy đủ các sản phẩm phân tích thiết kế theo đúng chuẩn kỹ thuật phần mềm:

  • Xây dựng 6 nhóm ca sử dụng lớn bao quát toàn bộ quy trình nghiệp vụ cơ bản tại thư viện.
  • Thiết lập hệ thống 12 kịch bản ca sử dụng chi tiết có đầy đủ ràng buộc điều kiện và xử lý ngoại lệ nghiệp vụ.
  • Xác định mô hình 4 lớp thực thể với đầy đủ kiểu dữ liệu thuộc tính và chữ ký phương thức tương ứng.
  • Cung cấp tập hợp Biểu đồ Hoạt động và Biểu đồ Giao tiếp hoàn chỉnh cho từng chức năng.
  • Luận giải chi tiết 6 căn cứ kỹ thuật cho việc áp dụng kiến trúc 3 tầng trong phát triển ứng dụng quản lý.

Đóng góp chính của tài liệu là cung cấp một bản đặc tả phân tích thiết kế hệ thống hoàn chỉnh, chuẩn hóa theo phương pháp hướng đối tượng, làm cầu nối trực tiếp giữa yêu cầu nghiệp vụ thực tế và giai đoạn cài đặt phần mềm.

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

Dựa trên phạm vi được trình bày trong tài liệu, đề tài có một số giới hạn:

  • Tài liệu dừng lại ở pha phân tích và thiết kế mô hình (UML, kiến trúc, cấu trúc dữ liệu), chưa bao gồm phần mã nguồn triển khai thực tế và kết quả kiểm thử phần mềm trên môi trường thực nghiệm.
  • Mô hình tài khoản thủ thư được thiết kế theo dạng dùng chung (taoTK(tk,mk) cấp cho các thủ thư), chưa phân quyền chi tiết theo từng vai trò quản trị viên hay nhân viên cụ thể.
  • Hệ thống tập trung vào các thao tác trực tiếp của thủ thư tại quầy, chưa mở rộng phân hệ trực tuyến cho độc giả tự tra cứu sách hoặc gia hạn mượn sách từ xa.

Hướng phát triển tiếp theo là hoàn thiện việc cài đặt mã nguồn cho các tầng ứng dụng, thiết lập cơ sở dữ liệu vật lý và xây dựng giao diện người dùng hoàn chỉnh theo các bản phác thảo đã đề ra.

Giá trị tham khảo

Tài liệu là nguồn tham khảo hữu ích cho sinh viên chuyên ngành Công nghệ Thông tin, Kỹ thuật Phần mềm và Hệ thống Thông tin đang thực hiện học phần Phân tích Thiết kế Hệ thống hoặc làm đồ án tốt nghiệp liên quan đến phần mềm quản lý.

Các phần có giá trị tham khảo cao bao gồm:

  • Mẫu cấu trúc đặc tả ca sử dụng chi tiết (tiền điều kiện, hậu điều kiện, luồng sự kiện chính và ngoại lệ).
  • Quy trình áp dụng kỹ thuật trích danh từ từ kịch bản để xây dựng sơ đồ lớp thực thể.
  • Phần luận giải kỹ thuật về việc lựa chọn kiến trúc mạng 3 tầng trong thiết kế phần mềm.

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

1. Hệ thống quản lý thư viện này gồm những tác nhân nào và quyền hạn ra sao? Hệ thống có hai tác nhân: Thủ thư là người trực tiếp sử dụng phần mềm qua tài khoản đăng nhập để thực hiện các nghiệp vụ quản lý sách, độc giả và mượn/trả; Độc giả là người có thẻ thư viện được lưu trữ thông tin trong hệ thống nhưng không trực tiếp thao tác trên phần mềm. Ngoài ra, Người quản lý hệ thống đóng vai trò người chịu trách nhiệm cấp tài khoản.

2. Kỹ thuật nào được nhóm tác giả sử dụng để nhận diện các lớp thực thể? Nhóm tác giả sử dụng kỹ thuật trích danh từ từ các ca sử dụng và kịch bản nghiệp vụ, sau đó loại bỏ các danh từ ngoài phạm vi, danh từ trùng lặp hoặc các danh từ thực chất là thuộc tính dữ liệu (như Mã, Ngày mượn, Ngày trả) để xác định ra 4 lớp thực thể chính (ThuThu, Sach, DocGia, MuonTraSach).

3. Lớp Sach và DocGia được thiết kế với những phương thức nghiệp vụ nào?

  • Lớp Sach: gồm các phương thức getter(), setter(), add(Sach), delete(Sach), edit(Sach), display(Sach), check(int sl) (kiểm tra số lượng sách còn đủ không), search(String).
  • Lớp DocGia: gồm getter(), setter(), add(DocGia), delete(DocGia), edit(DocGia), display(DocGia), checkCard(String) (kiểm tra mã thẻ còn hạn sử dụng không), search(String).

4. Những trường hợp ngoại lệ nào được quy định trong ca sử dụng Mượn sách và Trả sách?

  • Mượn sách: Hệ thống đưa ra thông báo và yêu cầu nhập lại khi xảy ra hai lỗi: số lượng mượn vượt quá số lượng cho phép, hoặc mã độc giả không tồn tại trong CSDL.
  • Trả sách: Hệ thống xử lý ngoại lệ khi không tìm thấy mã độc giả mượn sách, hoặc ngày trả sách được nhập không hợp lệ.

5. Vì sao hệ thống lựa chọn kiến trúc mạng 3 tầng thay vì mô hình truyền thống? Tác giả nêu 6 lý do: đơn giản hóa quá trình phát triển thông qua phân tách giao diện - nghiệp vụ - dữ liệu; tối ưu hóa hiệu quả sử dụng phần cứng theo từng tầng; nâng cao hiệu năng nhờ khả năng cân bằng tải; tăng cường bảo mật tại tầng ứng dụng trung gian; giảm thiểu chi phí đầu tư nhờ tái sử dụng hệ thống sẵn có; và đảm bảo tính linh hoạt khi mở rộng quy mô.

Kết luận

Tài liệu "Phân tích thiết kế hệ thống Quản lý thư viện" của nhóm sinh viên Học viện Công nghệ Bưu chính Viễn thông là một báo cáo chuyên ngành CNTT có cấu trúc chặt chẽ và bám sát quy trình phát triển phần mềm hướng đối tượng. Báo cáo đã hoàn thành trọn vẹn các nội dung từ khảo sát yêu cầu, mô hình hóa tĩnh/động bằng UML cho đến thiết kế kiến trúc mạng 3 tầng và cấu trúc dữ liệu. Đây là tài liệu mẫu mực phục vụ việc học tập, nghiên cứu và triển khai các dự án phần mềm quản lý tương tự.