



















Preview text:
lOMoAR cPSD| 60755984
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC GIA ĐỊNH
KHOA: CÔNG NGHỆ THÔNG TIN TIỂULUẬN
XÂY DỰNG ỨNG DỤNG QUẢN LÝ SÁCH THƯ VIỆN
MÔN: LẬP TRÌNH ỨNG DỤNG VỚI JAVA
Ngành: CÔNG NGHỆ THÔNG TIN
Chuyên ngành: KỸ THUẬT PHẦN MỀM
Giảng viên hướng dẫn: TS. ĐINH HOÀNG GIA
Sinh viên thực hiện: HUỲNHNGỌCNAM MSSV: 22150216 Lớp: 221404
TP. Hồ Chí Minh, tháng 11 năm 2024 lOMoAR cPSD| 60755984
Khoa/Viện: CÔNG NGHỆ THÔNG TIN
NHẬN XÉT VÀ CHẤM ĐIỂM CỦA GIẢNG VIÊN
TIỂU LUẬN MÔN: Lập Trình Ứng Dụng Với Java 1. Họ và tên sinh
viên: Huỳnh Ngọc Nam
Tên ề tài: XÂY DỰNG ỨNG DỤNG QUẢN LÝ SÁCH THƯ VIỆN 2. Nhận xét:
a) Những kết quả ạt ược:
............................................................................................................................................
............................................................................................................................................
............................................................................................................................................
............................................................................................................................................
............................................................................................................................................
b) Những hạn chế:
............................................................................................................................................
............................................................................................................................................
............................................................................................................................................
............................................................................................................................................
............................................................................................................................................ 3. Điểm
ánh giá (theo thang iểm 10, làm tròn ến 0.5): Sinh viên:Huỳnh Ngọc Nam
Điểm số: ……….…… Điểm chữ: ……………………………………………………..
TP. HCM, ngày … tháng … năm 20……
Giảng viên chấm thi
(Ký và ghi rõ họ tên) lOMoAR cPSD| 60755984 MỤC LỤC
BẢNG PHÂN CÔNG NHIỆM VỤ .................................................................................................................... 1
CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI ................................................................................................................ 2
1.1. Tên ề tài ................................................................................................................................................... 2
1.2. Tính cấp thiết và lý do chọn ề tài ............................................................................................................ 2
1.3. Mục tiêu của ề tài .................................................................................................................................... 2
1.4. Ý nghĩa của ề tài ...................................................................................................................................... 3
1.5. Phạm vi thực hiện .................................................................................................................................... 3
1.6. Cơ sở lý thuyết ........................................................................................................................................ 3
1.6.1. MySQL ............................................................................................................................................. 3
1.6.2. JavaFX .............................................................................................................................................. 4
1.6.3. MyBatis ............................................................................................................................................ 4
1.6.4. Google Guice.................................................................................................................................... 5
1.7. Yêu cầu ề tài ............................................................................................................................................ 6
CHƯƠNG 2: PHÂN TÍCH CHỨC NĂNG HỆ THỐNG .................................................................................. 7
2.1. Danh sách các tác nhân (Actor) và chức năng (Use-case) của hệ thống ................................................. 7
2.1.1. Tác nhân (Actor) .............................................................................................................................. 7
2.1.2. Chức năng (Use-case) ...................................................................................................................... 7
2.2. Biểu ồ usecase ......................................................................................................................................... 8
2.3. Đặc tả Usecase ........................................................................................................................................ 8
2.3.1. Đặc tả Usecase “Đăng nhập”............................................................................................................ 9
2.3.3. Đặc tả usecase “Thêm người dùng” ................................................................................................. 9
2.3.4. Đặc tả usecase “Sửa người dùng” ..................................................................................................10
2.3.5. Đặc tả usecase “Xoá người dùng” ..................................................................................................11
2.3.6. Đặc tả usecase “Thêm sách” ..........................................................................................................11
2.3.7. Đặc tả usecase “Sửa sách”..............................................................................................................12
2.3.8. Đặc tả usecase “Xóa sách” .............................................................................................................13 lOMoAR cPSD| 60755984
CHƯƠNG 3: THIẾT KẾ KIẾN TRÚC HỆ THỐNG ......................................................................................14
3.1. Kiến trúc phân lớp N-Layer ..................................................................................................................14
3.2. Mô hình MVVM ...................................................................................................................................16
3.3. Bảo mật thông tin với hàm băm SHA-256 ............................................................................................16
CHƯƠNG 4: TRIỂN KHAI VÀ DEMO .........................................................................................................17
4.1. Chức năng thêm sách ............................................................................................................................17
4.2. Chức năng sửa sách ...............................................................................................................................18
4.3. Chức năng tìm kiếm sách ......................................................................................................................18
4.4. Chức năng ăng nhập ..............................................................................................................................18
4.5. Giao diện quản lý sách ..........................................................................................................................19
4.6. Giao diện quản lý người dùng ...............................................................................................................19
KẾT LUẬN ......................................................................................................................................................20
1. Đánh giá kết quả ạt ược ............................................................................................................................20
2. Hạn chế và kinh nghiệm ...........................................................................................................................20
3. Hướng phát triển ......................................................................................................................................21
TÀI LIỆU THAM KHẢO ................................................................................................................................21 lOMoAR cPSD| 60755984
BẢNG PHÂN CÔNG NHIỆM VỤ MSSV Thành viên Nhiệm vụ % Thực hiện
22150179 Nguyễn Quốc Đạt
Thiết kế, xây dựng hệ thống, triển khai 100% cơ sở dữ liệu 22150216 Huỳnh Ngọc Nam
Phân tích yêu cầu, ặc tả, triển khai code 100%
22150642 Nguyễn Minh Vũ Hà Soạn nội dung tiểu luận, triển khai code 100%
22150437 Nguyễn Đức Tuấn
Thiết kế và triển khai phần giao diện ứng 100% dụng 22150433 Huỳnh Nhật Huy
Phụ trách kiểm thử chức năng, triển khai 100% code lOMoAR cPSD| 60755984
CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI 1.1. Tên ề tài
- XÂY ỨNG DỤNG QUẢN LÝ SÁCH THƯ VIỆN
1.2. Tính cấp thiết và lý do chọn ề tài
Trong những năm gần ây, cùng với sự phát triển của xã hội và nền kinh tế thị trường
thì công việc quản lý ngày càng khó khăn và phức tạp. Công việc quản• lý ngày càng óng góp
một vai trò quan trọng trong các cơ quan, công ty, xí nghiệp. Việc áp dụng các thành tựu của
khoa học kỹ thuật nói chung và thành tựu của công nghệ thông tin nối riêng vào công tác quản
lý ã không ngừng phát triển.
Công tác quản lý ngày càng ược nhiều các cơ quan và ơn vị quan tâm. Nhưng quản lý
thế nào và quản lý làm sao cho ạt hiệu quả cao nhât như: nhanh, bảo mật, thân thiện Tất cả
những yếu tố trên chúng ta ều có thẻ nhờ ến nhưng thành tựu của công nghệ thông tin, ó là
những phân mêm trợ giúp, quản lý thay cho nhưng tệp hô sơ dày cộm, thay cho nhưng ngăn
tủ ựng hồ sơ chiếm nhiều diện tích và có thể ta phải mất rất nhiều thời gian ể tìm kiếm nhưng
thông tin hay nhưng dữ liệu quan trọng. Tất cả nhưng iều bất tiện ở trên ều có thể ược tích
hợp trong phần mềm - một sản phẩm của tin học.
Tuy nhiên hiện nay, việc áp dụng ngay các phân mềm chuyên dụng còn là một vấn ể
gặp không ít khó khăn. Để áp ứng ược yêu cầu cấp thiết ó thì òi hỏi phải có một ội ngũ cán
bộ có ủ chuyên môn có ủ trình ộ ể phân tích hệ thống quản lý một cách ầy ủ chi tiết mà không
bị thiếu sót hay thừa thông tin. Từ ó thiết kế hệ thống thành những chương trình thuận tiện
trong quá trình làm việc như: tìm kiếm, nhập liệu, thống kê...
1.3. Mục tiêu của ề tài
Áp dụng các kiến thức chuyên môn ã học ể xây dựng và triển khai một hệ thống bán
sản phẩm laptop nhằm mục tiêu tối ưu hóa quy trình bán hàng, nâng cao trải nghiệm khách
hàng, tăng cường khả năng cạnh tranh và óng góp vào nghiên cứu và phát triển công nghệ.
Trước hết, hệ thống này sẽ giúp tự ộng hóa các quy trình từ quản lý kho, xử lý ơn hàng ến
chăm sóc khách hàng, từ ó giảm thiểu sai sót và tiết kiệm thời gian. lOMoAR cPSD| 60755984
1.4. Ý nghĩa của ề tài
• Đối với người sử dụng: Đề tài góp phần xây dựng một hệ thống quản lý sách thư viện
ơn giản, dễ sử dụng, nhưng vẫn ảm bảo hiệu quả và tính chính xác cao. Hệ thống có
khả năng trợ giúp, giải áp thắc mắc của người dùng khi sử dụng. Như vậy hệ thống
không chỉ áp ứng cho người dùng thông thạo về tin học mà còn áp ứng ược với những
người dùng ít hiểu biết về tin học
• Đối với nhóm phát triển: Hệ thống này sẽ giúp thư viện tự ộng hóa quy trình quản lý
sách, bao gồm các chức năng thêm, xóa, sửa, và tìm kiếm thông tin sách một cách
nhanh chóng, giảm thiểu sai sót trong quản lý thủ công.
1.5. Phạm vi thực hiện
Phân tích nghiệp vụ và thiết kế ứng dụng quản lý sách thư viện . Các công nghệ sử dụng trong dự án:
• Nền tảng: JavaFX , MyBatis
• Cơ sở dữ liệu: MySQL
• Ngôn ngữ lập trình: Java
• Kiến trúc tổng quát: mô hình MVVM
• Quản lý dự án: Git, Maven
• Dependency Injection Framework : Google Guice
1.6. Cơ sở lý thuyết 1.6.1. MySQL
MySQL là một hệ quản trị cơ sở dữ liệu quan hệ (Relational Database Management
System - RDBMS) mã nguồn mở, ược sử dụng rộng rãi ể lưu trữ và quản lý dữ liệu. Nó ược
ánh giá cao bởi tính ổn ịnh, hiệu năng cao, dễ sử dụng và miễn phí. lOMoAR cPSD| 60755984
Ưu iểm của cơ sở dữ liệu MySQL
• Hiệu suất cao: MySQL ược tối ưu hóa ể xử lý các truy vấn phức tạp và lượng dữ liệu
lớn một cách nhanh chóng, ặc biệt phù hợp với các ứng dụng web có lưu lượng truy cập cao.
• Khả năng mở rộng: MySQL có thể chạy trên nhiều hệ iều hành khác nhau và tích hợp
với nhiều ngôn ngữ lập trình, giúp xây dựng các ứng dụng a nền tảng.
• Cộng ồng lớn: MySQL có một cộng ồng người dùng rất ông ảo, giúp dễ dàng tìm kiếm
tài liệu, giải pháp cho các vấn ề gặp phải và chia sẻ kinh nghiệm.
• Ổn ịnh và áng tin cậy: MySQL ã ược sử dụng rộng rãi trong nhiều năm và ã chứng
minh ược ộ ổn ịnh và áng tin cậy.
• Chi phí thấp: MySQL là một phần mềm miễn phí, giúp tiết kiệm chi phí phát triển ứng dụng. 1.6.2. JavaFX
JavaFX là cơ sở phát triển ứng dụng a nền tảng và giao diện người dùng ồ hoạ (GUI)
dành cho ngôn ngữ lập trình Java. Được giới thiệu vào năm 2007 bởi Sun Microsystems (sau
này là Oracle), JavaFX ã phát triển thành bộ công cụ mạnh mẽ cho việc xây dựng các ứng
dụng có giao diện người dùng ẹp mắt và khả năng tương tác cao trong ngôn ngữ Java. 1.6.3. MyBatis
MyBatis là một framework ORM (Object Relational Mapping) ơn giản và linh hoạt, giúp kết
nối ứng dụng với cơ sở dữ liệu mà không cần viết quá nhiều mã SQL.
Ưu iểm của MyBatis:
• Tùy chỉnh cao: MyBatis cho phép bạn kiểm soát trực tiếp các câu lệnh SQL, giúp tối
ưu hóa hiệu suất và linh hoạt trong các truy vấn phức tạp. Thay vì bị giới hạn bởi các
cấu trúc ORM cố ịnh, bạn có thể tự do xây dựng các câu lệnh SQL phù hợp với nhu
cầu cụ thể của ứng dụng. lOMoAR cPSD| 60755984
• Dễ tích hợp: MyBatis hỗ trợ tích hợp mượt mà với các framework phổ biến khác như
Spring và Google Guice. Điều này giúp bạn dễ dàng kết hợp MyBatis với các công cụ
và thư viện hiện có trong dự án, tạo nên một hệ thống thống nhất và hiệu quả.
• Hiệu suất cao: Tập trung vào việc tối ưu hóa hiệu suất truy vấn SQL, ặc biệt phù hợp
với các hệ thống dữ liệu lớn và phức tạp. Việc tối ưu hóa này giúp giảm thiểu thời gian
xử lý, nâng cao tốc ộ phản hồi của ứng dụng và cải thiện trải nghiệm người dùng.
• Hỗ trợ mapping: Tự ộng ánh xạ kết quả truy vấn vào các ối tượng Java. Thay vì phải
viết mã ể chuyển ổi dữ liệu từ cơ sở dữ liệu sang ối tượng, bạn có thể sử dụng các
mapping ơn giản và hiệu quả, giúp tiết kiệm thời gian và giảm thiểu lỗi.
• XML và Annotation: Có thể cấu hình truy vấn bằng XML hoặc annotation, giúp linh
hoạt trong thiết kế và triển khai ứng dụng. 1.6.4. Google Guice
Google Guice là một framework mã nguồn mở ược phát triển bởi Google, cung cấp hỗ trợ
cho Dependency Injection (DI) trong Java. Guice giúp giảm thiểu sự phụ thuộc vào việc sử
dụng các factory và từ khóa new trong mã nguồn Java, giúp mã nguồn dễ thay ổi, kiểm thử
và tái sử dụng hơn. Một trong những iểm mạnh của Guice là khả năng tận dụng các tính năng
hiện ại của Java như Generics và Annotations, giúp mã nguồn trở nên an toàn và dễ hiểu hơn.
Guice cũng nổi bật với cách tiếp cận “code-first”, nghĩa là cấu hình và quản lý các phụ thuộc
chủ yếu thông qua mã Java thay vì XML, giúp giảm thiểu sự phức tạp và tăng hiệu suất phát triển1.
Guice ược thiết kế ể làm cho việc phát triển và gỡ lỗi trở nên dễ dàng và nhanh chóng hơn,
tránh các bất ngờ và “phép thuật” không rõ ràng trong mã nguồn. Khi xảy ra lỗi, Guice cung
cấp các thông báo lỗi chi tiết và hữu ích, giúp lập trình viên nhanh chóng xác ịnh và khắc
phục vấn ề. Framework này ã ược sử dụng trong các ứng dụng quan trọng từ năm 2006 và
tiếp tục ược phát triển và cải tiến ể áp ứng nhu cầu của cộng ồng lập trình viên Java. lOMoAR cPSD| 60755984
1.7. Yêu cầu ề tài
Hệ thống ứng dụng quản lý sách sẽ yêu cầu các chức năng chính sau: Quản lý sách + Thêm, xóa, sửa sách + Tìm kiếm sách Quản lý người dùng
+ Xem danh sách người dùng
+ Thêm, xóa, sửa người dùng + Tìm kiếm người dùng
+ Phân vai trò cho người dùng lOMoAR cPSD| 60755984
CHƯƠNG 2: PHÂN TÍCH CHỨC NĂNG HỆ THỐNG
2.1. Danh sách các tác nhân (Actor) và chức năng (Use-case) của hệ thống
2.1.1. Tác nhân (Actor) Tác nhân Diễn giải User
Người có toàn quyền với hệ thống, ảm bảo hệ thống hoạt ộng như mong muốn
Bảng 2.1.1. Danh sách các tác nhân hệ thống
2.1.2. Chức năng (Use-case) Tác nhân Chức năng
Chức năng mở rộng Chức năng tiên quyết User Quản lý người dùng Xem thông tin người dùng Đăng nhập Thêm người dùng
Sửa thông tin người dùng Xóa người dùng Tìm kiếm người dùng Quản lý sách Xem sách Đăng nhập Thêm sách Tìm kiếm sách Sửa sách Xóa sách
Bảng 2.1.2. Danh sách các chức năng lOMoAR cPSD| 60755984
2.2. Biểu ồ usecase
2.3. Đặc tả Usecase
2.3.1. Đặc tả Usecase “Đăng nhập” Mô tả tóm tắt: - Mã UC: UC001 - Tên UC: Đăng nhập - Tác nhân: Người dùng -
Mục ích: UC này giúp cho các tác nhân ăng nhập vào hệ thống và thực hiện các chức năng ược phân quyền
Dòng sự kiện chính:
1. Tác nhân nhập tên ăng nhập và mật khẩu vào giao diện ăng nhập.
2. Tác nhân nhất Enter hoặc click vào nút/biểu tượng “Xác nhận”
3. Hệ thống sẽ kiểm tra thông tin và xử lý ăng nhập
Dòng sự kiện phụ:
1. Nếu nhập sai tên username hay mật khẩu thì hệ thống sẽ thông báo lỗi lOMoAR cPSD| 60755984
2. Nếu ể trống các ô iền thì hệ thống cảnh báo
Tiền iều kiện: Đã ăng ký tài khoản thành viên Hậu iều kiện:
- Nếu ăng nhập thành công hệ thống sẽ tự ộng vào tài khoản và hiển thị trang chủ -
Nếu ăng nhập thất bại thì hệ thống báo lỗi và vẫn hiển thị trang ăng nhập.
Bảng 2.3.1. Đặc tả usecase “Đăng Nhập”
2.3.3. Đặc tả usecase “Thêm người dùng” Mô tả tóm tắt: - Mã UC: UC003
- Tên UC: Thêm người dùng - Tác nhân: Người dùng
- Mục ích: Giúp những tác nhân thêm người dùng
Dòng sự kiện chính:
1. UC này bắt ầu khi tác nhân nhấn vào nút thêm người dùng trên giao diện
2. Tác nhân nhập thông tin
3. Kiểm tra username hoặc email ã tồn tại chưa
4. Nếu thông tin hợp lệ, hệ thống sẽ lưu những thay
ổi vào cơ sở dữ liệu
Dòng sự kiện phụ:
1. Nếu email hoặc username ã tồn tại thì hệ thống sẽ thông báo lỗi
Tiền iều kiện: Tác nhân có vai trò Admin hoặc phải có quyền thêm người dùng Hậu iều kiện:
- Nếu thêm thành công hệ thống sẽ xuất ra thông báo lưu thành công
- Nếu thêm thất bại hệ thống sẽ xuất ra thông báo lỗi.
Bảng 2.3.3. Đặc tả usecase “Thêm người dùng” lOMoAR cPSD| 60755984
2.3.4. Đặc tả usecase “Sửa người dùng” Mô tả tóm tắt: - Mã UC: UC004 - Tên UC: Sửa người dùng - Tác nhân: Người dùng -
Mục ích: Giúp những người quản lý hệ thống chỉnh sửa thông tài khoản người dùng khi cần thiết
Dòng sự kiện chính:
1. UC này bắt ầu khi tác nhân chọn tùy chọn sửa trong form chi tiết người dùng
2. Tác nhân sửa thông tin hiện tại của người dùng uược chọn
3. Kiểm tra id người dùng nhập vào có tồn tại không
4. Kiểm tra tên ăng nhập và email thay ổi ã tồn tại chưa
5. Kiểm tra username của người dùng
ó có phải là “admin” không
6. Kiểm tra tên ăng nhập và email mà người dùng vừa nhập ã tồn tại chưa
7. Nếu hợp lệ, hệ thống sẽ lưu những thay ổi vào cơ sở dữ liệu
Dòng sự kiện phụ:
1. Nếu email hoặc username khác với dữ liệu cũ và ã tồn tại thì hệ thống sẽ thông báo lỗi
2. Nếu id người dùng nhập vào không tồn tại thì thông báo lỗi
3. Nếu username là admin thì hệ thống báo lỗi
Tiền iều kiện: Tác nhân có vai trò Admin hoặc phải có quyền thêm người dùng Hậu iều kiện:
- Nếu sửa thành công hệ thống sẽ xuất ra thông báo lưu thành công
- Nếu sửa thất bại hệ thống sẽ xuất ra thông báo lỗi.
Bảng 2.3.4. Đặc tả usecase “Sửa người dùng” lOMoAR cPSD| 60755984
2.3.5. Đặc tả usecase “Xoá người dùng” Mô tả tóm tắt: - Mã UC: UC005
- Tên UC: Xóa người dùng - Tác nhân: Người dùng
- Mục ích: Giúp những người quản lý hệ thống xóa tài khoản người dùng khi cần thiết
Dòng sự kiện chính:
1. UC này bắt ầu khi tác nhân chọn tùy chọn xóa người
2. Tác nhân nhập vào thông tin
3. Kiểm tra id người nhập vào có tồn tại không
4. Nếu hợp lệ, hệ thống sẽ lưu thay ổi vào cơ sở dữ liệu
Dòng sự kiện phụ:
1. Nếu id người dùng nhập vào không tồn tại thì thông báo lỗi
Tiền iều kiện: Tác nhân có vai trò Admin hoặc phải có quyền xóa người dùng Hậu iều kiện:
- Nếu xóa thành công hệ thống sẽ xuất ra thông báo xóa thành công
- Nếu xóa thất bại hệ thống sẽ xuất ra thông báo lỗi.
Bảng 2.3.5. Đặc tả usecase “Xóa người dùng”
2.3.6. Đặc tả usecase “Thêm sách” Mô tả tóm tắt: Mã UC: UC006 Tên UC: Thêm sách Tác nhân: Người dùng
Mục ích: Cho phép người dùng thêm sách mới vào hệ thống ủ.
ể quản lý dữ liệu sách ầy lOMoAR cPSD| 60755984
Dòng sự kiện chính: 1. UC này bắt
ầu khi tác nhân chọn tùy chọn "Thêm sách".
2. Tác nhân nhập thông tin của sách (tên, tác giả, giá, số lượng, thể loại).
3. Hệ thống kiểm tra tính hợp lệ của thông tin ( ủ thông tin, không trùng lặp).
4. Nếu hợp lệ, hệ thống lưu thông tin sách vào cơ sở dữ liệu.
5. Hệ thống hiển thị thông báo thêm sách thành công.
Dòng sự kiện phụ:
1. Nếu thông tin thiếu hoặc không hợp lệ, hệ thống hiển thị thông báo lỗi. 2. Nếu sách
ã tồn tại trong hệ thống, hệ thống yêu cầu nhập thông tin khác.
Tiền iều kiện: Tác nhân phải ăng nhập Hậu iều kiện:
- Nếu thêm thành công, hệ thống sẽ cập nhật danh sách sách.
- Nếu thêm thất bại, không có thay ổi trong cơ sở dữ liệu.
Bảng 2.3.6. Đặc tả usecase “Thêm sách”
2.3.7. Đặc tả usecase “Sửa sách” Mã UC: UC007 Tên UC: Xem sách Tác nhân: Người dùng
Mục ích: Hiển thị danh sách và chi tiết sách cho người dùng.
Dòng sự kiện chính: 1. UC này bắt
ầu khi tác nhân chọn tùy chọn "Xem sách".
2. Hệ thống hiển thị danh sách tất cả các sách hiện có.
3. Tác nhân chọn một cuốn sách ể xem chi tiết.
4. Hệ thống hiển thị chi tiết thông tin sách (tên, giá, tác giả, số lượng). lOMoAR cPSD| 60755984
Dòng sự kiện phụ: ể hiển
1. Nếu không có sách nào trong hệ thống, hiển thị thông báo "Không có sách thị".
Tiền iều kiện: Tác nhân phải ăng nhập Hậu iều kiện:
Bảng 2.3.7. Đặc tả usecase “Sửa sách”
2.3.8. Đặc tả usecase “Xóa sách” Mã UC: UC004 Tên UC: Xóa sách
Tác nhân: Nhân viên hoặc quản trị viên
Mục ích: Xóa sách không cần thiết hoặc sai thông tin khỏi hệ thống.
Dòng sự kiện chính: 1. UC này bắt
ầu khi tác nhân chọn tùy chọn "Xóa sách".
2. Hệ thống hiển thị hộp thoại xác nhận.
3. Tác nhân xác nhận xóa sách.
4. Hệ thống kiểm tra xem sách có ràng buộc dữ liệu không.
5. Nếu không có ràng buộc, hệ thống xóa sách khỏi cơ sở dữ liệu.
6. Hệ thống hiển thị thông báo xóa thành công.
Dòng sự kiện phụ:
1. Nếu sách có ràng buộc với dữ liệu khác (ví dụ: hóa ơn), hệ thống hiển thị thông báo lỗi.
2. Nếu sách không tồn tại, hệ thống hiển thị thông báo lỗi.
Tiền iều kiện: Tác nhân phải ăng nhập Hậu iều kiện: lOMoAR cPSD| 60755984
Bảng 2.3.8. Đặc tả usecase “Xóa sách”
CHƯƠNG 3: THIẾT KẾ KIẾN TRÚC HỆ THỐNG
3.1. Kiến trúc phân lớp N-Layer
Layered architecture là kiểu kiến trúc ược tổ chức theo chiều dọc bao gồm nhiều tầng
xếp chồng lên nhau. Tùy vào ộ phức tạp của dự án mà kiến trúc có số lượng tầng và chức
năng của mỗi tầng khác nhau. Tuy vậy, các tầng phải tuân theo các tiêu chuẩn sau Technical partitioning
Kiến trúc này sử dụng technical partitioning ể phân chia thành các nhóm chức năng. Separation of concern
Mỗi tầng có một vai trò riêng biệt, các tầng ộc lập với nhau, ảm bảo logic không bị
chồng chéo lên nhau. Các component con của tầng presentation chỉ có chức năng xử lý giao
diện và tương tác với người dùng cuối, không ược thực hiện query dữ liệu từ database, vai trò
này thuộc về tầng persistence. Một thay ổi về mặt technical không làm ảnh hưởng ến các tầng
khác. Ví dụ hệ thống web application ược mở rộng trên mobile application, lúc này chỉ cần
mở rộng riêng tầng Presentation vốn chuyên xử lý giao diện và tương tác người dùng; các xử
lý liên quan ến nghiệp vụ hoặc database của các tầng khác không bị ảnh hưởng. lOMoAR cPSD| 60755984
Giao tiếp giữa các tầng
Tầng trên có thể sử dụng các chức năng mà các tầng dưới cung cấp thông qua các
interface mà tầng dưới ã ịnh nghĩa sẵn. Tầng dưới có trách nhiệm thực thi yêu cầu ược gửi từ
các tầng trên, và không có phụ thuộc ngược lại tầng trên. Presentation
Xử lý tương tác với người dùng cuối, thường là xử lý UI, validate user input, xây dựng
UI dựa trên dữ liệu ược trả về từ tầng application; ồng thời cũng là trung chuyển yêu cầu của
người dùng cuối sang tầng application ể xử lý yêu cầu của người dùng. Application
Một số tài liệu cũng gọi là business layer, mục ích nhằm xử lý toàn bộ các logic nghiệp
vụ của hệ thống. Định nghĩa và cung cấp các interface cho tầng trên là presentation Persistence
Chịu trách nhiệm tương tác với tầng database, có thể kể ến như quản lý connection
pool và thực hiện các cầu truy vấn ược yêu cầu bởi tầng trên. Persistence layer về mặt tổng
quan không chỉ tương tác với database mà mục ích chính là duy trì trạng thái của các entity
trong suốt vòng ời của application. Entity có thể lưu trên DB, file hoặc bất kỳ một hệ thống lưu trữ khác. Database
Là các dịch vụ lưu trữ như Mysql, MongoDb cung cấp các phương thức ể thêm, xóa,
sửa, truy vấn dữ liệu. lOMoAR cPSD| 60755984 3.2. Mô hình MVVM
View: Tương tự như trong mô hình MVC, View là phần giao diện của ứng dụng ể hiển thị dữ
liệu và nhận tương tác của người dùng. Một iểm khác biệt so với các ứng dụng truyền thống
là View trong mô hình này tích cực hơn. Nó có khả năng thực hiện các hành vi và phản hồi
lại người dùng thông qua tính năng binding, command.
Model: Cũng tương tự như trong mô hình MVC. Model là các ối tượng giúp truy xuất và thao
tác trên dữ liệu thực sự.
ViewModel: Lớp trung gian giữa View và Model. ViewModel có thể ược xem là thành phần
thay thế cho Controller trong mô hình MVC. Nó chứa các mã lệnh cần thiết ể thực hiện data
binding, command. Trong mô hình MVVM, các tầng bên dưới sẽ không biết ược các thông
tin gì về tầng bên trên nó.
3.3. Bảo mật thông tin với hàm băm SHA-256
Hàm băm (hay hàm băm hash) là một hàm toán học ặc biệt, nó nhận một dữ liệu ầu
vào có ộ dài bất kỳ và trả về một chuỗi ký tự có ộ dài cố ịnh, gọi là giá trị băm hoặc mã băm.
Giá trị băm này ược tính toán dựa trên một thuật toán nhất ịnh và thường có ộ dài ngắn hơn
so với dữ liệu ầu vào. SHA-256 là một phần của họ thuật toán SHA-2, trong ó SHA là viết tắt
của Secure Hash Algorithm (Thuật toán băm an toàn). Được công bố vào năm 2001, ây là nỗ
lực chung giữa NSA và NIST ể giới thiệu phiên bản kế nhiệm cho họ SHA-1, vốn ang dần
mất i sức mạnh trước các cuộc tấn công bằng vũ lực. Ý nghĩa của số 256 trong tên tượng trưng
cho giá trị băm cuối cùng, tức là bất kể kích thước của văn bản thuần túy/văn bản rõ, giá trị băm sẽ luôn là 256 bit.