1 GIỚI THIỆU Tài liệu này cung cấp bản thiết kế hệ thống bao gồm các phần : thiết kế các lớp phân tích Analyst class, thiết kế cơ sở dữ liệu Database, thiết kế giao diện người dùng GUI,
Trang 1ĐH BÁCH KHOA HÀ NỘI, KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN CÁC HỆ THỐNG THÔNG TIN
WEBSITE QUẢN LÝ THƯ VIỆN ONLINE
Software Design Document
Mã tài liệu : SDD – v1.1
Mã nhóm : G05
Hà Nội, 24/10/2008
Trang 2KIỂM TRA VÀ SỬA CHỮA: Ngày: 24/10/2008
Đinh Thị Thu Hòa Nguyễn Thị Nga
DUYỆT TÀI LIỆU: Tạ Tuấn Anh _ Ngày: ./… /
Giáo viên hướng dẫn
Trang 3BIÊN BẢN THAY ĐỔI
*A - Thêm M – Thay đổi D - Xóa
24/10/2008 Chương 1-6 M HòaĐTT chỉnh sửa lại nội dungtrình bày 1.1
Trang 4MỤC LỤC
1 GIỚI THIỆU 8
1.1 Mục đích 8
1.2 Thuật ngữ và ký hiệu viết tắt 8
1.3 Tài liệu liên quan 9
1.4 Cấu trúc tài liệu 9
2 MÔ TẢ KIẾN TRÚC NGOÀI 10
2.1 Biểu đồ mức khung cảnh 10
2.2 Mô tả các tương tác chính 12
3 MÔ HÌNH HÓA CẤU TRÚC HỆ THỐNG 13
3.1 Các tầng và các mối quan hệ trong hệ thống 13
3.2 Biểu đồ use-case tổng quát của toàn hệ thống 14
3.3 Xác định các lớp tham gia ca sử dụng 14
3.4 Các lớp trong dự án 15
3.5 Các biểu đồ lớp phân tích (Analyst class diagrams -ACD) 17
3.5.1 Đăng nhập hệ thống 17
3.5.2 Đăng ký làm thẻ 18
3.5.3 Tìm kiếm sách 19
3.5.4 Gửi thông tin phản hồi 20
3.5.5 Quản lý thông tin cá nhân 21
3.5.6 Quản lý thông điệp 21
3.5.7 Đăng ký mượn sách 22
3.5.8 Quản lý độc giả 23
3.5.9 Thống kê thông tin 23
3.5.10 Mua sách (nhập sách) 24
3.5.11 Trả lời thông tin phản hồi 24
3.5.12 Thanh lý sách 25
3.5.13 Nghiệp vụ của thủ thư 26
4 MÔ HÌNH HÓA HÀNH VI HỆ THỐNG 27
4.1.Đăng nhập hệ thống 27
4.2.Đăng ký làm thẻ (thành viên) 28
Trang 54.3.Tìm kiếm sách 29
4.4.Gửi thông tin phản hồi 30
4.5.Quản lý thông tin cá nhân 31
4.6.Quản lý thông điệp 32
4.7.Đăng ký mượn sách 33
4.8.Quản lý độc giả 34
4.9.Thống kê thông tin 35
4.10 Nhập sách 36
4.11 Trả lời thông tin phản hồi 37
4.12 Thanh lý sách 38
4.13 Xử lý nghiệp vụ dành cho thủ thư 39
5 THIẾT KẾ CƠ SỞ DỮ LIỆU 41
5.1 Sơ đồ thực thể - liên kết (ERD) 41
5.2 Bảng User_tbl 43
5.3 Bảng Role_tbl 44
5.4 Bảng Book_tbl 44
5.5 Bảng Publisher_tbl 44
5.6 Bảng Genre_tbl 45
5.7 Bảng Borrow_tbl 45
5.8 Bảng SendMess_tbl 45
5.9 Bảng ReceiveMess_tbl 46
5.10 Bảng FeedBack_tbl 46
5.11 Bảng Reply_tbl 47
6 THIẾT KẾ MÃ 48
6.1 Mã roleID 48
6.2 Mã genreID 48
6.3 Các mã còn lại 49
7 THIẾT KẾ MÀN HÌNH 50
7.1 Trang chủ 54
7.1.1 Giao diện 54
7.1.2 Thông tin mô tả 54
7.2 Trang chủ đăng nhập dưới quyền Độc giả 56
Trang 67.2.1 Giao diện 56
7.2.2 Thông tin mô tả 56
7.3 Trang chủ đăng nhập dưới quyền Thủ thư 57
7.3.1 Giao diện 57
7.3.2 Thông tin mô tả 57
7.4 Trang chủ đăng nhập dưới quyền Người quản lý 58
7.4.1 Giao diện 58
7.4.2 Thông tin mô tả 58
7.5 Form chung của các bài viết, thông báo, giới thiệu 59
7.5.1 Giao diện 59
7.6 Đăng ký làm thẻ Độc giả 60
7.6.1 Giao diện 60
7.7 Góp ý 61
7.7.1 Giao diện 61
7.8 Hòm thư gửi 62
7.8.1 Giao diện 62
7.8.2 Thông tin mô tả 62
7.9 Hòm thư nhận 63
7.9.1 Giao diện 63
7.9.2 Thông tin mô tả 63
7.10 Lịch sử mượn trả 64
7.10.1 Giao diện 64
7.10.2 Thông tin mô tả 64
7.11 Thông tin liên hệ 65
7.11.1 Giao diện 65
7.11.2 Thông tin mô tả 65
7.12 Soạn thư 66
7.12.1 Giao diện 66
7.12.2 Thông tin mô tả 66
7.13 Thông tin cá nhân 67
7.13.1 Giao diện 67
7.13.2 Thông tin mô tả 67
7.14 Thư viện hình ảnh 68
7.14.1 Giao diện 68
7.14.2 Thông tin mô tả 68
Trang 77.15 Tìm kiếm tài liệu 69
7.15.1 Giao diện 69
7.16 Kết quả tìm kiếm tài liệu 70
7.16.1 Giao diện 70
7.17 Xuất tài liệu 71
7.17.1 Giao diện 71
7.17.2 Thông tin mô tả 71
7.18 Nhập tài liệu 72
7.18.1 Giao diện 72
7.18.2 Thông tin mô tả 72
7.19 Tạo danh sách làm thẻ mới 73
7.19.1 Giao diện 73
7.20 Quản lý thông tin Độc giả 74
7.20.1 Giao diện 74
7.21 Tìm kiếm Độc giả 75
7.21.1 Giao diện 75
7.22 Xử lý thông tin Độc giả 76
7.22.1 Giao diện 76
7.23 Yêu cầu bổ sung sách mới 77
7.23.1 Giao diện 77
7.23.2 Thông tin mô tả 77
7.24 Yêu cầu thanh lý sách 78
7.24.1 Giao diện 78
7.24.2 Thông tin mô tả 78
7.25 Xem thông tin chung 79
7.25.1 Giao diện 79
7.26 Thông tin phản hồi 80
7.26.1 Giao diện 80
Trang 81 GIỚI THIỆU
Tài liệu này cung cấp bản thiết kế hệ thống bao gồm các phần : thiết kế các lớp phân tích
(Analyst class), thiết kế cơ sở dữ liệu (Database), thiết kế giao diện người dùng (GUI),
Trên cở sở tài liệu SRS với việc thiết kế các ca sử dụng (UC) và tài liệu đặc tả chi tiêt cho
phép tìm kiếm các lớp phân tích Từ đó bước đầu tiếp cận hệ thống với các biểu đồ lớp phân
tích và sau đó là các biểu đồ trình tự (Sequence diagram)
Xây dựng CSDL, mã cho phép mô tả hệ thống về mặt dữ liệu Nó nói lên các thông tin mà
hệ thống TVTT cần và phải lưu trữ để có thể đưa ra được các thông tin về các đầu sách có
trên thư viện và về mỗi người dùng trong hệ thống
Tài liệu cũng là cơ sở để các thành viên hệ thống phối hợp làm việc với nhau, lập trình và
tích hợp các module vào một hệ thống thống nhất
Tài liệu còn là cơ sở để người dùng có thể sử dụng vào việc mở rộng hệ thống Các quy
định về sử dụng tài liệu đối với bên thứ ba là hoàn toàn không có điều kiện về tài chính, bản
quyền và tuân theo các quy tắc về tài liệu mở
Các thiết kế sau đây dựa trên cơ sở thảo luận và thống nhất giữa các thành viên trong
nhóm về thiết kế hệ thống trong các buổi họp nhóm trên lớp và Online tại nhà
TVTT Thư viện trực tuyến
User Người dùng hệ thống
Customer (Cust) Khách hàng
Reader (Read) Bạn đọc
Librarian (Lib) Thủ thư
Manager (Mana) Người quản lý
Trang 9CSDL Cơ sở dữ liệu
Feedback Thông tin phản hồi
Doan_PhattrienHTTT Đồ án Phát triển các hệ thống thông tin
Phiên bản: 1.0 SRS-v1.0 Tài liệu đặc tả yêu cầu phần mềm
Người viết: Nguyễn Thắng Lợi Phiên bản:1.0
UML 2.0 Phân tích thiết kế hệ thống hướng đối tượng với UML 2.0
Người viết : Nguyễn Văn Ba
Tài liệu thực hiện các công việc sau :
Mô tả kiến trúc ngoài với biểu đồ mức khung cảnh của hệ thống.(phần 2)
Mô hình hóa cấu trúc hệ thống với việc tìm kiếm các lớp phân tích, xây dựng các biểu đồ
Trang 102 MÔ TẢ KIẾN TRÚC NGOÀI
Hình 2.1 biểu đồ mức khung cảnh của hệ thống
Trang 11Kết quả tìm kiếm
Mess
Kết quả mượn
Thanh lý sách
Nhập sách mess
Sửa info cá nhân
Trả lời feeedback
Tk sách
mess
Info cá nhân
feedback Kết quả tk
Info độc giả
Tk sách
Info mượn trả
Sửa info cá nhân mess
Sửa, tk độc giả
Trả lời mượn sách
mượn sách
Info độc giả mess
Info cá nhân
Info đăng ký thành viên Kết quả tk
Trang 122.2 Mô tả các tương tác chính
Khách hàng (customer) là đối tượng truy cập vào website để tìm hiểu về thư viện
Là đối tượng bất kỳ chưa có tài khoản trong hệ thống Có quyền tìm kiếm thôngtin về các đầu sách trong giới hạn cho phép Có quyền gửi phản hồi ( feedback )đến nhà quản lý Và có quyền đăng ký làm thẻ trực tuyến
Độc giả (reader) là đối tượng chính của hệ thống đã có tài khoản và có thể đăng
nhập vào hệ thống, trở thành một người dùng được xác nhận (user) Sau khi đăngnhập , độc giả có quyền tìm kiếm các đầu sách, thông tin về sách được cung cấptheo mức phân quyền mà hệ thống quy định Độc giả có quyền đăng ký mượnsách trực tuyến, quản lý tài khoản cá nhân của mình Có quyền gửi thông điệp( Mess) đến những người dùng khác trong hệ thống và có quyền gứi phản hồi nhưkhách hàng
Thủ thư (librarian) sau khi đăng nhập vào hệ thống có quyền gửi thông điệp, quản
lý tài khoản cá nhân , tìm kiếm các đầu sách để phục vụ cho nghiệp vụ Ngoài rathủ thư thể hiện vai trò chính của mình thông qua các việc : Nhận và trả lời việcđăng ký làm thẻ của khách hàng , quản lý thông tin độc giả , quản lý các quá trìnhmượn trả sách của độc giả
Quản lý (manager) đăng nhập vào hệ thống tìm kiếm các đầu sách với các thông
tin được cung cấp đầy đủ theo sự phân quyền, gửi thông điệp và quản lý thông tin
cá nhân, thực hiện thống kê thông tin về độc giả, các đầu sách Vai trò kiểm kêthanh lý sách cũ , hỏng Nhập các sách mới về theo nhu cầu trả lời thông tin phảnhồi từ phía khách hàng và độc giả trên các mục Hỏi & Đáp nhằm làm cho hệ thốngngày càng phát triển và hợp lý
Trang 133 MÔ HÌNH HÓA CẤU TRÚC HỆ THỐNG
3.1 Các tầng và các mối quan hệ trong hệ thống
Hình vẽ 3.1: biểu đồ phân tầng
Application: tầng này bao gồm các thành phần thiết kế cho từng chức năng của ứng
dụng đang phát triển
Business Service: bao gồm các thành phần phục vụ cho công việc và có thể sử dụng
trong nhiều ứng dụng khác nhau
Database : tầng này bao gồm các thành phần phục vụ cho các công việc truy cập CSDL,
tương ứng với nhiều kiểu dữ liệu khác nhau
Trang 143.2 Biểu đồ use-case tổng quát của toàn hệ thống
Register
Search Introduction
Các ca sử dụng được dùng đem ra phân tích để phát hiện các đối tượng/lớp tham gia từng
ca sử dụng Các lớp tham gia ca sử dụng được gọi là các lớp phân tích (analyst class) gồm
3 loại :
Trang 15 Boundaries (các lớp biên hay các lớp đối thoại) : tương ứng với tầng Application
Entities (các lớp thực thể hay các lớp lĩnh vực) : tương ứng với tầng Database
Controls (các lớp điều khiển ) : tương ứng với tầng Business Service
3.4 Các lớp trong dự án
Dựa vào các biểu đồ use-case cụ thể và tài liệu đặc tả được mô tả đầy đủ trong bản SRS
v1.0 Quá trình phân tích đưa ra các lớp phân tích được phân nhóm như sau :
Trang 183.5.2 Đăng ký làm thẻ
analysis 2.Register
Customer
W_Main
Hình vẽ 3.5.2 : ACD đăng ký thành viên làm thẻ thư viện
Trang 193.5.3 Tìm kiếm sách
analysis 3.SearchBook
User (Cust+Read+Lib+Mana)
W_Main
Hình vẽ 3.5.3 : ACD tìm kiếm sách
Trang 203.5.4 Gửi thông tin phản hồi
analysis 4.SendFeedBack
User (Reader+Customer)
W_Main
Hình vẽ 3.5.4 : ACD gửi feedback
Trang 213.5.5 Quản lý thông tin cá nhân
analysis 5.PersonalManagement
User (Read+Lib+Mana)
W_UserMain
W_mess
MessManagement
User (Read+Lib+Mana)
Mess
Hình vẽ 3.5.6 : ACD quản lý việc gửi , nhận mess
Trang 223.5.7 Đăng ký mượn sách
analysis 7.BorrowBook
BorrowManagement Reader
Trang 23Hình vẽ 3.5.8 : ACD quản lý thông tin độc giả 3.5.9 Thống kê thông tin
Trang 24Hình vẽ 3.5.9 : ACD thống kê thông tin độc giả và đầu sách 3.5.10 Mua sách (nhập sách)
Trang 263.5.13 Nghiệp vụ của thủ thư
analysis 13.Business
W_librarianLibrarian
Trang 274 MÔ HÌNH HÓA HÀNH VI HỆ THỐNG
Mục đích của bước mô hình hóa hành vi mà cụ thể ở đây là sự mô hình hóa quá trình
tương tác để diễn tả sự tương tác giữa các đối tượng nhằm tạo ra các kịch bản của mỗi ca
sử dụng của hệ thống Đồng thời cho thấy các tiến trình chính của hệ thống diễn ra theo
trình tự thời gian được mô tả bằng các biểu đồ trình tự (Sequence Diagrams - SD)
display()
2 : logout()
logout()report()display (report)
Trang 28Hình vẽ 4.1: SD đăng nhập hệ thống
Sau khi đăng nhập vào hệ thống Mỗi loại user sẽ nhận được một giao diện của riêng
mình Giao diện sẽ hỗ trợ đầy đủ các chức năng tương ứng theo phân quyền người
register()
display()
inputCustomerInfo()selectRegister()
register()
getInfo()result()addUser()report()
display (report)
Hình vẽ 4.2: SD đăng ký thành viên
Trang 29display()
inputBookInfo()selectSearch()
searchBook()
getInfo()result()result()
display()
Hình vẽ 4.3: SD tìm kiếm sách
Trang 303.9 Gửi thông tin phản hồi
sd 4.SendFeedBack
FBmanagement User
(Reader+Customer)
FB will be sent to the manager
get info to check
sendFB()
display() inputFB()
selectSend()
sendFB()
getInfo() result() addSendFB() report()
display()
Hình vẽ 4.4: SD gửi feedback
Trang 31 Các đối tượng là Librarian và Manager thì không sử dụng chức năng gửi thông tin
phản hồi (góp ý) Các thông tin sẽ được gửi đến người quản lý Và sau đó ý kiến đóng
góp hợp lý và câu trả lời của Manager sẽ được public trên mục Hỏi&Đáp
info displayed is different for eachuser
viewInfo()
viewInfo()
getInfo()result()result()
display()changeInfo()
display()inputChageInfo()
selectChange()
changeInfo()
getInfo()result()updateInfo()report()
display (report)
Hình vẽ 4.5: SD quản lý thông tin cá nhân
Trang 323.11 Quản lý thông điệp
display()selectSendMess()
display()inputMess()
selectSend()
sendMess()
getMessInfo()
getUerInfo()result()result()
addMess()report()
display (report)
Hình vẽ 4.6: SD quản lý thông điệp
Trang 333.12 Đăng ký mượn sách
sd 7.BorrowBook
borrowBook info will be sent
to Librarian
viewBookInfo()
viewBookInfo()
getBookInfo() result() result()
display()
borrowBook()
borrowBook()
update() report()
display (report)
Hình vẽ 4.7: SD đăng ký mượn sách
Trang 34display() 1.1:selectSearch()
display()
inputReaderInfo()
search()
getReaderInfo() result() result()
display() 1.2: selectSendMess()
display() inputMess()
sendMess()
addMess() report()
display (report) 1.3: selectReaderDelete()
deleteReader()
deleteReader() report()
display (report)
Trang 35Hình vẽ 4.8: SD quản lý độc giả
Trong biểu đồ này 3 quá trình tương ứng với 1.1, 1.2, 1.3 là theo trình tự song song, độc lập nhau
Tuy nhiên chúng cùng diễn ra sau quá trình của 1 Vì vậy ta gộp chúng lại trên một biểu đồ trình tự
cho tiện theo dõi
sd 9.EnumerateInfo
Manager W_manager W_enumerate EnumerateInfo Book User (reader)
get info both book
& reader to enumerate
enumerateInfo()
callEnumerateInfo()
enumerateInfo()
getBookInfo()result()getUserInfo()result()result()
display()
Hình vẽ 4.9: SD thông kê thông tin độc giả và sách
Trang 36display()inputBookInfo()selectSend()
buyBook()
buyBook()
buyBook()addBook()
report()display (report)
Hình vẽ 4.10: SD nhập sách
Trang 373.16 Trả lời thông tin phản hồi
sd 11.AnswerFeedback
FB will be sent to the questions &
answers page
viewFB()
display()selectFB()
selectAnswer()
display()inputAnswerFB()
selectSendFB()
AnswerFB()
addAnswerFB()report()
display (report)
Hình vẽ 4.11: SD trả lời feedback
Trang 38display() inputBookInfo() selectSearch()
searchBook()
getBookInfo() result() result()
display() selectLiquidate()
liquidateBook()
liquidateBook()
liquidateBook() deleteBook()
report() display (report)
Hình vẽ 4.12: SD thanh lý sách
Trang 393.18 Xử lý nghiệp vụ dành cho thủ thư
sd 13.Business
loanBook()
display() inputInfo(BookID&UserID)
selectOK()
loanBook()
getBookID() result() getUserID() result() updateInfo() report()
display (report) receiveBook()
display() inputBookID() selectOK()
receiveBook()
getBookID() result() getUserID() result() updateInfo() report()
display (report)
Trang 40Hình vẽ 4.13: SD xử lý nghiệp vụ
Trang 415 THIẾT KẾ CƠ SỞ DỮ LIỆU
5 1 Sơ đồ thực thể - liên kết (ERD)
Trang 42bookID bookName author publishYear bookContent genreID price position status pubID putinDate
Genre_tbl
genreID genreName
Sendmess_tbl
messID userID sendTime messContent messTitle
User_tbl
userID username pwd fullName sex birthDate tel email address homeland roleID registerDate
FK_Usertbl_Roletbl
FK_Sendmesstbl_Usertbl FK_Replytbl_Usertbl
FK_Sendmess_tbl_ReceiveMess_tbl
Trang 43Danh sách các bảng :
2 Role_tbl Thông tin về phân nhóm người dùng trong hệ thống
3 Book_tbl Thông tin về mỗi đầu sách
4 Publisher_tbl Thông tin về nhà xuất bản
5 Genre_tbl Thông tin về phân loại sách
6 Borrow_tbl Thông tin về việc mượn trả
7 SendMess_tbl Thông điệp gửi đi
8 ReceiveMess_tbl Thông điệp nhận
9 FeedBack_tbl Thông tin phản hồi của người dùng1
Ràng buộc
Trang 445.3 Bảng Role_tbl
thước
Not Null
Ràng buộc
Ràng buộc
Trang 455.5 Bảng Publisher_tbl
thước
Not Null
Ràng buộc
Ràng buộc
Ràng buộc
mượn
trả hay chưa
Trang 465.8 Bảng SendMess_tbl
thước
Not Null
Ràng buộc
điệp
5.9 Bảng ReceiveMess_tbl
thước
Not Null
Ràng buộc
Ràng buộc
hồi
người gửi phản hồi
hồi
hồi
Trang 475.11 Bảng Reply_tbl
thước
Not Null
Ràng buộc
hồi
phản hồi
Trang 484 THIẾT KẾ MÃ
Trang 494.3 Các mã còn lại
Để đơn giản hóa quá trình thiết kế CSDL , các mã còn lại gồm:
userID, bookID, pubID, messID, feedbackID, replyID, orderNo
Các mã này đều có chung kiểu Int ( identity )