You are on page 1of 109

ĐẠI HỌC BÁCH KHOA HÀ NỘI

Trường Công nghệ thông tin và Truyền thông

BÀI TẬP LỚN


PHÂN TÍCH THIẾT KẾ HỆ THỐNG

Nhóm 11
HỆ THỐNG QUẢN LÝ THƯ VIỆN

Giảng viên hướng dẫn: TS. Nguyễn Nhật Quang


Sinh viên thực hiện Mã số sinh viên
Hà Nhật Tuấn 20194399
Trần Như Hào 20194272
Phạm Minh Phúc 20194353
Khương Xuân Tùng 20194403

Hà Nội, ngày 12 tháng 1 năm 2022

i
Chương 1: Mô tả đề tài ..................................................................................................... 8
I. Lý do chọn đề tài ........................................................................................................ 8
II. Mục tiêu của đề tài ................................................................................................... 8
III. Các thuật ngữ và viết tắt ........................................................................................ 8
IV. Tài liệu tham khảo .................................................................................................. 8
V. Tổng quan tài liệu ..................................................................................................... 9
Chương 2: Phân tích yêu cầu phần mềm ...................................................................... 10
I. Phân tích Quy trình nghiệp vụ................................................................................ 10
1. Sơ đồ hoạt động nghiệp vụ “Khách đăng kí tài khoản độc giả” ...................... 10
2. Sơ đồ hoạt động nghiệp vụ “Người đọc tìm kiếm sách” ..................................... 11
3. Sơ đồ hoạt động nghiệp vụ “Thủ thư thêm thông tin sách vào hệ thống” ...... 12
4. Sơ đồ hoạt động nghiệp vụ “Độc giả mượn sách” ............................................. 13
5. Sơ đồ hoạt động nghiệp vụ “Độc giả gia hạn mượn sách”....................................... 14
II. Phân tích Yêu cầu chức năng ................................................................................ 15
1. Xác định các tác nhân của hệ thống ................................................................... 15
2. Biểu đồ use case tổng quan của hệ thống ........................................................... 16
3. Phân rã use case “CRUD đầu sách” ................................................................... 16
4. Phân rã use case “Quản lý độc giả” .................................................................... 17
5. Phân rã use case “Quản lý mượn trả sách” ....................................................... 17
6. Phân tích nhóm use case của “Khách” ............................................................... 18
6.1. Đặc tả use case UC01 “Đăng nhập” ............................................................. 19
6.2. Đặc tả use case UC02 “Lấy lại mật khẩu” ................................................... 20
6.3. Đặc tả use case UC03 “Tạo tài khoản” ........................................................ 21
6.4. Đặc tả use case UC04 “Tìm kiếm sách” ....................................................... 22
7. Phân tích nhóm use case của “Độc giả” ............................................................. 23
7.1. Đặc tả use case UC05 “Tìm kiếm sách” ....................................................... 24
7.2. Đặc tả use case UC06 “Đăng ký mượn sách” .............................................. 25
7.3. Đặc tả use case UC07 “Thêm sách vào giỏ” ................................................ 26

1
7.4. Đặc tả use case UC08 “Xem giỏ sách” ......................................................... 27
7.5. Đặc tả use case UC09 “Gia hạn mượn sách” ............................................... 28
7.6. Đặc tả use case UC10 “Cập nhật thông tin tài khoản"........................................ 29
7.7. Đặc tả use case UC11 “Đổi mật khẩu” ............................................................... 30
7.8. Đặc tả use case UC12 “Đăng xuất”..................................................................... 31
7.9. Đặc tả use case UC13 “Xem chi tiết thông tin sách”............................................ 31
7.10. Đặc tả use case UC33 “Xem lịch sử mượn trả sách” ......................................... 32
7.11. Đặc tả use case UC34 “Xóa sách khỏi giỏ”........................................................ 32
8. Phân tích nhóm use case của “Thủ thư” ............................................................ 33
8.1. Đặc tả use case UC14 “Thêm đầu sách mới” .............................................. 34
8.2. Đặc tả use case UC15 “Xem danh sách đầu sách” ...................................... 35
8.3. Đặc tả use case UC16 “Tìm kiếm đầu sách”................................................ 35
8.4. Đặc tả use case UC17 “Xem chi tiết đầu sách” ........................................... 36
8.5. Đặc tả use case UC18 “Sửa thông tin đầu sách” ......................................... 36
8.6. Đặc tả use case UC19 “Xóa đầu sách” ......................................................... 37
8.7. Đặc tả use case UC20 “Tìm kiếm tài khoản độc giả”....................................... 38
8.8. Đặc tả use case UC21 “Xem danh sách tài khoản” .......................................... 39
8.9. Đặc tả use case UC22 “Xem chi tiết thông tin tài khoản độc giả” ............. 39
8.10. Đặc tả use case UC23 “Thay đổi trạng thái tài khoản độc giả” ............... 40
8.11. Đặc tả use case UC24 “Xem lịch sử mượn trả sách của một tài khoản” 41
8.12. Đặc tả use case UC25 “Xem lịch sử mượn trả sách của tất cả các tài
khoản” .................................................................................................................... 42
8.13. Đặc tả use case UC26 “Tìm kiếm các lượt mượn trả sách” ..................... 43
8.14. Đặc tả use case UC27 “Xem chi tiết 1 lượt mượn trả sách”..................... 44
8.15. Đặc tả use case UC32 “Xác nhận đã trả sách” .......................................... 44
8.16. Đặc tả use case UC28 “Cập nhật thông tin tài khoản” ........................................ 45
8.17. Đặc tả use case UC29 “Đổi mật khẩu” ....................................................... 46
8.18. Đặc tả use case UC30 “Đăng xuất” ............................................................ 47
8.19. Đặc tả use case UC31 “Duyệt yêu cầu gia hạn mượn sách”..................... 48

2
III. Phân tích yêu cầu phi chức năng ......................................................................... 49
1. Yêu cầu bảo mật ................................................................................................... 49
2. Yêu cầu giao diện.................................................................................................. 49
3. Yêu cầu nền tảng và trình duyệt ......................................................................... 49
Chương 3: Thiết kế hệ thống ......................................................................................... 50
I. Mô hình hóa cấu trúc hệ thống ............................................................................... 50
1. Nhóm ca sử dụng của “Khách” ........................................................................... 50
1.1. Ca sử dụng “Đăng nhập” .............................................................................. 50
1.2. Ca sử dụng “Lấy lại mật khẩu” .................................................................... 50
1.3. Ca sử dụng “Tạo tài khoản” ......................................................................... 50
1.4. Ca sử dụng “Tìm kiếm sách” ........................................................................ 51
2. Nhóm ca sử dụng của “Độc giả” ......................................................................... 51
2.1. Ca sử dụng “Tìm kiếm sách” ........................................................................ 51
2.2. Ca sử dụng “Đăng ký mượn sách” ............................................................... 51
2.3. Ca sử dụng “Thêm sách vào giỏ” ................................................................. 52
2.4. Ca sử dụng “Xem giỏ sách” .......................................................................... 52
2.5. Ca sử dụng “Gia hạn mượn sách”................................................................ 52
2.6. Ca sử dụng “Cập nhật thông tin tài khoản”................................................ 52
2.7. Ca sử dụng “Đổi mật khẩu” .......................................................................... 53
2.8. Ca sử dụng “Đăng xuất” ............................................................................... 53
2.9. Ca sử dụng “Xem chi tiết đầu sách” ............................................................ 53
2.10. Ca sử dụng “Xem lịch sử mượn trả sách” ................................................. 53
2.11. Ca sử dụng “Xóa sách khỏi giỏ sách” ........................................................ 54
3. Nhóm ca sử dụng của “Thủ thư” ........................................................................ 54
3.1. Ca sử dụng “Thêm đầu sách mới” ............................................................... 54
3.2. Ca sử dụng “Xem danh sách đầu sách” ....................................................... 54
3.3. Ca sử dụng “Tìm kiếm đầu sách” ................................................................ 55
3.4. Ca sử dụng “Xem chi tiết đầu sách” ............................................................ 55
3.5. Ca sử dụng “Sửa thông tin đầu sách” .......................................................... 55

3
3.6. Ca sử dụng “Xóa đầu sách” .......................................................................... 56
3.7. Ca sử dụng “Tìm kiếm tài khoản độc giả” .................................................. 56
3.8. Ca sử dụng “Xem danh sách tài khoản độc giả”......................................... 56
3.9. Ca sử dụng “Xem chi tiết thông tin tài khoản độc giả” ....................................... 57
3.10. Ca sử dụng “Thay đổi trạng thái tài khoản độc giả” ......................................... 57
3.11. Ca sử dụng “Xem lịch sử mượn trả sách của một tài khoản” .................. 57
3.12. Ca sử dụng “Xem lịch sử mượn trả sách của tất cả các tài khoản ........... 58
3.13. Ca sử dụng “Tìm kiếm các lượt mượn trả sách” ....................................... 58
3.14. Ca sử dụng “Xem chi tiết một lượt mượn trả sách” ...................................... 58
3.15. Ca sử dụng “Xác nhận đã trả sách”............................................................... 59
3.16. Ca sử dụng “Cập nhật thông tin tài khoản”.............................................. 59
3.17. Ca sử dụng “Đổi mật khẩu” ........................................................................ 59
3.18. Ca sử dụng “Đăng xuất” ............................................................................. 60
3.19. Ca sử dụng “Duyệt yêu cầu gia hạn mượn sách” ..................................... 60
II. Mô hình hóa sự tương tác ...................................................................................... 61
1. Nhóm ca sử dụng của “Khách” ........................................................................... 61
1.1. Ca sử dụng “Đăng nhập” .............................................................................. 61
1.2. Ca sử dụng “Lấy lại mật khẩu” .................................................................... 61
1.3. Ca sử dụng “Tạo tài khoản” ......................................................................... 62
1.4. Ca sử dụng “Tìm kiếm sách” ........................................................................ 62
2. Nhóm ca sử dụng của “Độc giả” ......................................................................... 63
2.1. Ca sử dụng “Tìm kiếm sách” ........................................................................ 63
2.2. Ca sử dụng “Đăng ký mượn sách” ............................................................... 63
2.3. Ca sử dụng “Thêm sách vào giỏ” ................................................................. 64
2.4. Ca sử dụng “Xem giỏ sách” .......................................................................... 64
2.5. Ca sử dụng “Gia hạn mượn sách”................................................................ 64
2.6. Ca sử dụng “Cập nhật thông tin tài khoản”................................................ 65
2.7. Ca sử dụng “Đổi mật khẩu” .......................................................................... 65
2.8. Ca sử dụng “Đăng xuất” ............................................................................... 66

4
2.9. Ca sử dụng “Xem chi tiết đầu sách” ............................................................ 66
2.10. Ca sử dụng “Xem lịch sử mượn trả sách” ................................................. 66
2.11. Ca sử dụng “Xóa sách khỏi giỏ sách” ........................................................ 67
3. Nhóm ca sử dụng của “Thủ thư” ........................................................................ 67
3.1. Ca sử dụng “Thêm đầu sách mới” ............................................................... 67
3.2. Ca sử dụng “Xem danh sách đầu sách” ....................................................... 67
3.3. Ca sử dụng “Tìm kiếm đầu sách” ................................................................ 68
3.4. Ca sử dụng “Xem chi tiết đầu sách” ............................................................ 68
3.5. Ca sử dụng “Sửa thông tin đầu sách” .......................................................... 69
3.6. Ca sử dụng “Xóa đầu sách” .......................................................................... 69
3.7. Ca sử dụng “Tìm kiếm tài khoản độc giả” .................................................. 70
3.8. Ca sử dụng “Xem danh sách tài khoản độc giả”......................................... 70
3.9. Ca sử dụng “Xem chi tiết thông tin tài khoản độc giả” ....................................... 70
3.10. Ca sử dụng “Thay đổi trạng thái tài khoản độc giả” ......................................... 71
3.11. Ca sử dụng “Xem lịch sử mượn trả sách của một tài khoản” .................. 71
3.12. Ca sử dụng “Xem lịch sử mượn trả sách của tất cả các tài khoản” ......... 71
3.13. Ca sử dụng “Tìm kiếm các lượt mượn trả sách” ....................................... 72
3.14. Ca sử dụng “Xem chi tiết một lượt mượn trả sách” ...................................... 72
3.15. Ca sử dụng “Xác nhận đã trả sách”............................................................... 72
3.16. Ca sử dụng “Cập nhật thông tin tài khoản”.............................................. 73
3.17. Ca sử dụng “Đổi mật khẩu” ........................................................................ 73
3.18. Ca sử dụng “Đăng xuất” ............................................................................. 74
3.19. Ca sử dụng “Duyệt yêu cầu gia hạn mượn sách” ..................................... 74
III. Thiết kế kiến trúc tổng thể của hệ thống ............................................................ 75
1. Tầng trình bày ...................................................................................................... 76
2. Tầng ứng dụng...................................................................................................... 76
3. Tầng nghiệp vụ ..................................................................................................... 77
4. Tầng lưu trữ dữ liệu ............................................................................................. 78
IV. Thiết kế chi tiết lớp ............................................................................................... 78

5
1. Sơ đồ gói ................................................................................................................ 78
2. Sơ đồ lớp tổng quan gói Model ........................................................................... 78
2.1. Lớp M_Book ................................................................................................... 79
2.2. Lớp M_BookTitle ........................................................................................... 79
2.3. Lớp M_Account ............................................................................................. 80
2.4. Lớp M_User .................................................................................................... 81
2.5. Lớp M_Admin ................................................................................................ 82
2.6. Lớp M_Cart .................................................................................................... 82
2.7. Lớp M_Transaction ....................................................................................... 83
2.8. Lớp M_Extension ........................................................................................... 84
3. Sơ đồ lớp tổng quan gói Control ......................................................................... 84
3.1. Lớp C_book .................................................................................................... 85
3.2. Lớp C_bookTitle ............................................................................................ 85
3.3. Lớp C_user ..................................................................................................... 86
3.4. Lớp C_admin.................................................................................................. 86
3.5. Lớp C_authentication .................................................................................... 87
3.6. Lớp C_cart ...................................................................................................... 87
3.7. Lớp C_transaction ......................................................................................... 88
3.8. Lớp C_extension............................................................................................. 88
4. Sơ đồ lớp tổng quan gói View .............................................................................. 89
4.1. Lớp V_book .................................................................................................... 89
4.2. Lớp V_bookTitle ............................................................................................ 90
4.3. Lớp V_user ..................................................................................................... 91
4.4. Lớp V_admin.................................................................................................. 92
4.5. Lớp V_authentication .................................................................................... 93
4.6. Lớp V_cart ...................................................................................................... 94
4.7. Lớp V_transaction ......................................................................................... 95
4.8. Lớp V_extension............................................................................................. 96
V. Thiết kế cơ sở dữ liệu dữ liệu ................................................................................. 97

6
1. Sơ đồ quan hệ bảng dữ liệu ................................................................................. 97
2. Danh sách các bảng dữ liệu ................................................................................. 97
3. Thiết kế chi tiết các bảng dữ liệu ........................................................................ 98
3.1. Bảng Account ................................................................................................. 98
3.2. Bảng User ........................................................................................................ 98
3.3. Bảng Book ....................................................................................................... 98
3.4. Bảng Admin .................................................................................................... 99
3.5. Bảng BookTitle ............................................................................................... 99
3.6. Bảng Transaction ......................................................................................... 100
3.7. Bảng Extension ............................................................................................. 100
3.8. Bảng Cart ...................................................................................................... 101
VI. Thiết kế nguyên mẫu giao diện .......................................................................... 101
1. Giao diện đăng nhập .......................................................................................... 101
2. Giao diện tạo tài khoản độc giả ......................................................................... 102
3. Giao diện lấy lại mật khẩu................................................................................. 102
4. Trang chủ Độc giả .............................................................................................. 103
5. Giao diện tìm kiếm sách..................................................................................... 103
6. Giao diện cập nhật thông tin và đổi mật khẩu ................................................ 104
7. Giao diện giỏ sách và mượn sách ...................................................................... 104
8. Giao diện lịch sử mượn ...................................................................................... 105
9. Giao diện gia hạn mượn sách ............................................................................ 105
10. Giao diện chỉnh sửa thông tin tài khoản và mật khẩu ..................................... 106
11. Giao diện quản lý mượn trả sách .................................................................... 106
12. Giao diện gia hạn mượn sách .......................................................................... 107
13. Giao diện quản lý sách ..................................................................................... 107
14. Giao diện quản lý độc giả ................................................................................ 108

7
Chương 1: Mô tả đề tài
I. Lý do chọn đề tài
Hiện nay, thư viện là một hệ thống khá phổ biến. Đi cùng với sự phát triển
của các thư viện là nhu cầu độc giả và số lượng sách trong thư viện cũng tăng
lên rất nhiều so với trước đây, đặt ra yêu cầu phải quản lý thư viện một cách
tốt nhất và có hiệu quả nhất.
Vì lý do trên, nhóm em xin chọn đề tài hệ thống quản lý thư viện.

II. Mục tiêu của đề tài


Mục tiêu cơ bản của đề tài nghiên cứu là đưa ra một hệ thống quản lý số
cuốn của mỗi đầu sách và hoạt động mượn trả sách của thư viện. Hệ thống
sẽ cho phép người thủ thư thực hiện công việc quản lý thư viện một cách
chính xác và khoa học; giúp độc giả có thể tìm kiếm, mượn, trả sách dễ
dàng, tiết kiệm thời gian.

III. Các thuật ngữ và viết tắt


CSDL Cơ sở dữ liệu

GD Giao diện

ĐK Điều khiển

Mk Mật khẩu

CRUD Create – Read – Update - Delete

IV. Tài liệu tham khảo


- Mẫu tài liệu đặc tả yêu cầu phần mềm (SRS-UGMS-Sample-VN.doc)
được viết bởi TS. Nguyễn Thị Thu Trang.
- Tài liệu bài giảng môn Phân tích và thiết kế hệ thống của thầy Nguyễn
Nhật Quang.

8
V. Tổng quan tài liệu
Tài liệu gồm 3 chương:
- Chương 1 - Mô tả đề tài: Cung cấp cho người đọc cái nhìn khái quát về
đề tài.
- Chương 2 – Phân tích yêu cầu phần mềm: phân tích quy trình nghiệp vụ,
trình bày các ca sử dụng của hệ thống đặc tả chức năng của các ca sử dụng
đó, phân tích yêu cầu phi chức năng của hệ thống
- Chương 3 – Thiết kệ hệ thống: mô hình hóa cấu trúc và sự tương tác, từ
đó thiết kế kiến trúc tổng thể, thiết kế chi tiết lớp, thiết kế cơ sở dữ liệu và
thiết kế nguyên mẫu giao diện.

9
Chương 2: Phân tích yêu cầu phần mềm
I. Phân tích Quy trình nghiệp vụ
1. Sơ đồ hoạt động nghiệp vụ “Khách đăng kí tài khoản
độc giả”

❖ Mô tả:
- Khách yêu cầu tạo tài khoản
- Hệ thống yêu cầu khách nhập thông tin tài khoản
- Khách nhập thông tin tài khoản và gửi lên hệ thống
- Hệ thống kiểm tra tính hợp lệ của thông tin:
• Nếu không hợp lệ thì thông báo cho khách và cho phép nhập lại nếu
khách muốn điền lại thông tin, nếu không thì khách thoát ra và kết thúc
• Nếu hợp lệ thì hệ thống tạo tài khoản cho khách và lưu vào CSDL,
sau đó thông báo tạo tài khoản thành công và kết thúc

10
2. Sơ đồ hoạt động nghiệp vụ “Người đọc tìm kiếm sách”

❖ Mô tả:
- Người đọc (có thể là khách chưa đăng nhập hoặc đã đăng nhập vào tài
khoản độc giả) chọn chức năng tìm kiếm sách
- Hệ thống yêu cầu nhập thông tin cuốn sách cần tìm kiếm
- Khách nhập thông tin tìm kiếm
- Hệ thống tìm kiếm sách theo thông tin đã nhập
• Nếu hệ thống tìm thấy sách thì hiển thị các cuốn sách thỏa mãn tới
người đọc
• Nếu hệ thống không tìm thấy sách thì thông báo tới người dùng
- Nếu người đọc muốn tìm kiếm tiếp thì sẽ nhập lại thông tin tìm kiếm,
nếu không thì người đọc thoát ra và kết thúc

11
3. Sơ đồ hoạt động nghiệp vụ “Thủ thư thêm thông tin
sách vào hệ thống”

❖ Mô tả:
- Thủ thư chọn chức năng thêm sách
- Hệ thống yêu cầu nhập thông tin của sách cần thêm
- Thủ thư nhập thông tin sách
- Hệ thống kiểm tra tính hợp lệ của thông tin nhập vào:
• Nếu thông tin sách không hợp lệ thì hệ thống gửi thông báo cho thủ thư
• Nếu thông tin sách hợp lệ thì hệ thống lưu thông tin sách vào CSDL
sau đó thông báo thành công
- Nếu khách muốn nhập lại hoặc nhập tiếp thông tin sách thì sẽ quay trở
lại bước nhập thông tin sách, nếu không thì khách sẽ thoát và kết thúc

12
4. Sơ đồ hoạt động nghiệp vụ “Độc giả mượn sách”

❖ Mô tả:
- Độc giả chọn chức năng mượn sách
- Độc giả tìm kiếm sách
- Hệ thống trả về những cuốn sách thỏa mãn
- Độc giả chọn những cuốn sách muốn mượn và thêm vào giỏ sách
- Nếu độc giả muốn tìm tiếp thì quay trở lại bước tìm kiếm sách nếu
không thì đăng kí mượn những cuốn sách đã thêm vào giỏ
- Hệ thống kiểm tra xem tài khoản độc giả có được phép mượn sách không:
• Nếu không được phép thì thông báo cho độc giả và kết thúc
• Nếu được phép thì yêu cầu độc giả điền phiếu mượn sách
- Độc giả điền thông tin vào phiếu

13
- Hệ thống kiểm tra tính hợp lệ của thông tin phiếu:
• Nếu hợp lệ thì hệ thống thông báo đặt mượn thành công và kết thúc
• Nếu không hợp lệ thì hệ thống thông báo mượn sách không thành
công, nếu độc giả muốn nhập lại phiếu thì tiến hành nhập lại thông tin phiếu,
còn nếu không thì kết thúc

5. Sơ đồ hoạt động nghiệp vụ “Độc giả gia hạn mượn sách”

❖ Mô tả:
- Độc giả chọn chức năng gia hạn mượn sách
- Hệ thống kiểm tra xem độc giả có đang mượn sách hay không:
• Nếu độc giả chưa mượn sách thì hệ thống thông báo độc giả không có
sách để gia hạn và kết thúc

14
• Nếu độc giả đang mượn sách thì hệ thống trả về thông tin những cuốn
sách độc giả đang mượn.
- Độc giả chọn cuốn sách muốn gia hạn sau đó điền thông tin gia hạn rồi
xác nhận và gửi lên hệ thống
- Hệ thống chuyển tiếp yêu cầu cho thủ thư
- Thủ thư xem xét yêu cầu của độc giả:
• Nếu đồng ý thì hệ thống lưu thông tin vào CSDL và gửi thông báo gia
hạn thành công đến độc giả rồi kết thúc.
• Nếu từ chối thì thủ thư nhập lý do từ chối sau đó hệ thống gửi thông
báo từ chối và lý do từ chối đến độc giả rồi kết thúc.

II. Phân tích Yêu cầu chức năng


1. Xác định các tác nhân của hệ thống
Hệ thống gồm 3 tác nhân chính là: Khách, Thủ thư, độc giả:
- Khách sẽ được đăng nhập, lấy lại mật khẩu, tạo tài khoản, tìm kiếm sách
- Độc giả là khách đã đăng nhập vào tài khoản độc giả và được sử dụng
các chức năng là: Đổi mật khẩu, cập nhật thông tin tài khoản, đăng xuất, tìm
kiếm sách, thêm sách vào giỏ, xem giỏ sách, đăng kí mượn sách, gia hạn
mượn sách
- Thủ thư là khách đã đăng nhập vào tài khoản thủ thư và được phép: Đổi
mật khẩu, cập nhật thông tin tài khoản, đăng xuất, quản lý độc giả, quản lý
mượn trả sách, CRUD đầu sách

15
2. Biểu đồ use case tổng quan của hệ thống

3. Phân rã use case “CRUD đầu sách”

16
4. Phân rã use case “Quản lý độc giả”

5. Phân rã use case “Quản lý mượn trả sách”

17
6. Phân tích nhóm use case của “Khách”

18
6.1. Đặc tả use case UC01 “Đăng nhập”
Mã Use case UC01 Tên Use case Đăng nhập
Tác nhân Khách
Mục đích sử dụng Đăng nhập vào hệ thống quản lý thư viện
Sự kiện kích hoạt Khách chọn chức năng đăng nhập
Tiền điều kiện Không
Luồng sự kiện
chính STT Thực hiện bởi Hành động

1. Khách Chọn chức năng Đăng nhập


2. Hệ thống Hiển thị giao diện đăng nhập
3. Khách Nhập tên đăng nhập và mật khẩu
4. Khách Yêu cầu đăng nhập

5. Hệ thống Kiểm tra xem khách đã nhập các trường


bắt buộc nhập hay chưa
6. Hệ thống Kiểm tra tên đăng nhập và mật khẩu có hợp
lệ do khách nhập trong hệ thống hay không
7. Hệ thống Hiển thị giao diện chính

Luồng sự kiện
thay thế STT Thực hiện bởi Hành động

6a. Hệ thống Thông báo lỗi “Cần nhập đủ tên đăng nhập
và mật khẩu” nếu khách nhập thiếu sau đó
yêu cầu nhập lại.
7a. Hệ thống Thông báo lỗi “Tên đăng nhập hoặc mật
khẩu chưa đúng” nếu không tìm thấy tên
đăng nhập và mật khẩu trong hệ thống sau
đó yêu cầu nhập lại
7b. Hệ thống Thông báo lỗi: Tài khoản bị khoá, nếu tên
đăng nhập/mật khẩu đúng nhưng tài
khoản đang bị khoá.

Khách đã đăng nhập vào hệ thống, trở thành độc giả hoặc thủ thư tùy
Hậu điều kiện
theo tài khoản

19
6.2. Đặc tả use case UC02 “Lấy lại mật khẩu”
Mã Use case UC02 Tên Use case Lấy lại mật khẩu
Tác nhân Khách
Mục đích sử
Lấy lại mật khẩu của tài khoản
dụng
Sự kiện kích
Khách chọn chức năng lấy lại mật khẩu
hoạt
Tiền điều kiện Không
Luồng sự kiện
chính STT Thực hiện bởi Hành động

1. Khách Chọn chức năng Lấy lại mật khẩu

2. Hệ thống Hiển thị giao diện lấy lại mật khẩu

3. Khách Nhập tên đăng nhập và số điện thoại của mình

4. Hệ thống Kiểm tra số điện thoại có khớp vói tài khoản hay không

5. Hệ thống Gửi mã OTP đến số điện thoại của khách

6. Khách Nhập lại mã OTP và yêu cầu lấy lại mật khẩu

7. Hệ thống Kiểm tra lại mã OTP

8. Khách Nhập mật khẩu mới 2 lần

9. Kiểm tra xem 2 lần nhập mật khẩu có giống nhau


Hệ thống
không

10. Khách Xác nhận thay đổi mật khẩu

11. Hệ thống Thay đổi mật khẩu của tài khoản người dùng

Luồng sự kiện
thay thế STT Thực hiện bởi Hành động

4a Hệ thống Thông báo lỗi “Số điện thoại không khớp với tài
khoản” nếu số điện thoại không phải của tài khoản.

7a. Hệ thống Thông báo lỗi “Mã OTP không hợp lệ. Gửi lại OTP?”
nếu khách nhập sai OTP và yêu cầu nhập lại

9a. Hệ thống Thông báo lỗi “2 mật khẩu không khớp” nếu 2 lần
nhập mật khẩu không trùng nhau và yêu cầu nhập
lại

Hậu điều kiện Hệ thống lưu lại mật khẩu mới vào CSDL

20
6.3. Đặc tả use case UC03 “Tạo tài khoản”
Mã Use case UC03 Tên Use case Tạo tài khoản
Tác nhân Khách
Mục đích sử dụng Tạo tài khoản trong hệ thống
Sự kiện kích hoạt Khách chọn chức năng tạo tài khoản
Tiền điều kiện Không
Luồng sự kiện STT Thực hiện Hành động
chính
bởi

1. Khách Chọn chức năng Tạo tài khoản


2. Hệ thống Hiển thị giao diện tạo tài khoản
3. Khách Nhập các thông tin cá nhân theo yêu cầu hệ
thống
4. Khách Yêu cầu tạo tài khoản
5. Hệ thống Kiểm tra các thông tin đã nhập
6. Hệ thống Kiểm tra tên đăng nhập của khách đúng yêu cầu
hoặc có bị trùng hay không
7. Hệ thống Lưu thông tin tài khoản và thông báo tạo tài
khoản thành công

Luồng sự kiện STT Thực hiện Hành động


thay thế
bởi

6a. Hệ thống Thông báo lỗi tại trường chưa thỏa mãn và
yêu cầu nhập lại trường đó
7a. Hệ thống Thông báo lỗi: Mật khẩu xác nhận không
trùng với mật khẩu nếu 2 mật khẩu không
trùng nhau

Hậu điều kiện Tạo tài khoản mới cho khách và lưu vào hệ thống

21
6.4. Đặc tả use case UC04 “Tìm kiếm sách”
Mã Use case UC04 Tên Use case Tìm kiếm sách

Tác nhân Khách

Mục đích sử Tìm kiếm những đầu sách cần thiết.


dụng

Sự kiện kích hoạt Khách chọn chức năng tìm kiếm sách

Tiền điều kiện Không

Luồng sự kiện STT Thực hiện bởi Hành động


chính
1. Khách Chọn chức năng Tìm kiếm sách

2. Hệ thống Hiển thị lên giao diện nhập thông


tin tìm kiếm

3. Khách Nhập thông tin đầu sách cần tìm

4. Hệ thống Hiển thị danh sách những đầu sách


phù hợp

Luồng sự kiện STT Thực hiện Hành động


thay thế
bởi

4a. Hệ thống Yêu cầu khách nhập ít nhất một thông tin
tìm kiếm nếu khách chưa nhập thông tin
tìm kiếm nào
Hậu điều kiện Hệ thống hiển thị danh sách những đầu sách thỏa mãn

22
7. Phân tích nhóm use case của “Độc giả”

23
7.1. Đặc tả use case UC05 “Tìm kiếm sách”
Mã Use case UC05 Tên Use case Tìm kiếm sách

Tác nhân Độc giả

Mục đích sử Tìm kiếm những đầu sách cần thiết.


dụng

Sự kiện kích hoạt Độc giả chọn chức năng tìm kiếm

Tiền điều kiện Đã đăng nhập với vai trò là Độc giả

Luồng sự kiện STT Thực hiện bởi Hành động


chính
1. Độc giả Chọn chức năng Tìm kiếm sách

2. Hệ thống Hiển thị lên giao diện nhập thông


tin tìm kiếm

3. Độc giả Nhập thông tin đầu sách cần tìm

4. Hệ thống Hiển thị danh sách những đầu sách


phù hợp

Luồng sự kiện STT Thực hiện Hành động


thay thế
bởi

4a. Hệ thống Yêu cầu độc giả nhập ít nhất một thông
tin tìm kiếm nếu độc giả chưa nhập
thông tin tìm kiếm nào
Hậu điều kiện Hệ thống hiển thị danh sách những đầu sách thỏa mãn

24
7.2. Đặc tả use case UC06 “Đăng ký mượn sách”
Mã Use case UC06 Tên Use case Đăng ký mượn sách

Tác nhân Độc giả

Mục đích sử Độc giả đăng ký mượn sách


dụng

Sự kiện kích Độc giả chọn chức năng mượn sách


hoạt

Tiền điều kiện Đã đăng nhập với vai trò là Độc giả

Luồng sự kiện STT Thực hiện Hành động


chính
bởi

1. Độc giả Chọn chức năng đăng ký mượn sách

2. Hệ thống Hiển thị giao diện giỏ sách

3. Độc giả Chọn cuốn sách cần mượn và chọn nút đăng
ký mượn.

4. Hệ thống Hệ thống gửi phiếu điền thông tin mượn sách

5. Độc giả Điền thông tin vào phiếu mượn sách và gửi.

6. Hệ thống Hệ thống xác nhận mượn sách thành công và


gửi thông báo.

Luồng sự kiện STT Thực hiện Hành động


thay thế
bởi

4a. Hệ thống Nếu tài khoản không đủ điều kiện mượn cuốn
sách đó thì gửi thông báo tài khoản không đủ
điều kiện.
4b. Hệ thống Nếu số lượng cuốn sách không đủ thì gửi
thông báo tạm thời hết sách không thể mượn.
6a. Hệ thống Nếu phiếu điền của độc giả không hợp lệ thì
gửi thông báo phiếu điền sai và hỏi độc giả có
muốn điền lại không.
Hậu điều kiện Lưu lại thông tin lượt mượn sách và thông báo thành công cho độc giả

25
7.3. Đặc tả use case UC07 “Thêm sách vào giỏ”
Mã Use case UC07 Tên Use case Thêm sách vào giỏ

Tác nhân Độc giả

Mục đích sử dụng Độc giả thêm sách muốn mượn vào giỏ để đăng kí mượn

Sự kiện kích hoạt Độc giả chọn chức năng thêm sách vào giỏ

Tiền điều kiện Đã đăng nhập với vai trò là Độc giả

Luồng sự kiện STT Thực hiện bởi Hành động


chính
1. Độc giả Chọn chức năng Thêm sách vào giỏ

2. Hệ thống Yêu cầu người dùng tìm kiếm sách cần


thêm vào giỏ

3. Độc giả Tìm kiếm sách

4. Hệ thống Hiển thị cuốn sách cần tìm

5. Độc giả Chọn vào đầu sách muốn thêm

6. Hệ thống Hiển thị chi tiết thông tin đầu sách

7. Độc giả Nhấn vào biểu tượng thêm sách trên giao
diện

8. Hệ thống Thêm sách vào giỏ sách

Luồng sự kiện thay STT Thực hiện bởi Hành động


thế
6a. Hệ thống Nếu không còn sách trong thư viện sẽ không
hiện thị biểu tượng thêm sách

Hậu điều kiện Lưu lại thông tin về đầu sách được thêm vào giỏ sách của độc giả

26
7.4. Đặc tả use case UC08 “Xem giỏ sách”
Mã Use case UC08 Tên Use case Xem giỏ sách

Tác nhân Độc giả

Mục đích sử Độc giả có thể xem trong giỏ sách mình muốn mượn đã có những gì
dụng

Sự kiện kích hoạt Độc giả chọn chức năng Xem giỏ sách

Tiền điều kiện Đã đăng nhập với vai trò độc giả

Luồng sự kiện STT Thực hiện Hành động


chính
bởi

1. Độc giả Chọn chức năng Xem giỏ sách

2. Hệ thống Lấy danh sách sách trong giỏ

3. Hệ thống Hiển thị chi tiết danh sách sách trong


giỏ

Luồng sự kiện Không có


thay thế

Hậu điều kiện Hiển thị danh sách các đầu sách trong giỏ sách của độc giả

27
7.5. Đặc tả use case UC09 “Gia hạn mượn sách”
Mã Use case UC09 Tên Use case Gia hạn mượn sách
Tác nhân Độc giả
Mục đích sử
Gia hạn thời gian mượn sách
dụng
Sự kiện kích
Độc giả chọn chức năng gia hạn mượn sách
hoạt
Tiền điều
Đã đăng nhập thành công với vai trò là độc giả
kiện
Luồng sự Thực hiện
kiện chính STT Hành động
bởi

1. Độc giả Chọn chức năng Gia hạn mượn sách

2. Hệ thống Hiển thị giao diện Gia hạn mượn sách


Điền phiếu gia hạn sách và yêu cầu gia
3. Độc giả
hạn

4. Hệ thống Kiểm tra thông tin trong phiếu gia hạn


Chuyển tiếp phiếu gia hạn và thông báo
5. Hệ thống
cho thủ thư

6. Thủ thư Đồng ý gia hạn mượn sách


Gửi thông báo đồng ý gia hạn cho độc
7. Hệ thống
giả
Luồng sự Thực hiện
kiện thay thế STT Hành động
bởi

Thông báo “Các thông tin không


4a. Hệ thống hợp lệ” nếu mật khẩu cũ không
đúng và yêu cầu nhập lại
6a1. Thủ thư Từ chối gia hạn mượn sách
Gửi thông báo từ chối gia hạn cho
6a2. Hệ thống
độc giả
Hậu điều
Gửi thông báo gia hạn thành công cho độc giả và cập nhật trong CSDL
kiện

28
7.6. Đặc tả use case UC10 “Cập nhật thông tin tài khoản"
Mã Use case UC10 Tên Use case Cập nhật thông tin
Tác nhân Độc giả
Mục đích sử
Cập nhật thông tin cá nhân
dụng
Sự kiện kích
Độc giả chọn chức năng cập nhật thông tin
hoạt
Tiền điều kiện Đã đăng nhập thành công với vai trò là độc giả
Luồng sự kiện
chính Thực hiện
STT Hành động
bởi

1. Độc giả Chọn chức năng Cập nhật thông tin

2. Hệ thống Hiển thị giao diện Cập nhật thông tin

3. Độc giả Nhập các thông tin mới của tài khoản

4. Độc giả Xác nhận cập nhật thông tin


Kiểm tra xem các thông tin mới có hợp lệ
5. Hệ thống
không

6. Hệ thống Cập nhật các thay đổi của độc giả

Luồng sự kiện Thực hiện


thay thế STT Hành động
bởi

Thông báo “Các thông tin mới không hợp


5a. Hệ thống lệ” nếu các thông tin không hợp lệ và yêu
cầu nhập lại

Hậu điều kiện Cập nhật lại thông tin của tài khoản độc giả

29
7.7. Đặc tả use case UC11 “Đổi mật khẩu”
Mã Use case UC11 Tên Use case Thay đổi mật khẩu
Tác nhân Độc giả
Mục đích sử
Thay đổi mật khẩu của tài khoản
dụng
Sự kiện kích
Độc giả chọn chức năng thay đổi mật khẩu
hoạt
Tiền điều kiện Đã đăng nhập thành công với vai trò là độc giả
Luồng sự kiện
Thực hiện
chính STT Hành động
bởi

1. Độc giả Chọn chức năng Thay đổi mật khẩu

2. Hệ thống Hiển thị giao diện Thay đổi mật khẩu

3. Độc giả Nhập mật khẩu cũ

4. Hệ thống Kiểm tra xem mật khẩu cũ có đúng không

5. Độc giả Nhập mật khẩu mới 2 lần


Kiểm tra xem 2 lần nhập mật khẩu có
6. Hệ thống
giống nhau không

7. Độc giả Xác nhận thay đổi mật khẩu

8. Hệ thống Thay đổi mật khẩu của tài khoản Độc giả

Luồng sự kiện Thực hiện


thay thế STT Hành động
bởi

Thông báo “Sai mật khẩu” nếu mật khẩu


6a. Hệ thống
cũ không đúng và yêu cầu nhập lại
Thông báo “2 mật khẩu không khớp” nếu
8a. Hệ thống 2 lần nhập mật khẩu không trùng nhau
và yêu cầu nhập lại

Hậu điều kiện Thay đổi mật khẩu của tài khoản độc giả trong CSDL

30
7.8. Đặc tả use case UC12 “Đăng xuất”
Mã Use case UC12 Tên Use case Đăng xuất

Tác nhân Độc giả

Mục đích sử dụng Đăng xuất khỏi hệ thống

Sự kiện kích hoạt Độc giảchọn chức năng đăng xuất

Tiền điều kiện Đã đăng nhập thành công với vai trò là độc giả
Luồng sự kiện STT Thực hiện bởi Hành động
chính
1. Độc giả Chọn chức năng Đăng xuất

2. Hệ thống Hỏi lại người chơi có chắc chắn muốn đăng xuất

3. Độc giả Xác nhận đăng xuất

4. Hệ thống Đăng xuất khỏi tài khoản của độc giả

5. Hệ thống Hiển thị giao diện Đăng nhập

Luồng sự kiện STT Thực hiện bởi Hành động


thay thế
3a1. Độc giả Độc giả không muốn đăng xuất nữa

3a2. Hệ thống Hủy Đăng xuất

Hậu điều kiện Hệ thống trả về giao diện đăng nhập

7.9. Đặc tả use case UC13 “Xem chi tiết thông tin sách”
Mã Use case UC17 Tên Use case Xem chi tiết thông tin sách

Tác nhân Độc giả

Mục đích sử dụng Độc giả muốn xem chi tiết 1 đầu sách

Sự kiện kích hoạt Độc giả chọn chức năng xem chi tiết đầu sách

Tiền điều kiện Đã đăng nhập với vai trò là Độc giả

Luồng sự kiện chính STT Thực hiện bởi Hành động

1. Độc giả Chọn đầu sách cần xem chi tiết và chọn chức
năng xem chi tiết đầu sách

2. Hệ thống Hiển thị thông tin chi tiết của đầu sách

Luồng sự kiện thay thế Không

Hậu điều kiện Hệ thống hiển thị thông tin chi tiết của đầu sách

31
7.10. Đặc tả use case UC33 “Xem lịch sử mượn trả sách”
Mã Use case UC33 Tên Use case Xem lịch sử mượn trả sách

Tác nhân Độc giả

Mục đích sử dụng Độc giả xem danh sách mượn trả sách của tài khoản

Sự kiện kích hoạt Độc giả chọn chức năng Xem lịch sử mượn trả sách

Tiền điều kiện Đã đăng nhập với vai trò là Độc giả

Luồng sự kiện chính STT Thực hiện bởi Hành động

1. Độc giả Từ giao diện xem chi tiết tài khoản độc giả
chọn chức năng xem lịch sử mượn trả sách

2. Hệ thống Hiển thị lịch sử mượn trả sách của tài khoản

Luồng sự kiện thay STT Thực hiện bởi Hành động


thế
2a. Hệ thống Thông báo tài khoản chưa có hoạt động
mượn trả sách nếu độc giả chưa mượn trả
sách lần nào

Hậu điều kiện Hệ thống hiển thị lịch sử mượn trả sách của tài khoản

7.11. Đặc tả use case UC34 “Xóa sách khỏi giỏ”


Mã Use case UC34 Tên Use case Xóa sách khỏi giỏ

Tác nhân Độc giả

Mục đích sử dụng Xóa 1 đầu sách khỏi giỏ sách

Sự kiện kích hoạt Độc giả chọn chức năng xóa sách khỏi giỏ

Tiền điều kiện Đã đăng nhập với vai trò là Độc giả

Luồng sự kiện chính STT Thực hiện bởi Hành động

1. Độc giả Từ giao diện giỏ sách chọn cuốn sách


muốn xóa khỏi giỏ và chọn chức năng
xóa sách khỏi giỏ

2. Hệ thống Xóa sách khỏi giỏ sách của độc giả

Luồng sự kiện thay thế Không có

Hậu điều kiện Lưu lại thông tin về đầu sách được thêm vào giỏ sách của độc giả

32
8. Phân tích nhóm use case của “Thủ thư”

33
8.1. Đặc tả use case UC14 “Thêm đầu sách mới”
Mã Use case UC14 Tên Use case Thêm đầu sách mới
Tác nhân Thủ thư
Mục đích sử
Thêm đầu sách mới vào hệ thống
dụng
Sự kiện kích
Thủ thư chọn chức năng thêm đầu sách mới
hoạt
Tiền điều kiện Đã đăng nhập thành công với vai trò là thủ thư
Luồng sự kiện STT Thực hiện Hành động
chính
bởi
(Thành công)
1. Thủ thư Chọn chức năng thêm đầu sách mới
2. Hệ thống Hiển thị giao diện nhập thông đầu sách
mới
3. Nhập thông tin đầu sách và gửi lên hệ
Thủ thư
thống
4. Hệ thống Kiểm tra tính hợp lệ của thông tin
5. Hệ thống Lưu thông tin đầu sách vào CSDL và báo
thành công tới thủ thư
Luồng sự kiện
STT Thực hiện Hành động
thay thế
bởi

5a. Hệ thống Thông báo dữ liệu nhập vào không hợp lệ


nếu dữ liệu mà thủ thư nhập không thỏa
mãn

Lưu thông tin đầu sách mới vào CSDL và hiển thị thông báo thêm thành
Hậu điều kiện
công tới thủ thư

34
8.2. Đặc tả use case UC15 “Xem danh sách đầu sách”
Mã Use case UC15 Tên Use case Xem danh sách đầu sách
Tác nhân Thủ thư
Mục đích sử dụng Xem danh sách của tất cả đầu sách có trong hệ thống
Sự kiện kích hoạt Thủ thư chọn chức năng xem danh sách đầu sách
Tiền điều kiện Đã đăng nhập thành công với vai trò là thủ thư
Luồng sự kiện
chính STT Thực hiện bởi Hành động
(Thành công) 1. Thủ thư Chọn chức năng Xem danh sách đầu sách

2. Hệ thống Hiển thị danh sách các đầu sách có trong thư viện

Luồng sự kiện
thay thế
Không

Hậu điều kiện Hệ thống hiển thị danh sách các đầu sách có trong thư viện

8.3. Đặc tả use case UC16 “Tìm kiếm đầu sách”


Mã Use case UC16 Tên Use case Tìm kiếm đầu sách

Tác nhân Thủ thư

Mục đích sử dụng Thủ thư tìm kiếm đầu sách

Sự kiện kích hoạt Thủ thư chọn chức năng tìm kiếm đầu sách

Tiền điều kiện Đã đăng nhập với vai trò là Thủ thư

Luồng sự kiện chính STT Thực hiện bởi Hành động

1. Thủ thư Chọn chức năng Tìm kiếm đầu sách

2. Hệ thống Hiển thị lên giao diện nhập thông tin tìm kiếm

3. Thủ thư Nhập thông tin đầu sách cần tìm

4. Hệ thống Hiển thị đầu sách cần tìm

Luồng sự kiện thay STT Thực hiện bởi Hành động


thế
4a. Hệ thống Nếu không có thông tin tác nhân nhập trong dữ
liệu sẽ hiển thị “Không tìm thấy kết quả nào.”

Hậu điều kiện Hệ thống hiển thị danh sách các đầu sách cần tìm

35
8.4. Đặc tả use case UC17 “Xem chi tiết đầu sách”
Mã Use case UC17 Tên Use case Xem chi tiết đầu sách

Tác nhân Thủ thư

Mục đích sử dụng Thủ thư muốn xem chi tiết 1 đầu sách

Sự kiện kích hoạt Thủ thư chọn chức năng xem chi tiết đầu sách

Tiền điều kiện Đã đăng nhập với vai trò là Thủ thư

Luồng sự kiện chính STT Thực hiện bởi Hành động

1. Thủ thư Chọn đầu sách cần xem chi tiết và chọn chức năng
xem chi tiết đầu sách

2. Hệ thống Hiển thị thông tin chi tiết của đầu sách

Luồng sự kiện thay thế Không

Hậu điều kiện Hệ thống hiển thị thông tin chi tiết của đầu sách được chọn

8.5. Đặc tả use case UC18 “Sửa thông tin đầu sách”
Mã Use case UC18 Tên Use case Sửa thông tin đầu sách

Tác nhân Thủ thư

Mục đích sử dụng Thủ thư muốn sửa thông tin một đầu sách

Sự kiện kích hoạt Thủ thư chọn chức năng sửa thông tin đầu sách

Tiền điều kiện Đã đăng nhập với vai trò là Thủ thư

Luồng sự kiện chính STT Thực hiện bởi Hành động

1. Thủ thư Chọn chức năng Sửa thông tin đầu sách từ giao
diện xem chi tiết đầu sách

2. Hệ thống Hiển thị lên giao diện sửa thông tin đầu sách

3. Thủ thư Sửa thông tin đầu sách và xác nhận

4. Hệ thống Kiểm tra dữ liệu sửa đổi có hợp lệ không

5. Hệ thống Lưu thông tin sửa đổi vào CSDL và báo thành công

Luồng sự kiện thay thế STT Thực hiện bởi Hành động

4a. Hệ thống Hiển thị thông báo dữ liệu nhập vào không hợp lệ
nếu dữ liệu đó không thỏa mãn

Hậu điều kiện Hệ thống lưu thông tin sửa đổi vào CSDL và hiển thị thông báo thành công

36
8.6. Đặc tả use case UC19 “Xóa đầu sách”
Mã Use case UC19 Tên Use case Xóa đầu sách

Tác nhân Thủ thư

Mục đích sử dụng Thủ thư muốn xóa 1 đầu sách

Sự kiện kích hoạt Thủ thư chọn chức năng xóa đầu sách

Tiền điều kiện Đã đăng nhập với vai trò là Thủ thư

Luồng sự kiện STT Thực hiện Hành động


chính
bởi

1. Thủ thư Chọn chức năng Xóa đầu sách từ giao


diện xem chi tiết đầu sách

2. Hệ thống Hiện thị thông báo yêu cầu thủ thư xác
nhận việc xóa đầu sách

3. Thủ thư Xác nhận xóa

4. Hệ thống Xóa thông tin đầu sách khỏi hệ thống

Luồng sự kiện thay STT Thực hiện Hành động


thế
bởi

3a1. Thủ thư Thủ thư hủy xóa

3a2. Hệ thống Hủy việc xóa đầu sách

Hậu điều kiện Hệ thống xóa thông tin đầu sách và hiển thị thông báo đã xóa

37
8.7. Đặc tả use case UC20 “Tìm kiếm tài khoản độc giả”
Mã Use case UC20 Tên Use case Tìm kiếm tài khoản độc giả

Tác nhân Thủ thư

Mục đích sử dụng Tìm kiếm tài khoản của một độc giả

Sự kiện kích hoạt Thủ thư chọn chức năng tìm kiếm tài khoản độc giả

Tiền điều kiện Đã đăng nhập với vai trò là Thủ thư

Luồng sự kiện STT Thực hiện Hành động


chính
bởi

1. Thủ thư Chọn chức năng Tìm kiếm tài khoản độc giả

2. Thủ thư Nhập username, họ tên, email hoặc số điện


thoại của độc giả muốn tìm kiếm và yêu
cầu tìm kiếm

3. Hệ thống Tìm kiếm và những tài khoản độc giả có


thông tin phù hợp với yêu cầu của thủ thư

4. Hệ thống Hiển thị những tài khoản độc giả tìm được

Luồng sự kiện thay STT Thực hiện Hành động


thế
bởi

3a. Hệ thống Thông báo thủ thư nhập ít nhất 1 thông


tin tìm kiếm nếu thủ thư chưa nhập thông
tin nào để tìm kiếm
3b. Hệ thống Thông báo không có tài khoản nào phù
hợp nếu không tìm được tài khoản nào
Hậu điều kiện Hệ thống hiển thị những tài khoản độc giả tìm được

38
8.8. Đặc tả use case UC21 “Xem danh sách tài khoản”
Mã Use case UC21 Tên Use case Xem danh sách tài khoản

Tác nhân Thủ thư

Mục đích sử dụng Thủ thư xem danh sách tài khoản độc giả

Sự kiện kích hoạt Thủ thư chọn chức năng xem danh sách tài khoản

Tiền điều kiện Đã đăng nhập với vai trò là Thủ thư

Luồng sự kiện chính STT Thực hiện bởi Hành động

1. Thủ thư Chọn chức năng Xem danh sách tài khoản
độc giả

2. Hệ thống Lấy danh sách tài khoản độc giả và hiện


thị giao diện danh sách tài khoản độc giả

Luồng sự kiện thay thế Không

Hậu điều kiện Hệ thống hiển thị danh sách tài khoản độc giả

8.9. Đặc tả use case UC22 “Xem chi tiết thông tin tài
khoản độc giả”
Mã Use case UC22 Tên Use case Xem chi tiết thông tin tài khoản độc giả

Tác nhân Thủ thư

Mục đích sử dụng Thủ thư muốn xem chi tiết thông tin tài khoản độc giả

Sự kiện kích hoạt Thủ thư chọn chức năng Xem chi tiết thông tin tài khoản độc giả

Tiền điều kiện Đã đăng nhập với vai trò là Thủ thư

Luồng sự kiện chính STT Thực hiện bởi Hành động

1. Thủ thư Chọn tài khoản cần xem chi tiết và chọn
chức năng xem chi tiết thông tin tài khoản

2. Hệ thống Hiển thị thông tin chi tiết về tài khoản độc
giả mà thủ thư đã chọn

Luồng sự kiện thay thế Không

Hậu điều kiện Hệ thống hiển thị thông tin chi tiết về tài khoản độc giả được chọn

39
8.10. Đặc tả use case UC23 “Thay đổi trạng thái tài
khoản độc giả”
Mã Use case UC23 Tên Use case Thay đổi trạng thái
tài khoản độc giả

Tác nhân Thủ thư

Mục đích sử dụng Thủ thư muốn khóa hoặc mở khóa cho một tài khoản

Sự kiện kích hoạt Thủ thư chọn chức năng Khóa/Mở khóa tài khoản

Tiền điều kiện Đã đăng nhập với vai trò là Thủ thư

Luồng sự kiện chính STT Thực hiện bởi Hành động

1. Thủ thư Từ giao diện xem chi tiết tài khoản độc
giả, thủ thư chọn chức năng Khóa/Mở
khóa tài khoản

2. Hệ thống Yêu cầu thủ thư xác nhận có Khóa/Mở


khóa tài khoản hay không

3. Thủ thư Xác nhận Khóa/Mở khóa tài khoản

4. Hệ thống Khóa tài khoản nếu tài khoản đang không


bị khóa hoặc mở khóa tài khoản nếu tài
khoản đang bị khóa và thông báo thành
công

Luồng sự kiện thay thế STT Thực hiện bởi Hành động

3a1. Thủ thư Hủy Khóa/Mở khóa tài khoản

3a2. Hệ thống Hủy việc Khóa/Mở khóa tài khoản

Hậu điều kiện Hệ thống thay đổi trạng thái tài khoản được chọn và báo thành công

40
8.11. Đặc tả use case UC24 “Xem lịch sử mượn trả
sách của một tài khoản”
Mã Use case UC24 Tên Use Xem lịch sử mượn trả
case sách của một tài khoản

Tác nhân Thủ thư

Mục đích sử dụng Thủ thư xem danh sách mượn trả sách của một tài khoản

Sự kiện kích hoạt Thủ thư chọn chức năng Xem lịch sử mượn trả sách của một tài
khoản

Tiền điều kiện Đã đăng nhập với vai trò là Thủ thư

Luồng sự kiện chính STT Thực hiện Hành động


bởi

1. Thủ thư Từ giao diện xem chi tiết tài khoản


độc giả chọn chức năng xem lịch sử
mượn trả sách

2. Hệ thống Hiển thị lịch sử mượn trả sách của tài


khoản

Luồng sự kiện thay STT Thực hiện Hành động


thế
bởi

2a. Hệ thống Thông báo tài khoản chưa có hoạt


động mượn trả sách nếu độc giả đó
chưa mượn trả sách lần nào

Hậu điều kiện Hệ thống hiển thị lịch sử mượn trả sách của tài khoản được
chọn

41
8.12. Đặc tả use case UC25 “Xem lịch sử mượn trả
sách của tất cả các tài khoản”
Mã Use case UC25 Tên Use Xem lịch sử mượn trả sách
case của tất cả các tài khoản

Tác nhân Thủ thư

Mục đích sử dụng Xem lịch sử mượn trả sách của tất cả các tài khoản

Sự kiện kích hoạt Thủ thư chọn chức năng Xem lịch sử mượn trả sách của tất cả
các tài khoản

Tiền điều kiện Đã đăng nhập với vai trò là Thủ thư

Luồng sự kiện chính STT Thực hiện Hành động


bởi

1. Thủ thư Chọn chức năng Xem lịch sử mượn trả


sách của tất cả các tài khoản

2. Hệ thống Lấy lịch sử mượn trả sách của tất cả


các tài khoản từ CSDL và hiện thị lên
cho thủ thư

Luồng sự kiện thay Không


thế

Hậu điều kiện Hệ thống hiển thị lịch sử mượn trả sách của tất cả các tài khoản

42
8.13. Đặc tả use case UC26 “Tìm kiếm các lượt mượn
trả sách”
Mã Use case UC26 Tên Use case Tìm kiếm lượt
mượn trả sách

Tác nhân Thủ thư

Mục đích sử dụng Tìm kiếm lịch sử mượn trả sách

Sự kiện kích hoạt Thủ thư chọn chức năng Tìm kiếm các lượt mượn trả sách

Tiền điều kiện Đã đăng nhập với vai trò là Thủ thư

Luồng sự kiện STT Thực hiện Hành động


chính
bởi

1. Thủ thư Chọn chức năng Tìm kiếm các lượt


mượn trả sách

2. Hệ thống Yêu cầu thủ thư nhập các thông tin tìm
kiếm như Thời gian, đầu sách mượn, tài
khoản mượn

3. Thủ thư Nhập những thông tin tìm kiếm cần thiết
và yêu cầu hệ thống tìm

4. Hệ thống Tìm kiếm các lượt mượn trả sách phù


hợp với các thông tin thủ thư đã nhập

5. Hệ thống Hiển thị các lượt mượn trả sách thỏa


mãn

Luồng sự kiện STT Thực hiện Hành động


thay thế
bởi

4a. Hệ thống Yêu cầu thủ thư nhập ít nhất 1 thông tin
tìm kiếm nếu thủ thư chưa nhập thông
tin nào

5a. Hệ thống Thông báo không có lượt mượn trả sách


phù hợp nếu hệ thống không tìm được
lượt nào thỏa mãn

Hậu điều kiện Hệ thống hiển thị các lượt mượn trả sách thỏa mãn

43
8.14. Đặc tả use case UC27 “Xem chi tiết 1 lượt mượn
trả sách”
Mã Use case UC27 Tên Use case Xem chi tiết lượt mượn trả sách

Tác nhân Thủ thư

Mục đích sử dụng Xem chi tiết 1 lượt mượn trả sách

Sự kiện kích hoạt Thủ thư chọn chức năng Xem chi tiết 1 lượt mượn trả sách

Tiền điều kiện Đã đăng nhập với vai trò là Thủ thư

Luồng sự kiện chính STT Thực hiện bởi Hành động

1. Thủ thư Chọn 1 lượt mượn trả sách cần xem chi
tiết và chọn chức năng xem chi tiết lượt
mượn trả sách

2. Hệ thống Hiển thị thông tin chi tiết của lượt mượn
trả sách đã chọn

Luồng sự kiện thay thế Không

Hậu điều kiện Hệ thống hiển thị thông tin chi tiết của lượt mượn trả sách đã chọn

8.15. Đặc tả use case UC32 “Xác nhận đã trả sách”


Mã Use case UC32 Tên Use case Xác nhận đã trả sách

Tác nhân Thủ thư

Mục đích sử dụng Xác nhận 1 lượt mượn trả sách kết thúc bằng việc trả sách

Sự kiện kích hoạt Thủ thư chọn chức năng Xác nhận đã trả sách

Tiền điều kiện Đã đăng nhập với vai trò là Thủ thư

Luồng sự kiện chính STT Thực hiện bởi Hành động

1. Thủ thư Chọn 1 lượt mượn trả sách cần xác nhận
và chọn chức năng xác nhận đã trả sách

2. Hệ thống Cập nhật thông tin lên CSDL

Luồng sự kiện thay thế Không

Hậu điều kiện Hệ thống cập nhật thông tin đã trả sách lên CSDL

44
8.16. Đặc tả use case UC28 “Cập nhật thông tin tài khoản”
Mã Use case UC28 Tên Use case Cập nhật thông tin
Tác nhân Thủ thư
Mục đích sử
Cập nhật thông tin cá nhân
dụng
Sự kiện kích
Thủ thư chọn chức năng cập nhật thông tin
hoạt
Tiền điều kiện Đã đăng nhập thành công với vai trò là thủ thư
Luồng sự kiện
chính Thực hiện
STT Hành động
bởi

1. Thủ thư Chọn chức năng Cập nhật thông tin

2. Hệ thống Hiển thị giao diện Cập nhật thông tin

3. Thủ thư Nhập các thông tin mới của tài khoản

4. Thủ thư Xác nhận cập nhật thông tin


Kiểm tra xem các thông tin mới có hợp lệ
5. Hệ thống
không

6. Hệ thống Cập nhật các thay đổi của thủ thư

Luồng sự kiện
thay thế Thực hiện
STT Hành động
bởi

Thông báo “Các thông tin mới không hợp


5a. Hệ thống lệ” nếu các thông tin không hợp lệ và yêu
cầu nhập lại

Hậu điều kiện Hệ thống cập nhật các thông tin thay đổi và thông báo cập nhật thành công

45
8.17. Đặc tả use case UC29 “Đổi mật khẩu”
Mã Use case UC29 Tên Use case Thay đổi mật khẩu
Tác nhân Thủ thư
Mục đích sử
Thay đổi mật khẩu của tài khoản
dụng
Sự kiện kích
Thủ thư chọn chức năng thay đổi mật khẩu
hoạt
Tiền điều kiện Đã đăng nhập thành công với vai trò là thủ thư
Luồng sự kiện
Thực hiện
chính STT Hành động
bởi

1. Thủ thư Chọn chức năng Thay đổi mật khẩu

2. Hệ thống Hiển thị giao diện Thay đổi mật khẩu

3. Thủ thư Nhập mật khẩu cũ

4. Hệ thống Kiểm tra xem mật khẩu cũ có đúng không

5. Thủ thư Nhập mật khẩu mới 2 lần


Kiểm tra xem 2 lần nhập mật khẩu có
6. Hệ thống
giống nhau không

7. Thủ thư Xác nhận thay đổi mật khẩu

8. Hệ thống Thay đổi mật khẩu của tài khoản độc giả

Luồng sự kiện Thực hiện


thay thế STT Hành động
bởi

Thông báo “Sai mật khẩu” nếu mật khẩu


6a. Hệ thống
cũ không đúng và yêu cầu nhập lại
Thông báo “2 mật khẩu không khớp” nếu
8a. Hệ thống 2 lần nhập mật khẩu không trùng nhau
và yêu cầu nhập lại
Hệ thống thay đổi mật khẩu tài khoản trong CSDL và thông báo đổi thành
Hậu điều kiện
công

46
8.18. Đặc tả use case UC30 “Đăng xuất”
Mã Use case UC30 Tên Use case Đăng xuất
Tác nhân Thủ thư
Mục đích sử
Đăng xuất khỏi hệ thống
dụng
Sự kiện kích
Thủ thư chọn chức năng đăng xuất
hoạt
Tiền điều
Đã đăng nhập thành công với vai trò là Thủ thư
kiện
Luồng sự
kiện chính STT Thực hiện Hành động
(Thành công) bởi

1. Thủ thư Chọn chức năng Đăng xuất


2. Hệ thống Hỏi lại người chơi có chắc chắn muốn
đăng xuất
3. Thủ thư Xác nhận đăng xuất
4. Hệ thống Đăng xuất khỏi tài khoản của thủ thư
5. Hệ thống Hiển thị giao diện Đăng nhập

Luồng sự
kiện thay thế STT Thực hiện Hành động
bởi

3a1. Thủ thư Thủ thư không muốn đăng xuất nữa
3a2. Hệ thống Hủy Đăng xuất

Hậu điều kiện Hệ thống trả về màn hình đăng nhập

47
8.19. Đặc tả use case UC31 “Duyệt yêu cầu gia hạn
mượn sách”
Duyệt yêu cầu gia
Mã Use case UC31 Tên Use case
hạn mượn sách

Tác nhân Thủ thư

Mục đích sử dụng Duyệt yêu cầu gia hạn mượn sách

Sự kiện kích hoạt Thủ thư chọn chức năng Duyệt yêu cầu gia hạn mượn sách

Tiền điều kiện Đã đăng nhập thành công với vai trò là Thủ thư
Luồng sự kiện STT Thực hiện bởi Hành động
chính
(Thành công) 1. Chọn chức năng Duyệt yêu cầu gia
Thủ thư
hạn mượn sách
2. Hệ thống Hiện thị các yêu cầu gia hạn mượn
sách
3. Thủ thư Chọn 1 yêu cầu gia hạn
4. Hệ thống Hiển thị chi tiết thông tin yêu cầu
gia hạn mượn sách mà thủ thư chọn
5. Thủ thư Đồng ý việc gia hạn mượn sách

6. Hệ thống Gửi thông báo đến độc giả và thêm


thông tin gia hạn vào CSDL
Luồng sự kiện STT Thực hiện bởi Hành động
thay thế
5a1. Từ chối việc gia hạn mượn sách
Thủ thư
và nhập lý do
3a2. Hệ thống Gửi thông báo từ chối gia hạn
mượn sách và lý do đến độc giả

Hậu điều kiện Gửi thông báo đến độc giả và cập nhật thông tin vào CSDL

48
III. Phân tích yêu cầu phi chức năng
1. Yêu cầu bảo mật
- Các use case ứng với mỗi tác nhân thì phải đăng nhập với vai
trò tương ứng mới có thể sử dụng được
- Mật khẩu được lưu vào CSDL sau khi đã được mã hóa

2. Yêu cầu giao diện


- Ngôn ngữ sử dụng trong hệ thống là tiếng Việt
- Giao diện web có khả năng tương thích với nhiều kích cỡ màn
hình khác nhau
- Định dạng ngày sử dụng trong hệ thống là dd/mm/yyyy

3. Yêu cầu nền tảng và trình duyệt


- Hỗ trợ các trình duyệt thông dụng hiện nay như: Cốc cốc,
Microsoft Edge, Google Chrome, Fire Fox, Safari, …

49
Chương 3: Thiết kế hệ thống
I. Mô hình hóa cấu trúc hệ thống
1. Nhóm ca sử dụng của “Khách”
1.1. Ca sử dụng “Đăng nhập”

1.2. Ca sử dụng “Lấy lại mật khẩu”

1.3. Ca sử dụng “Tạo tài khoản”

50
1.4. Ca sử dụng “Tìm kiếm sách”

2. Nhóm ca sử dụng của “Độc giả”


2.1. Ca sử dụng “Tìm kiếm sách”

2.2. Ca sử dụng “Đăng ký mượn sách”

51
2.3. Ca sử dụng “Thêm sách vào giỏ”

2.4. Ca sử dụng “Xem giỏ sách”

2.5. Ca sử dụng “Gia hạn mượn sách”

2.6. Ca sử dụng “Cập nhật thông tin tài khoản”

52
2.7. Ca sử dụng “Đổi mật khẩu”

2.8. Ca sử dụng “Đăng xuất”

2.9. Ca sử dụng “Xem chi tiết đầu sách”

2.10. Ca sử dụng “Xem lịch sử mượn trả sách”

53
2.11. Ca sử dụng “Xóa sách khỏi giỏ sách”

3. Nhóm ca sử dụng của “Thủ thư”


3.1. Ca sử dụng “Thêm đầu sách mới”

3.2. Ca sử dụng “Xem danh sách đầu sách”

54
3.3. Ca sử dụng “Tìm kiếm đầu sách”

3.4. Ca sử dụng “Xem chi tiết đầu sách”

3.5. Ca sử dụng “Sửa thông tin đầu sách”

55
3.6. Ca sử dụng “Xóa đầu sách”

3.7. Ca sử dụng “Tìm kiếm tài khoản độc giả”

3.8. Ca sử dụng “Xem danh sách tài khoản độc giả”

56
3.9. Ca sử dụng “Xem chi tiết thông tin tài khoản độc giả”

3.10. Ca sử dụng “Thay đổi trạng thái tài khoản độc giả”

3.11. Ca sử dụng “Xem lịch sử mượn trả sách của một


tài khoản”

57
3.12. Ca sử dụng “Xem lịch sử mượn trả sách của tất
cả các tài khoản

3.13. Ca sử dụng “Tìm kiếm các lượt mượn trả sách”

3.14. Ca sử dụng “Xem chi tiết một lượt mượn trả sách”

58
3.15. Ca sử dụng “Xác nhận đã trả sách”

3.16. Ca sử dụng “Cập nhật thông tin tài khoản”

3.17. Ca sử dụng “Đổi mật khẩu”

59
3.18. Ca sử dụng “Đăng xuất”

3.19. Ca sử dụng “Duyệt yêu cầu gia hạn mượn sách”

60
II. Mô hình hóa sự tương tác
1. Nhóm ca sử dụng của “Khách”
1.1. Ca sử dụng “Đăng nhập”

1.2. Ca sử dụng “Lấy lại mật khẩu”

61
1.3. Ca sử dụng “Tạo tài khoản”

1.4. Ca sử dụng “Tìm kiếm sách”

62
2. Nhóm ca sử dụng của “Độc giả”
2.1. Ca sử dụng “Tìm kiếm sách”

2.2. Ca sử dụng “Đăng ký mượn sách”

63
2.3. Ca sử dụng “Thêm sách vào giỏ”

2.4. Ca sử dụng “Xem giỏ sách”

2.5. Ca sử dụng “Gia hạn mượn sách”

64
2.6. Ca sử dụng “Cập nhật thông tin tài khoản”

2.7. Ca sử dụng “Đổi mật khẩu”

65
2.8. Ca sử dụng “Đăng xuất”

2.9. Ca sử dụng “Xem chi tiết đầu sách”

2.10. Ca sử dụng “Xem lịch sử mượn trả sách”

66
2.11. Ca sử dụng “Xóa sách khỏi giỏ sách”

3. Nhóm ca sử dụng của “Thủ thư”


3.1. Ca sử dụng “Thêm đầu sách mới”

3.2. Ca sử dụng “Xem danh sách đầu sách”

67
3.3. Ca sử dụng “Tìm kiếm đầu sách”

3.4. Ca sử dụng “Xem chi tiết đầu sách”

68
3.5. Ca sử dụng “Sửa thông tin đầu sách”

3.6. Ca sử dụng “Xóa đầu sách”

69
3.7. Ca sử dụng “Tìm kiếm tài khoản độc giả”

3.8. Ca sử dụng “Xem danh sách tài khoản độc giả”

3.9. Ca sử dụng “Xem chi tiết thông tin tài khoản độc giả”

70
3.10. Ca sử dụng “Thay đổi trạng thái tài khoản độc giả”

3.11. Ca sử dụng “Xem lịch sử mượn trả sách của một


tài khoản”

3.12. Ca sử dụng “Xem lịch sử mượn trả sách của tất


cả các tài khoản”

71
3.13. Ca sử dụng “Tìm kiếm các lượt mượn trả sách”

3.14. Ca sử dụng “Xem chi tiết một lượt mượn trả sách”

3.15. Ca sử dụng “Xác nhận đã trả sách”

72
3.16. Ca sử dụng “Cập nhật thông tin tài khoản”

3.17. Ca sử dụng “Đổi mật khẩu”

73
3.18. Ca sử dụng “Đăng xuất”

3.19. Ca sử dụng “Duyệt yêu cầu gia hạn mượn sách”

74
III. Thiết kế kiến trúc tổng thể của hệ thống
Kiến trúc phân tầng của hệ thống được thể hiện trong hình vẽ sau đây

75
1. Tầng trình bày
Gồm các lát:
❖ GD Khách:
- Đăng ký
- Đăng nhập
- Lấy lại mật khẩu
- Tìm kiếm sách

❖ GD Độc giả:
- Tìm kiếm sách
- Xem giỏ sách
- Thêm sách vào giỏ
- Xóa sách khỏi giỏ
- Mượn sách
- Gia hạn
- Xem thông tin tài khoản
- Đăng xuất

❖ GD Thủ thư:
- Quản lý độc giả
- Quản lý đầu sách
- Quản lý mượn trả sách
- Xem thông tin tài khoản
- Đăng xuất

2. Tầng ứng dụng


Gồm các lát:
- ĐK Khách
- ĐK Độc giả
- ĐK Thủ thư
- ĐK Sách
- ĐK Mượn sách
- ĐK Gia hạn

76
3. Tầng nghiệp vụ
Gồm các lát:
❖ Khách:
- Đăng ký
- Đăng nhập
- Lấy lại mật khẩu
- Tìm kiếm

❖ Độc giả:
- Tìm kiếm
- Xem tài khoản
- Đổi mật khẩu
- Đăng xuất

❖ Thủ thư:
- Quản lý đầu sách
- Quản lý độc giả
- Xem tài khoản
- Đổi mật khẩu
- Đăng xuất

❖ Gia hạn:
- Yêu cầu gia hạn thời gian mượn
- Phê duyệt yêu cầu mượn sách

❖ Sách:
- Tìm kiếm sách
- Xem thông tin sách
- Thêm sách vào giỏ

❖ Mượn sách:
- Đăng ký mượn sách

77
4. Tầng lưu trữ dữ liệu
Gồm các lát :
- Tài khoản: Thông tin các tài khoản.
- Sách: Thông tin về sách.
- Mượn sách: Thông tin mượn sách.
- Gia hạn: Thông tin gia hạn sách

IV. Thiết kế chi tiết lớp


1. Sơ đồ gói

2. Sơ đồ lớp tổng quan gói Model


Gói Model chứa các lớp thực thể quản lý các dữ liệu cần thiết cho hoạt động
của hệ thống

78
2.1. Lớp M_Book
Mô tả: Khai báo thông tin về cuốn sách
Các thuộc tính:

Tên Kiểu dữ liệu Phạm vi truy cập Mô tả


bookID String public Mã cuốn sách
titleID int public Mã đầu sách
username String public Tên người mượn

Các phương thức:

Tên Đầu vào Đầu ra Phạm vi truy cập Mô tả


getBook() bookID Book public Lấy thông tin sách
addBook() Book void public Thêm sách
updateBook() Book void public Cập nhật thông tin sách
deleteBook() bookID void public Xóa thông tin sách

2.2. Lớp M_BookTitle


Mô tả: Khai báo thông tin về đầu sách
Các thuộc tính:

Tên Kiểu dữ liệu Phạm vi truy cập Mô tả


titleID String public Mã sách
name int public Tên sách
author String public Tác giả
pageNumber int public Số trang
category String public Thể loại
publishYear int public Năm xuất bản
totalBook int public Tổng số cuốn sách
bookLeft int public Số cuốn còn lại

79
Các phương thức:

Phạm vi
Tên Đầu vào Đầu ra Mô tả
truy cập
Lấy thông tin
getBookTitle() titleID bookTitle public
đầu sách
addBookTitle() bookTitle void public Thêm đầu sách
Cập nhật thông
updateBookTitle() bookTitle void public
tin đầu sách
Xóa thông tin
deleteBookTitle() titleID void public
đầu sách

2.3. Lớp M_Account


Mô tả: Khai báo thông tin về tài khoản
Các thuộc tính:

Tên Kiểu dữ liệu Phạm vi truy cập Mô tả


username String public Tên đăng nhập
password String public Mật khẩu

Các phương thức:

Phạm vi
Tên Đầu vào Đầu ra Mô tả
truy cập
addAccount() void Account public Thêm tài khoản
changePassword() password void public Đổi mật khẩu
deleteAccount() username void public Xóa tài khoản

80
2.4. Lớp M_User
Mô tả: Khai báo thông tin về độc giả
Các thuộc tính:

Tên Kiểu dữ liệu Phạm vi truy cập Mô tả


fullName String public Tên độc giả
gender String public Giới tính
email String public Địa chỉ email
birthday Date public Sinh nhật
phone int public Số điện thoại
createAt Date public Ngày tạo
isLock Boolean public Trạng thái bị khóa

Các phương thức:


Tên Đầu vào Đầu ra Phạm vi truy cập Mô tả
addUser() void Account public Thêm tài khoản
Cập nhật thông
updateUser() User void public
tin tài khoản
getDetailUser() Username void public Xem chi tiết
deleteUser() Username void public Xóa tài khoản

81
2.5. Lớp M_Admin
Mô tả: Khai báo thông tin về thủ thư
Các thuộc tính:

Tên Kiểu dữ liệu Phạm vi truy cập Mô tả


fullName String public Tên thủ thư
gender String public Giới tính
email String public Địa chỉ email
birthday Date public Sinh nhật
phone int public Số điện thoại
createAt Date public Ngày tạo

Các phương thức:

Phạm vi
Tên Đầu vào Đầu ra Mô tả
truy cập
addAdmin() void Account public Thêm tài khoản
Cập nhật thông
updateAdmin() Admin void public
tin tài khoản
getDetailAdmin() AdminName void public Xem chi tiết
deleteAdmin() AdminName void public Xóa tài khoản

2.6. Lớp M_Cart


Mô tả: Khai báo thông tin giỏ sách
Các thuộc tính:

Tên Kiểu dữ liệu Phạm vi truy cập Mô tả


Tên giỏ sách (gắn với
username String public
tên người mượn)
bookTitleID String public Tên sách mượn
quantityBorrow int public Số lượng mượn

82
Các phương thức:

Phạm vi
Tên Đầu vào Đầu ra Mô tả
truy cập
addToCart() username void public Thêm sách vào giỏ
getCart() username void public Xem giỏ sách
deleteFromCart() username void public Xóa sách khỏi giỏ

2.7. Lớp M_Transaction


Mô tả: Khai báo thông tin giao dịch
Các thuộc tính:

Tên Kiểu dữ liệu Phạm vi truy cập Mô tả


transactionID String public Mã giao dịch
bookName String public Tên đầu sách
bookID String public Mã cuốn sách
username String public Tên người mượn
transactionDate Date public Thời gian mượn
isReturn boolean public Đã trả sách chưa?
Ngày trả dự kiến
(nếu chưa trả sách)
returnDate Date public
hoặc ngày trả thực tế
(nếu đã trả sách)

Các phương thức:

Phạm vi
Tên Đầu vào Đầu ra Mô tả
truy cập
addTransaction() transaction void public Thêm giao dịch
getTransaction() transactionID void public Xem giao dịch
updateTransaction() transactionID void public Cập nhật giao dịch

83
2.8. Lớp M_Extension
Mô tả: Khai báo các thông tin các gia hạn
Các thuộc tính:

Tên Kiểu dữ liệu Phạm vi truy cập Mô tả


extensionID String public Mã thông báo gia hạn
transactionID String public Mã giao dịch
username String public Tên người mượn
newReturnDate Date public Ngày trả sau gia hạn
isApprove boolean public Thủ thư đồng ý gia hạn?
note String public Lý do không đồng ý gia hạn

Các phương thức

Phạm vi
Tên Đầu vào Đầu ra Mô tả
truy cập
addExtension() Extension void public Thêm gia hạn
approve() ExtensionID void public Đồng ý gia hạn
extendReturnDate() ExtensionID void public Cập nhật ngày trả

3. Sơ đồ lớp tổng quan gói Control


Gói Control bao gồm các lớp điều khiển quản lý các luồng xử lý nghiệp vụ

84
3.1. Lớp C_book
Mô tả: Điều khiển xử lý về cuốn sách
Các phương thức:

Tên Đầu vào Đầu ra Phạm vi truy cập Mô tả


addBook() Book void public Thêm sách
deleteBook() Book void public Xóa sách
getBook() String Book public Xem thông tin sách
borrow() String void public Mượn sách

3.2. Lớp C_bookTitle


Mô tả: Điều khiển xử lý về đầu sách
Các phương thức:

Phạm vi
Tên Đầu vào Đầu ra Mô tả
truy cập
addTitle() BookTitle void public Thêm đầu sách
deleteTitle() BookTitle void public Xóa đầu sách
updateTitle() BookTitle void public Cập nhật đầu sách
getTitle() String List<BookTitle> public Xem danh sách đầu sách
searchTitle() String List<BookTitle> public Tìm kiếm đầu sách
getAllTitle() void List<BookTitle> public Xem tất cả đầu sách

85
3.3. Lớp C_user
Mô tả: Điều khiển xử lý về độc giả
Các phương thức:

Phạm vi
Tên Đầu vào Đầu ra Mô tả
truy cập
update() User void public Cập nhật thông tin tài khoản
getUser() String User public Xem thông tin tài khoản
getAllUsers() String List<User> public Xem danh sách độc giả
searchUser() String List<User> public Tìm kiếm độc giả
updateStatus() bool void public Cập nhật trạng thái tài khoản
delete() void void public Xóa độc giả

3.4. Lớp C_admin


Mô tả: Điều khiển xử lý về thủ thư
Các phương thức:

Phạm vi
Tên Đầu vào Đầu ra Mô tả
truy cập
update() Admin void public Cập nhật thông tin tài khoản
getAdmin() String Admin public Xem thông tin tài khoản
delete() void void public Xóa tài khoản

86
3.5. Lớp C_authentication
Mô tả: Điều khiển xử lý xác thực người dùng
Các phương thức:

Phạm vi
Tên Đầu vào Đầu ra Mô tả
truy cập
recoverPassword() phone void public Lấy lại mật khẩu
verify() password void public Xác thực mật khẩu
register() Account void public Đăng kí tài khoản
username
login() void public Đăng nhập tài khoản
password
logout() void void public Đăng xuất tài khoản

3.6. Lớp C_cart


Mô tả: Điều khiển xử lý về giỏ sách
Các phương thức:

Phạm vi
Tên Đầu vào Đầu ra Mô tả
truy cập
addToCart() Book void public Thêm sách vào giỏ
deleteFromCart() Book void public Xóa sách khỏi giỏ
getCart() String Cart public Xem giỏ sách

87
3.7. Lớp C_transaction
Mô tả: Điều khiển xử lý giao dịch
Các phương thức:

Phạm vi
Tên Đầu vào Đầu ra Mô tả
truy cập
addTransaction() Transaction void public Thêm giao dịch
updateTransaction() Transaction void public Cập nhật giao dịch
getTransaction() String Transaction public Xem chi tiết giao dịch
getAllTransaction() void List<Transaction> public Xem tất cả giao dịch
getAccountTransaction() void List<Transaction> public Xem lịch sử giao dịch
searchTransaction String List<Transaction> public Tìm kiếm giao dịch

3.8. Lớp C_extension


Mô tả: Điều khiển xử lý về gia hạn
Các phương thức:

Phạm vi
Tên Đầu vào Đầu ra Mô tả
truy cập
getAllExtension() void List<Extension> public Xem tất cả thông báo
getExtension() String Extension public Xem chi tiết thông báo
Thủ thư xác nhận gia
approve() boolean void public
hạn sách
extendReturnDate() datetime void public Gia hạn ngày trả

88
4. Sơ đồ lớp tổng quan gói View
Gói View bao gồm các lớp quản lý các thành phần giao diện tương tác giữa
người dùng và hệ thống

4.1. Lớp V_book


Mô tả: Quản lý tương tác về cuốn sách
Các thuộc tính:

Tên Kiểu dữ liệu Phạm vi truy cập Mô tả


bookID String public Mã cuốn sách
titleID int public Mã đầu sách
username String public Tên người mượn

89
Các phương thức:

Phạm vi
Tên Đầu vào Đầu ra Mô tả
truy cập
addBook() Book void public Thêm sách
deleteBook() Book void public Xóa sách
getBook() String Book public Xem thông tin sách
borrow() String void public Mượn sách

4.2. Lớp V_bookTitle


Mô tả: Quản lý tương tác về đầu sách
Các thuộc tính:

Tên Kiểu dữ liệu Phạm vi truy cập Mô tả


titleID String public Mã sách
name int public Tên sách
author String public Tác giả
pageNumber int public Số trang
category String public Thể loại
publishYear int public Năm xuất bản
totalBook int public Tổng số cuốn sách
bookLeft int public Số cuốn còn lại

90
Các phương thức:

Phạm vi
Tên Đầu vào Đầu ra Mô tả
truy cập
addTitle() BookTitle void public Thêm đầu sách
deleteTitle() BookTitle void public Xóa đầu sách
updateTitle() BookTitle void public Cập nhật đầu sách
getTitle() String List<BookTitle> public Xem danh sách đầu sách
searchTitle() String List<BookTitle> public Tìm kiếm đầu sách
getAllTitle() void List<BookTitle> public Xem tất cả đầu sách

4.3. Lớp V_user


Mô tả: Quản lý tương tác về độc giả
Các thuộc tính:

Tên Kiểu dữ liệu Phạm vi truy cập Mô tả


username String public Tên đăng nhập
password String public Mật khẩu
fullName String public Tên độc giả
gender String public Giới tính
email String public Địa chỉ email
birthday Date public Sinh nhật
phone int public Số điện thoại
createAt Date public Ngày tạo
isLock boolean public Trạng thái tài khoản

91
Các phương thức:

Phạm vi
Tên Đầu vào Đầu ra Mô tả
truy cập
update() User void public Cập nhật thông tin tài khoản
getUser() String User public Xem thông tin tài khoản
getAllUsers() String List<User> public Xem danh sách độc giả
searchUser() String List<User> public Tìm kiếm độc giả
updateStatus() bool void public Cập nhật trạng thái tài khoản
delete() void void public Xóa độc giả

4.4. Lớp V_admin


Mô tả: Quản lý tương tác về thủ thư
Các thuộc tính:

Tên Kiểu dữ liệu Phạm vi truy cập Mô tả


username String public Tên đăng nhập
password String public Mật khẩu
fullName String public Tên thủ thư
gender String public Giới tính
email String public Địa chỉ email
birthday Date public Sinh nhật
phone int public Số điện thoại
createAt Date public Ngày tạo

92
Các phương thức:

Phạm vi
Tên Đầu vào Đầu ra Mô tả
truy cập
update() Admin void public Cập nhật thông tin tài khoản
getAdmin() String Admin public Xem thông tin tài khoản
delete() void void public Xóa tài khoản

4.5. Lớp V_authentication


Mô tả: Khai báo thông tin xác thực người dùng
Các thuộc tính:

Tên Kiểu dữ liệu Phạm vi truy cập Mô tả


username String public Tên đăng nhập
password String public Mật khẩu
fullName String public Tên độc giả
gender String public Giới tính
email String public Địa chỉ email
birthday Date public Sinh nhật
phone int public Số điện thoại
newPassword String public Mật khẩu mới
confirmPassword String public Xác nhận mật khẩu

93
Các phương thức:

Phạm vi
Tên Đầu vào Đầu ra Mô tả
truy cập
recoverPassword() String void public Lấy lại mật khẩu
verify() String void public Xác thực mật khẩu
register() Account void public Đăng kí tài khoản
login() Account void public Đăng nhập tài khoản
logout() void void public Đăng xuất tài khoản

4.6. Lớp V_cart


Mô tả: Quản lý tương tác về giỏ sách
Các thuộc tính:

Tên Kiểu dữ liệu Phạm vi truy cập Mô tả


Tên giỏ sách (gắn
username String public
với tên người mượn)
bookTitleID String public Tên sách mượn
quantityBorrow int public Số lượng mượn

Các phương thức:

Phạm vi
Tên Đầu vào Đầu ra Mô tả
truy cập
addToCart() Book void public Thêm sách vào giỏ
deleteFromCart() Book void public Xóa sách khỏi giỏ
getCart() String Cart public Xem giỏ sách

94
4.7. Lớp V_transaction
Mô tả: Quản lý tương tác giao dịch
Các thuộc tính:

Tên Kiểu dữ liệu Phạm vi truy cập Mô tả


transactionID int public Mã giao dịch
bookName String public Tên đầu sách
bookID String public Mã cuốn sách
username String public Tên người mượn
transactionDate Date public Thời gian mượn
isReturn boolean public Đã trả sách chưa?
Ngày trả dự kiến (nếu chưa
returnDate Date public trả sách) hoặc ngày trả
thực tế (nếu đã trả sách)

Các phương thức:

Phạm vi
Tên Đầu vào Đầu ra Mô tả
truy cập
addTransaction() Transaction void public Thêm giao dịch
updateTransaction() Transaction void public Cập nhật giao dịch
getTransaction() String Transaction public Xem chi tiết giao dịch
getAllTransaction() void List<Transaction> public Xem tất cả giao dịch
getAccountTransaction() void List<Transaction> public Xem lịch sử giao dịch
searchTransaction String List<Transaction> public Tìm kiếm giao dịch

95
4.8. Lớp V_extension
Mô tả: Quản lý tương tác về gia hạn
Các thuộc tính:

Tên Kiểu dữ liệu Phạm vi truy cập Mô tả


extensionID String public Mã thông báo gia hạn
transactionID String public Mã giao dịch
username String public Tên người mượn
newReturnDate Date public Ngày trả sau gia hạn
isApprove boolean public Thủ thư đồng ý gia hạn?
note String public Lý do không đồng ý gia hạn

Các phương thức:

Đầu Phạm vi
Tên Đầu ra Mô tả
vào truy cập
getAllExtension() void List<Extension> public Xem tất cả thông báo
getExtension() String Extension public Xem chi tiết thông báo
Thủ thư xác nhận gia
approve() boolean void public
hạn sách
extendReturnDate() datetime void public Gia hạn ngày trả

96
V. Thiết kế cơ sở dữ liệu dữ liệu
1. Sơ đồ quan hệ bảng dữ liệu

2. Danh sách các bảng dữ liệu


Tên bảng dữ liệu Mô tả

Account Thông tin tài khoản

User Thông tin độc giả

Admin Thông tin thủ thư

Book Thông tin cuốn sách

BookTitle Thông tin đầu sách

Transaction Thông tin giao dịch

Extension Thông tin yêu cầu gia hạn

Cart Thông tin giỏ sách

97
3. Thiết kế chi tiết các bảng dữ liệu
3.1. Bảng Account
STT Tên trường Kiểu dữ liệu Nullable Ràng buộc Mô tả
1 Username varchar No PK Tên đăng nhập

2 Password varchar No Mật khẩu

3.2. Bảng User


STT Tên trường Kiểu dữ liệu Nullable Ràng buộc Mô tả
1 Username varchar No PK Tên đăng nhập

2 FullName varchar No Tên độc giả

3 Gender varchar Yes Giới tính

4 Email varchar Yes Địa chỉ email

5 Phone varchar No Số điện thoại

6 Birthday datetime Yes Sinh nhật

7 CreateAt datetime No Ngày tạo

Trạng thái tài


8 IsLock boolean No
khoản

3.3. Bảng Book


STT Tên trường Kiểu dữ liệu Nullable Ràng buộc Mô tả
1 BookID varchar No PK Mã cuốn sách

2 BookTitleID varchar No FK1 Mã đầu sách

3 Username varchar Yes FK2 Người mượn

98
3.4. Bảng Admin
STT Tên trường Kiểu dữ liệu Nullable Ràng buộc Mô tả
1 Username varchar No PK Tên tài khoản

2 FullName varchar No Tên thủ thư

3 Gender varchar Yes Giới tính

4 Email varchar No Địa chỉ email

5 Phone varchar No Số điện thoại

6 Birthday datetime Yes Sinh nhật

7 CreateAt datetime No Ngày tạo

3.5. Bảng BookTitle


STT Tên trường Kiểu dữ liệu Nullable Ràng buộc Mô tả
1 BookTitleID varchar No PK Mã đầu sách

2 BookName varchar No Tên đầu sách

3 Author varchar No Tác giả

4 Pages int Yes Số trang

5 Category varchar No Thể loại

6 PublishYear datetime No Năm xuất bản

7 Quantity int No Tổng số cuốn

8 QuantityLeft int No Số cuốn còn lại

99
3.6. Bảng Transaction
STT Tên trường Kiểu dữ liệu Nullable Ràng buộc Mô tả
1 TransactionID varchar No PK Mã tác giả

2 BookName varchar No Tên tác giả

3 BookID varchar No Mã cuốn sách

4 Username varchar No FK Tên người mượn

5 TransactionDate datetime No Ngày mượn

6 IsReturn boolean No Trạng thái trả sách

7 ReturnDate datetime No Ngày trả sách*

*: nếu độc giả chưa trả sách thì ngày trả sách là ngày dự kiến trả sách còn
nếu độc giả đã trả sách thì ngày trả là ngày thực tế trả sách

3.7. Bảng Extension


STT Tên trường Kiểu dữ liệu Nullable Ràng buộc Mô tả
1 ExtensionID varchar No PK Tên độc giả

2 TransactionID varchar No FK1 Mã đầu sách

Ngày trả sau gia


3 NewReturnDate datetime No
hạn

Thủ thư đồng ý


4 IsApprove boolean No
gia hạn

5 Username varchar No FK2 Người gia hạn


6 Note varchar Yes Lưu lý do từ chối

100
3.8. Bảng Cart
STT Tên trường Kiểu dữ liệu Nullable Ràng buộc Mô tả
1 Username varchar No PK Tên độc giả

2 BookTitleID varchar No FK Mã đầu sách

Số cuốn sách
3 QuantityBorrow int No
muốn mượn

VI. Thiết kế nguyên mẫu giao diện


1. Giao diện đăng nhập

101
2. Giao diện tạo tài khoản độc giả

3. Giao diện lấy lại mật khẩu

102
4. Trang chủ Độc giả

5. Giao diện tìm kiếm sách

103
6. Giao diện cập nhật thông tin và đổi mật khẩu

7. Giao diện giỏ sách và mượn sách

104
8. Giao diện lịch sử mượn

9. Giao diện gia hạn mượn sách

105
10. Giao diện chỉnh sửa thông tin tài khoản và mật khẩu

11. Giao diện quản lý mượn trả sách

106
12. Giao diện gia hạn mượn sách

13. Giao diện quản lý sách

107
14. Giao diện quản lý độc giả

108

You might also like