2.3讀者請求服務的用例圖描述................................................................................. 3
2.3.1 讀者請求服務的用例圖.............................................................................. 3
2.3.2讀者請求服務的用例圖說明........................................................................ 4
2.3.3讀者請求服務用例圖詳述........................................................................... 5
2.4 圖書管理員管理前臺的用例圖描述...................................................................... 9
2.4.1圖書管理員管理前臺的用例圖.................................................................... 9
2.4.2圖書管理員管理前臺的用例圖說明............................................................. 9
2.4.3圖書管理員管理前臺的用例圖詳述........................................................... 10
2.5管理員後臺管理的用例圖描述............................................................................ 13
2.5.1管理員後臺管理的用例圖......................................................................... 13
2.5.2管理員後臺管理的用例圖說明.................................................................. 14
2.4.3管理員管理後臺的用例圖詳述.................................................................. 15
3.2 確定類之間的關係(只畫出初始類圖,不帶任何屬性和操作)............................... 23
3.2.1 和Reader進行交互的類,以及他們之間的關係如圖6:.......................... 23
3.2.2 和圖書管理員進行交互的類,以及他們之間的關係如圖7:..................... 24
3.2.3 和管理員進行交互的類,以及他們之間的關係如圖8:............................ 25
3.3 確定類之間的關係(畫出完整類圖,包括每個類的屬性和操作)........................... 25
3.3.1 和Reader進行交互的類,以及他們之間的關係如圖9:.......................... 25
3.3.2 和圖書管理員進行交互的類,以及他們之間的關係如圖10:................... 26
3.3.3 和管理員進行交互的類,以及他們之間的關係如圖11:.......................... 27
3.4.2 New_Books(新到圖書列表類).................................................................... 29
3.4.4 Borrow_Record (借閱記錄類)..................................................................... 29
3.4.5 Return_Record (還書記錄類)...................................................................... 30
3.4.7 Notice(新到圖書列表類)............................................................................ 30
3.4.8 Books(新到圖書列表類)............................................................................. 31
3.4.10 Leave_Word(圖書訂閱類)......................................................................... 31
3.4.11 LibrarianManager (圖書管理員類)............................................................ 32
3.4.12 Manager(普通管理員類).......................................................................... 32
3.4.13 Senior_Manager(高級管理員類)............................................................... 32
4.2讀者功能模塊實現順序圖................................................................................... 34
4.3圖書管理員功能模塊實現順序圖......................................................................... 39
4.3.4 設置還書異常處罰:................................................................................ 41
4.3.6 定時備份數據庫:................................................................................... 42
4.4管理員功能模塊實現順序圖................................................................................ 43
4.4.2 添加新的出版社:................................................................................... 43
4.4.3 修改出版社信息:................................................................................... 44
4.4.4 刪除出版社信息:................................................................................... 45
4.4.13 出版社查詢(高級管理員):..................................................................... 55
4.4.14 添加新的出版社(高級管理員):.............................................................. 56
4.4.15 修改出版社信息(高級管理員):.............................................................. 57
4.4.16 刪除出版社記錄(高級管理員):.............................................................. 58
4.4.17 統計查詢(高級管理員):........................................................................ 59
4.4.18 添加圖書(高級管理員):........................................................................ 60
4.4.19 刪除圖書(高級管理員):........................................................................ 61
4.4.20 修改圖書(高級管理員):........................................................................ 62
4.4.21 查詢圖書(高級管理員):........................................................................ 63
4.4.22 添加讀者(高級管理員):........................................................................ 64
4.4.23 刪除讀者 (高級管理員):...................................................................... 65
4.4.24 修改讀者(高級管理員):........................................................................ 66
4.4.25 查詢讀者(高級管理員):........................................................................ 67
4.4.26 修改普通管理員登錄密碼(高級管理員):............................................... 68
4.4.27 修改高級管理員登錄密碼(高級管理員):............................................... 69
4.4.28 添加普通管理員(高級管理員):.............................................................. 69
4.4.29 刪除普通管理員(高級管理員):.............................................................. 70
4.4.30 添加圖書管理員(高級管理員):.............................................................. 71
4.4.31 刪除圖書管理員(高級管理員):.............................................................. 72
1 題目與要求
1.1 問題描述
依據自己在uml課程中所學的知識,針對在線的圖書管理系統分別進行用例建模、對象建模、交互建模。
1.2 本設計涉及的知識點
- 用例建模:獲取原始需求、識別參與者、識別用例、構建用例圖、識別用例之間的關係、對用例進行組織和分包。
- 對象建模:找出圖中所有的類、瞭解對象之間的關係。
- 交互建模:識別交互對象、生命線、控制焦點消息。
1.3 功能描述
在線圖書管理系統是分爲兩大模塊,一個是前端系統,一個是後端系統。
前端系統主要是讀者(Reader)進行查詢圖書信息、借書、還書、讀者訂閱、修改個人信息、查詢書籍借閱信息、查看公告、查詢入庫新書這些操作。前端系統功能模型如圖1所示。
圖1:前端系統功能模型
後端系統是由圖書管理員、普通管理員、高級管理員去操作。圖書管理員進行發佈公告、數據庫備份、設置讀者權限、處理逾期還書、處理圖書遺失、入庫新書、查看讀者訂閱這些操作。普通管理員進行管理出版社信息、管理書庫、管理讀者的操作。高級管理員除了具有普通管理員的權限,還進行管理普通管理員、管理圖書管理員、修改個人信息操作。後端系統功能模型如圖2。
圖2:後端系統需求模型
2. 系統的用例建模
2.1標識參與者
- 讀者:可以通過網絡查詢書籍信息和預定書籍,讀者可以借書、還書、向圖書館推薦讀者需求圖書。
- 圖書管理員:對圖書館系統進行管理,管理前臺網頁信息。
- 普通管理員:對後臺的書庫,讀者庫,出版社資料庫進行管理。
- 高級管理員:對管理員進行管理,修改普通管理員和圖書管理員權限,創建新的普通管理員和圖書管理員
2.2標識用例
- 讀者請求服務的用例圖:
1.查詢入庫新書
2.查詢圖書信息
3.借書
4.圖書續借
5.還書
6.讀者訂閱
7.查詢個人信息
8.修改個人信息
9.登錄
10.查詢圖書借閱信息
11.查看公告
12.生成借書記錄
- 圖書管理員管理前臺的用例圖:
1.登錄
2.發佈公告
3.維護系統
4.查看讀者訂閱
5.定時刷新數據庫
6.設置讀者權限
7.新書入庫
8.設置異常還書處罰
9.處理逾期還書
10.處理圖書遺失
11.生成新書庫
- 管理員後臺管理的用例圖:
1.添加管理員
2.修改密碼
3.修改普通管理員登錄密碼
4.修改高級管理員登錄密碼
5.管理出版社信息
6.添加新的出版社
7.刪除出版社信息
8.修改出版社信息
9.出版社查詢
10.管理書庫
11.統計排行
12.添加圖書
13.刪除圖書
14.修改圖書
15.查詢圖書
16.管理讀者
17.添加讀者
18.刪除讀者
19.修改讀者
20.查詢讀者
2.3讀者請求服務的用例圖描述
2.3.1 讀者請求服務的用例圖
圖3:讀者請求服務的用例圖
2.3.2讀者請求服務的用例圖說明
用例名稱 |
角色 |
優先級 |
簡要描述 |
|
101 |
查詢入庫新書 |
讀者 |
1 |
讀者查詢最新一批入庫的新書 |
102 |
查詢圖書信息 |
讀者 |
1 |
讀者根據書籍編號、書籍名稱、書籍類別、出版社、作者姓名等對圖書進行查詢 |
103 |
借書 |
讀者 |
1 |
讀者根據查詢結果,選擇借閱理想的圖書 |
104 |
圖書續借 |
讀者 |
1 |
讀者根據自己的已借圖書,續借延長圖書借閱時間 |
105 |
還書 |
讀者 |
1 |
讀者查詢已借閱的圖書,歸還圖書,異常還書將做出相應懲罰 |
106 |
讀者訂閱 |
讀者 |
1 |
讀者在留言板填寫自己所需圖書的相關信息,提交給圖書管理員作爲新書採購參考 |
107 |
查詢個人信息 |
讀者 |
1 |
讀者查詢自己的信息 |
108 |
修改個人信息 |
讀者 |
1 |
讀者修改自己的個人信息 |
109 |
登錄 |
讀者 |
2 |
讀者登錄,登錄身份驗證後可進行借書、還書、圖書續借、讀者訂閱、查詢個人信息、修改個人信息、查詢圖書借閱信息等操作 |
110 |
查詢借閱信息 |
讀者 |
1 |
讀者查詢自己已借閱的圖書、及其數量、借閱時長等信息 |
111 |
查看公告 |
讀者 |
1 |
讀者查詢圖書館發佈的相關公告,包括圖書館開閉館時間、入庫新書推送、圖書館業務更新等信息 |
112 |
生成借書記錄 |
讀者 |
1 |
讀者借書操作確定,生成借書記錄,可選擇打印借書記錄留作憑證 |
2.3.3讀者請求服務用例圖詳述
Use case :Uc0101查詢入庫新書 |
角色:讀者 |
前置條件: 當前角色爲讀者 |
基本事件流:
3.讀者選擇期望圖書 |
後置條件: 查詢得到相應的書籍 |
可選事件流: 1.讀者退出新書查詢 |
Use case :Uc0102查詢圖書信息 |
角色:讀者 |
前置條件: 當前角色爲讀者 |
基本事件流:
3.讀者選擇期望圖書 |
後置條件: 查詢出相應的書籍 |
可選事件流:
|
Use case :Uc0103借書 |
角色:讀者 |
前置條件: 讀者已登錄讀者賬號 |
基本事件流: 1.讀者查詢期望圖書 2.讀者確定借閱圖書 |
後置條件: 生成借書記錄 |
可選事件流: 1.讀者退出借書 2.讀者重新選擇查詢結果 3.讀者借書失敗,圖書庫存不足 4.讀者借書失敗,借閱圖書數量已達上限 |
Use case :Uc0104圖書續借 |
角色:讀者 |
前置條件: 讀者已登錄讀者賬號 |
基本事件流: 1.讀者查詢期望圖書 2.讀者確定續借圖書 |
後置條件: 重新生成借書記錄 |
可選事件流: 1.讀者取消續借圖書 2.讀者修改續借對象 3.讀者續借失敗,已達續借最大時長 4.讀者不可續借,不存在已借閱圖書 |
Use case :Uc0105還書 |
角色:讀者 |
前置條件: 讀者已登錄讀者賬號 |
基本事件流: 1.讀者選擇已借閱讀書 2.讀者確定還書對象 |
後置條件:生成還書記錄(且會刪除借書記錄) |
可選事件流: 1.讀者取消還書 2.讀者更換還書對象 3.讀者還書失敗,不存在已借閱圖書 4.讀者還書異常,借閱時間超過可借閱時長 5.讀者還書異常,圖書遺失 |
Use case :Uc0106讀書訂閱 |
角色:讀者 |
前置條件: 讀者已登錄讀者賬號 |
基本事件流: 1.讀者登錄留言板 2.讀者填寫推薦圖書信息 3.讀者確定推薦圖書信息 |
後置條件:推薦圖書信息成功 |
可選事件流: 1.讀者刪除訂閱信息 2.讀者訂閱失敗,書庫已存在推薦圖書 3.讀者退出瀏覽版,放棄訂閱 |
Use case :Uc0107查詢個人信息 |
角色:讀者 |
前置條件: 讀者已登錄讀者賬號 |
基本事件流: 1.讀者查詢個人信息 |
後置條件:查詢得到個人信息 |
可選事件流: 無 |
Use case :Uc0108修改個人信息 |
角色:讀者 |
前置條件: 讀者已登錄讀者賬號 |
基本事件流: 1.讀者查詢個人信息 2.讀者選擇修改項 3.讀者確定修改結果 |
後置條件:無 |
可選事件流: 1.讀者退出修改,結果不保存 2.讀者重選修改項 3.修改失敗,修改結果非法,不可通過 |
Use case :Uc0109登錄 |
角色:讀者 |
前置條件: 讀者選擇需要登錄的操作 |
基本事件流: 1.讀者輸入登錄信息 |
後置條件:選擇相應操作 |
可選事件流: 1.讀者退出登錄操作 2.登錄失敗,當前賬號不存在 3.登錄失敗,賬號錯誤 4.登錄失敗,密碼錯誤 |
Use case :Uc0110查詢圖書借閱信息 |
角色:讀者 |
前置條件: 讀者選擇需要登錄的操作 |
基本事件流: 1. 讀者查詢當前賬號借閱信息 |
可選事件流: 無 |
Use case :Uc0111查看公告 |
角色:讀者 |
前置條件: 讀者選擇需要登錄的操作 |
基本事件流: 1.讀者選擇查看公告 |
可選事件流: 1.查看失敗,此公告已失效 2.更換公告查看 |
Use case :Uc0112生成借書記錄 |
角色:讀者 |
前置條件: 1.讀者已經進行借書操作 2.讀者已經進行續借操作 |
基本事件流: 1.讀者借書成功,生成借書記錄 2.讀者續借成功,重新生成借書記錄 |
可選事件流: 1.借書失敗,生成借書記錄異常 2.續借失敗,生成借書記錄異常 |
2.4 圖書管理員管理前臺的用例圖描述
2.4.1圖書管理員管理前臺的用例圖
圖4:圖書管理員管理前臺用例圖
2.4.2圖書管理員管理前臺的用例圖說明
用例ID |
用例名稱 |
角色 |
優先級 |
簡要描述 |
201 |
登錄 |
圖書管理員 |
2 |
圖書管理員登錄管理員界面,登錄後纔可對系統進行操作 |
202 |
發佈公告 |
圖書管理員 |
1 |
圖書管理員發佈公告,包括圖書館開閉館時間、新書入庫推薦等信息 |
203 |
維護系統 |
圖書管理員 |
1 |
圖書管理員進行系統維護 |
204 |
查看讀者訂閱 |
圖書管理員 |
1 |
讀書管理員查看讀者訂閱信息 |
205 |
備份數據庫 |
圖書管理員 |
1 |
圖書管理員設置定時備份數據庫的時間 |
206 |
設置讀者權限 |
圖書管理員 |
1 |
圖書管理員設置讀者的借書權限包括限借冊數和限借天數等 |
207 |
新書入庫 |
圖書管理員 |
1 |
圖書管理員添加新入庫圖書信息 |
208 |
設置異常還書處罰 |
圖書管理員 |
1 |
圖書管理員設置異常還書處罰信息 |
209 |
處理逾期還書 |
圖書管理員 |
1 |
管理員設置逾期還書處罰標準 |
210 |
處理圖書遺失 |
圖書管理員 |
1 |
圖書管理員設置圖書遺失處罰標準 |
211 |
生成新書庫 |
圖書管理員 |
1 |
入庫新書建立新書庫 |
2.4.3圖書管理員管理前臺的用例圖詳述
Use case :Uc0201登錄 |
角色:圖書管理員 |
前置條件: 圖書管理員選擇需要登錄的操作 |
基本事件流: 1. 圖書管理員輸入登錄信息 |
後置條件:選擇相應操作 |
可選事件流: 1. 圖書管理員退出登錄操作 2.登錄失敗,當前賬號不存在 3.登錄失敗,賬號錯誤 4.登錄失敗,密碼錯誤 |
Use case :Uc0202發佈公告 |
角色:圖書管理員 |
前置條件: 圖書管理員賬號登錄成功 |
基本事件流:
|
可選事件流:
3.公告發布失敗,連續發佈重複公告 |
Use case :Uc0203維護系統 |
角色:圖書管理員 |
前置條件: 圖書管理員賬號登錄成功 |
基本事件流: 1.圖書管理員確認系統運行正常 |
可選事件流: 1.圖書管理員修改系統設置 |
Use case :Uc0204查看讀者訂閱 |
角色:圖書管理員 |
前置條件: 圖書管理員賬號登錄成功 |
基本事件流:
2.圖書管理員查閱讀者訂閱記錄 |
可選事件流:
2.圖書管理員刪除讀者訂閱記錄 |
Use case :Uc0205定時備份數據庫 |
角色:圖書管理員 |
前置條件: 圖書管理員賬號登錄成功 |
基本事件流: 1.圖書管理員設置數據庫備份時間,頻率 |
可選事件流:
3.修改失敗,備份時間不合法 |
Use case :Uc0206設置讀者權限 |
角色:圖書管理員 |
前置條件: 圖書管理員賬號登錄成功 |
基本事件流:
3.圖書管理員確認修改結果 |
可選事件流:
2.圖書管理員取消修改,未保存修改結果 |
Use case :Uc0207新書入庫 |
角色:圖書管理員 |
前置條件: 圖書管理員賬號登錄成功 |
基本事件流:
2.圖書管理員確認新書信息 |
後置條件:生成新書庫 |
可選事件流:
2.圖書管理員取消入庫 |
Use case :Uc0208設置異常還書處罰 |
角色:圖書管理員 |
前置條件: 圖書管理員賬號登錄成功 |
基本事件流: 1.圖書管理員設置異常還書處罰 |
可選事件流:無 |
Use case :Uc0209處理逾期還書 |
角色:圖書管理員 |
前置條件: 圖書管理員賬號登錄成功 |
基本事件流: 1.圖書管理員修改逾期還書處罰金額 |
可選事件流:
2.圖書管理員修改逾期判定時間 |
Use case :Uc0210處理圖書遺失 |
角色:圖書管理員 |
前置條件: 圖書管理員賬號登錄成功 |
基本事件流: 1.圖書管理員修改圖書遺失處罰金額 |
可選事件流: 1.修改失敗,處罰金額不合法(過高或過低) |
Use case :Uc0211生成新書庫 |
角色:圖書管理員 |
前置條件: 新書入庫 |
基本事件流: 1.圖書管理員添加新書,生成新書庫 |
可選事件流: 1.添加圖書已存在,不錄入新書庫 |
2.5管理員後臺管理的用例圖描述
2.5.1管理員後臺管理的用例圖
圖5:管理員後臺管理用例圖
2.5.2管理員後臺管理的用例圖說明
用例ID |
用例名稱 |
角色 |
優先級 |
簡要描述 |
301 |
添加管理員 |
高級管理員 |
1 |
高級管理員添加新的普通管理員賬號 |
302 |
修改密碼 |
高級管理員 |
1 |
高級管理員修改管理員密碼 |
303 |
修改普通管理員登錄密碼 |
高級管理員 |
1 |
高級管理員修改普通管理員通行密碼 |
304 |
修改高級管理員登錄密碼 |
高級管理員 |
1 |
高級管理員修改當前賬戶密碼 |
305 |
管理出版社信息 |
普通管理員、高級管理員 |
1 |
管理員管理出版社基本信息 |
306 |
添加新的出版社 |
普通管理員、高級管理員 |
1 |
管理員添加新的出版社 |
307 |
刪除出版社信息 |
普通管理員、高級管理員 |
1 |
管理員刪除出版社信息 |
308 |
修改出版社信息 |
普通管理員、高級管理員 |
1 |
管理員修改出版社信息 |
309 |
出版社查詢 |
普通管理員、高級管理員 |
1 |
管理員按照出版社索引查詢出版社信息 |
310 |
管理書庫 |
普通管理員、高級管理員 |
1 |
管理員管理書庫 |
311 |
統計排行 |
普通管理員、高級管理員 |
1 |
管理員對圖書進行排序,依照圖書的瀏覽量進行排序 |
312 |
添加圖書 |
普通管理員、高級管理員 |
1 |
管理員添加新的圖書及其相關信息 |
313 |
刪除圖書 |
普通管理員、高級管理員 |
1 |
管理員刪除圖書信息 |
314 |
修改圖書 |
普通管理員、高級管理員 |
1 |
管理員修改圖書信息 |
315 |
查詢圖書 |
普通管理員、高級管理員 |
1 |
管理員依照書籍編號、書籍名稱、書籍類別、出版社、作者姓名等信息對圖書資料進行查詢。 |
316 |
管理讀者 |
普通管理員、高級管理員 |
1 |
管理員對管理讀者信息 |
317 |
添加讀者 |
普通管理員、高級管理員 |
1 |
管理員添加新的讀者,並設置其相關信息 |
318 |
刪除讀者 |
普通管理員、高級管理員 |
1 |
管理員刪除讀者信息 |
319 |
修改讀者 |
普通管理員、高級管理員 |
1 |
管理員修改讀者信息 |
320 |
查詢讀者 |
普通管理員、高級管理員 |
1 |
管理員按照讀者編號對讀者資料進行查詢 |
321 |
登錄 |
普通管理員、高級管理員 |
2 |
管理員登錄 |
322 |
添加圖書管理員 |
高級管理員 |
1 |
高級管理員添加圖書管理員信息 |
323 |
刪除圖書管理員 |
高級管理員 |
1 |
高級管理員刪除圖書管理員信息 |
2.4.3管理員管理後臺的用例圖詳述
Use case :Uc0301添加普通管理員 |
角色:高級管理員 |
前置條件: 高級管理員賬號登錄成功 |
基本事件流:
4.高級管理員確認創建該賬號 |
可選事件流:
4.創建失敗,輸入不符合命名規範 |
Use case :Uc0302修改密碼 |
角色:高級管理員 |
前置條件: 高級管理員賬號登錄成功 |
基本事件流: 1.高級管理員修改管理員密碼 |
可選事件流:無 |
Use case :Uc0303修改普通管理員登錄密碼 |
角色:高級管理員 |
前置條件: 高級管理員賬號登錄成功 |
基本事件流:
3.高級管理員確認修改結果 |
可選事件流:
3.高級管理員取消修改操作,未保存修改結果 |
Use case :Uc0304修改高級管理員登錄密碼 |
角色:高級管理員 |
前置條件: 高級管理員賬號登錄成功 |
基本事件流:
2.高級管理員確認修改結果 |
可選事件流:
3.高級管理員取消修改操作,未保存修改結果 |
Use case :Uc0305管理出版社信息 |
角色:普通管理員 |
前置條件: 普通管理員賬號登錄成功 |
基本事件流: 1.普通管理員選擇管理出版社 |
可選事件流:
4.出版社查詢 |
Use case :Uc0306添加新的出版社 |
角色:普通管理員 |
前置條件: 普通管理員賬號登錄成功 |
基本事件流:
3.普通管理員確認添加出版社 |
可選事件流:
2.添加失敗,填寫數據異常 |
Use case :Uc0307刪除出版社信息 |
角色:普通管理員 |
前置條件: 普通管理員賬號登錄成功 |
基本事件流:
3.普通管理員確定刪除此信息 |
可選事件流: 1.普通管理員更換刪除對象 |
Use case :Uc0308修改出版社信息 |
角色:普通管理員 |
前置條件: 普通管理員賬號登錄成功 |
基本事件流:
3.普通管理員確認修改操作 |
可選事件流:
3.普通管理員更換修改對象 |
Use case :Uc0309出版社查詢 |
角色:普通管理員 |
前置條件: 普通管理員賬號登錄成功 |
基本事件流:
3.普通管理員篩選查詢結果 |
可選事件流:
2.普通管理員修改查詢信息 |
Use case :Uc0310管理書庫 |
角色:普通管理員 |
前置條件: 普通管理員賬號登錄成功 |
基本事件流: 1.普通管理員選擇管理書庫 |
可選事件流:
5.查詢圖書 |
Use case :Uc0311統計排行 |
角色:普通管理員 |
前置條件: 普通管理員賬號登錄成功 |
基本事件流: 1.普通管理員以圖書瀏覽量對圖書降序排序 |
可選事件流: 1.普通管理員以圖書瀏覽量對圖書升序排序 |
Use case :Uc0312添加圖書 |
角色:普通管理員 |
前置條件: 普通管理員賬號登錄成功 |
基本事件流:
3.普通管理員確認添加圖書 |
可選事件流:
2.添加失敗,填寫數據異常 |
Use case :Uc0313刪除圖書 |
角色:普通管理員 |
前置條件: 普通管理員賬號登錄成功 |
基本事件流:
3.普通管理員確認刪除圖書 |
可選事件流: 1.普通管理員更換刪除對象 |
Use case :Uc0314修改圖書 |
角色:普通管理員 |
前置條件: 普通管理員賬號登錄成功 |
基本事件流:
3.普通管理員確認修改圖書 |
可選事件流:
3.普通管理員更換修改對象 |
Use case :Uc0315查詢圖書 |
角色:普通管理員 |
前置條件: 普通管理員賬號登錄成功 |
基本事件流:
|
可選事件流:
3.管理圖修改查詢條件 |
Use case :Uc0316管理讀者 |
角色:普通管理員 |
前置條件: 普通管理員賬號登錄成功 |
基本事件流: 1.普通管理員選擇管理讀者 |
可選事件流:
4.查詢讀者 |
Use case :Uc0317添加讀者 |
角色:普通管理員 |
前置條件: 普通管理員賬號登錄成功 |
基本事件流:
3.普通管理員確認添加讀者 |
可選事件流:
2.添加失敗,填寫數據異常 |
Use case :Uc0318刪除讀者 |
角色:普通管理員 |
前置條件: 普通管理員賬號登錄成功 |
基本事件流:
3.普通管理員確認刪除操作 |
可選事件流: 1.普通管理員更換刪除對象 |
Use case :Uc0319修改讀者 |
角色:普通管理員 |
前置條件: 普通管理員賬號登錄成功 |
基本事件流:
3.普通管理員確認修改操作 |
可選事件流:
3.普通管理員更換修改對象 |
Use case :Uc0320查詢讀者 |
角色:普通管理員 |
前置條件: 普通管理員賬號登錄成功 |
基本事件流:
3.普通管理員篩選查詢結果 |
可選事件流:
3.普通管理員修改查詢條件 |
Use case :Uc0321登錄 |
角色:普通管理員 |
前置條件: 執行普通管理員登錄操作 |
基本事件流: 1.輸入普通管理員登錄信息 |
可選事件流:
3.普通管理員取消登錄操作 |
Use case :Uc0322添加圖書管理員 |
角色:高級管理員 |
前置條件: 高級管理員賬號登錄成功 |
基本事件流: 1.高級管理員選擇添加圖書管理員類型 2.高級管理員創建新的賬號 3.高級管理員設置賬號權限 4.高級管理員確認創建該賬號 |
可選事件流: 1.高級管理員刪除已創建賬號 2.創建失敗,此賬號已存在 3.創建失敗,密碼與其他圖書管理員賬號重複 4.創建失敗,輸入不符合命名規範 |
Use case :Uc0323刪除圖書管理員 |
角色:高級管理員 |
前置條件: 高級管理員賬號登錄成功 |
基本事件流: 1.高級管理員查詢讀者 2.高級管理員選擇要刪除的圖書管理員信息 3.高級管理員確認刪除操作 |
可選事件流: 1.高級 管理員更換刪除對象 |
3 系統的對象建模
3.1 尋找分析類
- Reader(讀者類)
- New_Books (新到書列表類)
- New_Book (新到圖書類)
- Borrow_Record (借閱記錄類)
- Return_Record (還書記錄類)
- Notice_List (公告列表類)
- Notice (公告類)
- Books (圖書列表類)
- Book (圖書類)
- Leave_Record (圖書訂閱類)
- LibrarianManager (圖書管理員類)s
- Manager (普通管理員類)
- Senior_Manager (高級管理員類)
- Press (出版社信息類)
3.2 確定類之間的關係(只畫出初始類圖,不帶任何屬性和操作)
說明:由於在題目開始的時候,我們採用的是前後端分離的思想去分析這個系統,所以在確立類之間的關係時,同樣時以參與者爲核心構建。
3.2.1 和Reader進行交互的類,以及他們之間的關係如圖6:
圖6:和讀者進行交互的類之間的關係
3.2.2 和圖書管理員進行交互的類,以及他們之間的關係如圖7:
圖7:和圖書管理員進行交互的類之間的關係
3.2.3 和管理員進行交互的類,以及他們之間的關係如圖8:
圖8:和圖書管理員進行交互的類之間的關係
3.3 確定類之間的關係(畫出完整類圖,包括每個類的屬性和操作)
3.3.1 和Reader進行交互的類,以及他們之間的關係如圖9:
圖9:和讀者進行交互的類之間的關係
3.3.2 和圖書管理員進行交互的類,以及他們之間的關係如圖10:
圖10:和圖書管理員進行交互的類之間的關係
3.3.3 和管理員進行交互的類,以及他們之間的關係如圖11:
圖11:和管理員進行交互的類之間的關係
3.4類的詳細說明
3.4.1 Reader類(讀者類)
類名:Reader |
||
屬性(attribute) |
reader_id |
讀者id編號 |
reader_name |
讀者姓名 |
|
book_number |
讀者已借書數量 |
|
out_data_book |
逾期未還書的數量 |
|
borrow_book |
正在借閱的書 |
|
limit_book_date_num |
最大可借期限 |
|
limit_book_num |
最大可借數量 |
|
操作 |
queryReaderInfo() |
查詢讀者信息 |
modifyReaderInfo() |
修改讀者信息 |
|
setLimitBookDateNum() |
設置讀者最大借閱時長 |
|
setLimitBookNum() |
設置讀者最大借書數量 |
|
協作(與Reader有關的類的列表)
|
Leave_word |
與reader類是關聯關係 |
LibrarianManager |
與LibrarianManager類是關聯關係 |
|
Manager |
與Manager類是關聯關係 |
|
Books |
與reader類是關聯關係 |
|
Return_Record |
與reader類是關聯關係 |
|
Notice |
與reader類是關聯關係 |
|
Borrow_Record |
與reader類是關聯關係 |
|
New_Books |
與reader類是關聯關係 |
3.4.2 New_Books(新到圖書列表類)
類名:New_Books |
||
屬性(attribute) |
new_books_id |
新入庫圖書的編號 |
new_book_id |
新入庫圖書的名字 |
|
new_books_num |
該書籍的數量 |
|
storage_date |
該書入庫時間 |
|
操作 |
queryForId() |
按照新入庫圖書編號查詢 |
queryForName() |
按照新入庫圖書名稱查詢 |
|
queryForType() |
按照新入庫圖書類型查詢 |
|
queryForPress() |
按照新入庫圖書出版社查詢 |
|
queryForAutor() |
按照新入庫圖書作者查詢 |
|
協作(與New_Books有關的類的列表)
|
Reader |
與Reader類是關聯關係 |
New_Book |
與New_Book類是組合關係 |
|
LibrarianManager |
與LibrarianManager類是關聯關係 |
3.4.3 New_Book(新到圖書類)
類名:New_Book |
||
屬性(attribute) |
new_book_id |
新入庫圖書編號 |
new_book_name |
新入庫圖書名稱 |
|
author |
新入庫圖書作者 |
|
type |
新入庫圖書所屬類型 |
|
press |
新入庫圖書出版社 |
|
storage_date |
新入庫圖書的入庫時間 |
|
操作 |
addNewBook() |
新書入庫操作 |
modifyNewBook() |
新書信息修改操作 |
|
deleteNewBook() |
刪除入庫圖書信息 |
|
協作(與New_Book有關的類的列表)
|
New_Books |
與New_Books類是組合關係 |
3.4.4 Borrow_Record (借閱記錄類)
類名:Borrow_Record |
||
屬性(attribute) |
record_id |
借閱記錄編號 |
reader_id |
讀者編號 |
|
books_id |
圖書列表類編號 |
|
book_id |
圖書編號 |
|
read_time |
最大借閱時間 |
|
reader_time |
讀者已經借閱天數 |
|
loverdue_price |
超期罰款金額 |
|
操作 |
createBorrowRecord() |
生成借閱記錄 |
modifyBorrowRecord() |
修改借閱記錄 |
|
deleteBorrowRecord() |
刪除借閱記錄 |
|
setOverduePrice() |
設置超期罰款的金額 |
|
協作(與 Borrow_Record有關的類的列表)
|
Reader |
與Reader類是關聯關係 |
LibrarianManager |
與LibrarianManager類是關聯關係 |
3.4.5 Return_Record (還書記錄類)
類名:Return_Record |
||
屬性(attribute) |
record_id |
還書記錄編號 |
reader_id |
讀者編號 |
|
books_id |
圖書列表類編號 |
|
book_id |
圖書編號 |
|
read_time |
最大借閱時間 |
|
reader_time |
讀者已經借閱天數 |
|
操作 |
createReturnRecord() |
生成還書記錄 |
modifyReturnRecord() |
修改還書記錄 |
|
deleteReturnRecord() |
刪除還書記錄 |
|
協作(與 Return_Record有關的類的列表)
|
Reader |
與Reader類是關聯關係 |
3.4.6 Notice_List (公告列表類)
類名:Notice_List |
||
屬性(attribute) |
list_id |
公告列表列表編號 |
notice_id |
公告編號 |
|
topic |
公告標題 |
|
date |
公告發布日期 |
|
操作 |
deleteNotice() |
刪除 |
modifyNotice() |
修改公告記錄 |
|
addNotice() |
刪除刪除記錄 |
|
協作(與Reader有關的類的列表)
|
Notice |
與Notice是組合關係 |
LibrarianManager |
與LibrarianManager類是關聯關係 |
3.4.7 Notice(新到圖書列表類)
類名:Notice |
||
屬性(attribute) |
notice_id |
公告編號 |
topic |
公告標題 |
|
content |
公告詳情內容 |
|
bookManager_id |
公告發布人 |
|
操作 |
catNotice |
查詢公告 |
協作(與Notice有關的類的列表)
|
Notice_List |
與Notice_List是組合關係 |
Reader |
與Reader是關聯關係 |
3.4.8 Books(新到圖書列表類)
類名:Books |
||
屬性(attribute) |
books_id |
書籍列表類 |
book_id |
書籍編號 |
|
book_name |
圖書名稱 |
|
book_author |
圖書作者 |
|
book_press |
圖書出版社 |
|
操作 |
addBook() |
添加圖書信息 |
deleteBook() |
刪除圖書信息 |
|
modifyBook() |
修改圖書信息 |
|
queryBook() |
查詢圖書信息 |
|
sortBook() |
排序圖書信息 |
|
協作(與Books有關的類的列表)
|
Reader |
與Reader是關聯關係 |
Books |
與Books是組合關係 |
|
Manager |
與Manager是關聯關係 |
3.4.9 Book(圖書類)
類名:Books |
||
屬性(attribute) |
book_id |
書籍編號 |
type |
圖書類型 |
|
book_name |
圖書名稱 |
|
author |
圖書作者 |
|
press |
圖書出版社 |
|
storage_date |
圖書入庫日期 |
|
操作 |
queryForId() |
按id查詢圖書 |
queryForName() |
按名稱查詢圖書 |
|
queryForType() |
按類型查詢圖書 |
|
queryForPress() |
按出版社查詢圖書 |
|
queryForAuthor() |
按作者查詢圖書 |
|
協作(與Book有關的類的列表)
|
Books |
與Books是組合關係 |
3.4.10 Leave_Word(圖書訂閱類)
類名:Leave_Word |
||
屬性(attribute) |
word_id |
圖書訂閱編號 |
book_name |
圖書名稱 |
|
author |
圖書作者 |
|
press |
圖書出版社 |
|
desc |
圖書簡要描述 |
|
操作 |
addWord() |
添加圖書訂閱信息 |
deleteWord() |
刪除圖書訂閱信息 |
|
catLeaveWord() |
查看圖書訂閱信息 |
|
markAsRead() |
標記爲已讀 |
|
協作(與Leave_Word有關的類的列表)
|
LibrarianManager |
與LibrarianManager是關聯關係 |
Reader |
與Reader是關聯關係 |
3.4.11 LibrarianManager (圖書管理員類)
類名:LibrarianManager |
||
屬性(attribute) |
LManager_id |
圖書管理員編號 |
LManager_name |
圖書管理員姓名 |
|
phone |
圖書管理員電話 |
|
address |
圖書管理員家庭地址 |
|
操作 |
queryLManagerInfo() |
查詢圖書管理員信息 |
modifyLManagerInfo() |
修改圖書管理員信息 |
|
協作(與 LibrarianManager有關的類的列表)
|
Notice_List |
與Notice_List是關聯關係 |
Leave_Word |
與Leave_Word是關聯關係 |
|
New_Books |
與New_Books是關聯關係 |
|
Reader |
與Reader是關聯關係 |
|
Borrow_Record |
與Borrow_Record是關聯關係 |
3.4.12 Manager(普通管理員類)
類名:Manager |
||
屬性(attribute) |
Manager_id |
普通管理員編號 |
Manager_name |
普通管理員姓名 |
|
Manager_password |
普通管理員密碼 |
|
manager_mail |
普通管理員郵箱 |
|
manager_address |
普通管理員家庭地址 |
|
操作 |
QueryAdminUserDetail() |
查詢圖書管理員信息 |
addAdminUser() |
添加圖書管理員信息 |
|
modifyAdminUser() |
修改普通管理員信息 |
|
deleteAdminUser() |
刪除普通管理員信息 |
|
協作(與Manager有關的類的列表)
|
press |
與press是關聯關係 |
Books |
與Books是關聯關係 |
|
Senior_Manager |
與Reader是泛化關係 |
|
Reader |
與Reader是關聯關係 |
3.4.13 Senior_Manager(高級管理員類)
類名:Senior_Manager |
||
屬性(attribute) |
senManager_id |
高級管理員編號 |
senManager_name |
高級管理員姓名 |
|
senManager_password |
高級管理員密碼 |
|
senManager_mail |
高級管理員郵箱 |
|
senManager_address |
高級管理員家庭地址 |
|
操作 |
addManager() |
添加普通管理員 |
ch_sPassword() |
添加圖書管理員信息 |
|
ch_mPassword() |
修改普通管理員信息 |
|
協作(與 Senior_Manager有關的類的列表)
|
Manager |
與Manager是關聯關係 |
3.4.14 Press(出版社信息類)
類名:Press |
||
屬性(attribute) |
press_id |
出版社編號 |
press_name |
出版社名稱 |
|
press_information |
出版社信息 |
|
press_adddress |
出版社郵箱 |
|
操作 |
addPress() |
添加出版社信息 |
modifyPress() |
修改出版社信息 |
|
deletePress () |
刪除出版社信息 |
|
queryPress() |
查詢出版社信息 |
|
協作(與Press有關的類的列表)
|
Manager |
與Manager是關聯關係 |
4 系統的交互建模
4.1識別交互對象
- 讀者類:Reader
- 新到書列表類:New_Books
- 新到圖書類:New_Book
- 借閱記錄類:Borrow_Record
- 還書記錄類:Return_Record
- 公告列表類:Notice_List
- 公告類:Notice
- 圖書列表類:Books
- 圖書類:Book
- 圖書訂閱類:Leave_Record
- 圖書管理員類:LibrarianManager
- 普通管理員類:Manager
- 高級管理員類:Senior_Manager
- 出版社信息類:Press
- 數據庫:Database
4.2讀者功能模塊實現順序圖
4.2.1 登錄:讀者登陸讀者賬號,有三次校驗機會,三次校驗失敗則不可繼續登陸。首先執行login()方法輸入用戶名和密碼,執行checkId()方法校驗用戶名正確性。輸入非法字符則返回登陸失敗;若正確,則繼續執行checkPassword()方法,若輸入密碼錯誤,則返回登陸失敗。密碼正確則登陸成功。
圖12:讀者登錄功能順序圖
4.2.2 查詢入庫新書:讀者查詢入庫新書,可以使用圖書id,圖書名,圖書類型,圖書作者,出版社等信息進行查詢。
圖13:讀者查詢入庫新書功能順序圖
4.2.3查詢圖書信息:讀者查詢圖書信息,與新書查詢方法相同,僅所選操作對象不同。
圖14:讀者查詢圖書功能順序圖
4.2.4借書:讀者進行借書操作,可選擇借書或圖書續借;借書時,讀者查詢期望圖書,使用createBorrowRecord()方法生成借書記錄。借書成功則生成借書記錄成功,若庫存不足則返回借書失敗;圖書續借時,先使用deleteBorrowRecord()方法刪除欲還書的借書記錄,再使用createBorrowRecord()方法生成新的借書記錄。續借成功則生成新的借書記錄成功,若已經續借過,則續借失敗。
圖15:讀者借書功能順序圖
4.2.5還書:讀者進行還書操作,分爲正常還書和異常還書;正常還書時,讀者查詢借書記錄,選擇要還的圖書,首先執行createReturnBook()方法調用deleteBorrowBook方法刪除借書記錄,若借書時間正常,則還書成功,生成還書記錄。若讀者借書時間超過可借閱時間,則返回逾期還書及逾期還書處罰方案。當讀者執行完處罰方案後,則刪除借書記錄成功,生成還書記錄。若讀者圖書遺失,則選擇圖書遺失,此時將執行deleteBorrowBook()方法,返回圖書遺失處罰方案。當讀者執行完成處罰方案後,借書記錄刪除成功,生成還書記錄。
圖16:讀者還書功能順序圖
4.2.6讀者訂閱:讀者登陸留言板,使用addWord()方法添加讀者訂閱信息。讀者登陸留言板,使用deleteWord()方法刪除讀者訂閱信息。
圖17:讀者訂閱功能順序圖
4.2.7查詢個人信息:讀者查詢個人信息,首先執行queryReaderInfo()方法查詢個人信息。可繼續執行queryBorrowInfo()方法,查詢讀者借閱圖書信息。或執行modifyReaderInfo()方法,修改讀者個人信息。
圖18:讀者查詢個人信息功能順序圖
4.2.7查看公告:讀者查看管理員發佈的公告,調用catNotice()方法執行。
圖19:讀者查看公告功能順序圖
4.3圖書管理員功能模塊實現順序圖
4.3.1 發佈公告:圖書管理員LibrarianManager在登錄到系統後,選擇發佈公告操作時,系統執行公告列表類中的Notice_ListaddNotice()方法,該方法會去執行公告類中的insertNotice()方法,並將信息插入到數據庫中,如果公告插入成功,則返回發佈公告成功;否則,則返回發佈公告失敗。
圖20:圖書管理員登錄功能順序圖
4.3.2 設置讀者權限:圖書管理員LibrarianManager在登錄到系統後,選擇設置讀者權限,設置最大借閱天數和最大借閱書籍數,調用setReaderBookNum()方法和setReaderDateNum()方法,原理同上。
圖21:圖書管理員設置讀者權限功能順序圖
4.3.3 新書入庫:圖書管理員LibrarianManager在登錄到系統後,選擇新書入庫功能,開始執行insertNewBooks()方法,該方法會調用New_Book類中的addNewBook()實現新書添加操作。
圖22:圖書管理員新書入庫功能順序圖
4.3.4 設置還書異常處罰:圖書管理員LibrarianManager在登錄到系統後,選擇設置還書異常處罰功能,選擇設置超期罰款金額,即執行setOverduePrice()方法,即可執行該設置操作。
圖23:圖書管理員設置還書異常處罰功能順序圖
4.3.5 查看讀者訂閱:圖書管理員LibrarianManager在登錄到系統後,選擇查看讀者訂閱,即執行catLeaveWord()方法,即得到相應的讀者訂閱信息。
圖24:圖書管理員查看讀者訂閱功能順序圖
4.3.6 定時備份數據庫:圖書管理員LibrarianManager在登錄到系統後,選擇維護系統中的數據庫定時備份exportData,即會按時備份近期產生的數據。
圖25:圖書管理員進行數據庫備份功能順序圖
4.4管理員功能模塊實現順序圖
4.4.1 出版社查詢:普通管理員Manager 對象在進入到系統中後,選擇出版社查詢時,系統執行管理出版社Press 對象中的獲取出版信息queryPress()方法,然後由系統執行管理出版社Press對象在數據庫Database中查找相關的信息,如果找到了,那麼就返回出版社信息給普通管理員Manager 對象,如果沒有找到就返回普通管理員Manager 對象錯誤信息。
圖26:普通管理員進行出版社信息查詢功能順序圖
4.4.2 添加新的出版社:普通管理員Manager 對象在進入到系統中後,選擇添加出版社信息時,系統執行管理出版社Press 對象中的添加出版信息addPress()方法,然後由系統執行管理出版社Press對象在數據庫Database中查找到管理出版社相關的數據存儲區,如果找到了,那麼就添加信息到管理出版社相關的數據存儲區中並返回出版社信息給普通管理員Manager 對象,如果沒有找到就返回普通管理員Manager 對象錯誤信息。
圖27:普通管理員進行添加出版社信息功能順序圖
4.4.3 修改出版社信息:普通管理員Manager 對象在進入到系統中後,選擇修改出版社信息時,系統執行管理出版社Press 對象中的獲取出版信息queryPress()方法,然後由系統執行管理出版社Press對象在數據庫Database中查找相關的信息,如果找到了,那麼就返回出版社信息給普通管理員Manager 對象,如果沒有找到直接返回錯誤信息給普通管理員Manager。在普通管理員Manager 對象接收到出版社信息時,系統纔可以對普通管理員Manager 對象開啓修改功能,並執行系統執行管理出版社Press 對象中修改出版信息modifyPress()方法,然後由系統執行管理出版社Press對象在數據庫Database中查找相關的信息,如果找到了,那麼就根據普通管理員Manager 對象輸入的相關信息進行修改並提示修改成功的信息給普通管理員Manager 對象,如果在第二次數據庫中沒有查找到相關的信息,那麼就提示修改失敗。
圖28:普通管理員進行修改加出版社信息功能順序圖
4.4.4 刪除出版社信息:普通管理員Manager 對象在進入到系統中後,選擇刪除出版社信息記錄時,系統執行管理出版社Press 對象中的獲取出版信息queryPress()方法,然後由系統執行管理出版社Press對象在數據庫Database中查找相關的信息,如果找到了,那麼就返回出版社信息給普通管理員Manager 對象,如果沒有找到直接返回錯誤信息給普通管理員Manager 對象。在普通管理員Manager 對象接收到出版社信息時,系統纔可以對普通管理員Manager 對象開啓刪除出版社信息功能,系統執行管理出版社Press 對象中刪除出版社信息記錄deletePress()方法,然後由系統執行管理出版社Press對象在數據庫Database中查找相關的信息,如果找到了,那麼就根據普通管理員Manager 對象輸入的相關信息進行刪除並提示刪除成功的信息給普通管理員Manager 對象,如果在第二次數據庫中沒有查找到相關的信息,那麼就提示刪除失敗。
圖29:普通管理員進行刪除加出版社信息功能順序圖
4.4.5 統計查詢:普通管理員Manager 對象在進入到系統中後,選擇添加統計查詢時,系統執行管理書庫Books 對象中的獲取借閱前幾個書籍信息getTops()方法,然後由系統查找管理書庫Books 對象在數據庫Database中的書籍信息相關的數據存儲區,如果找到了,那麼就返回統計信息給普通管理員Manager,如果沒有找到就返回普通管理員Manager錯誤信息。
圖30:普通管理員進行統計查詢功能順序圖
4.4.5 添加圖書:普通管理員Manager在進入到系統中後,選擇添加圖書時,系統執行管理書庫Books 對象中的添加書籍信息getBook()方法,然後在調用各個書籍Book對象由系統查找管理書庫Books 對象在數據庫Database中的書籍信息相關的數據存儲區,如果找到了,那麼就返回統計信息給普通管理員Manager,如果沒有找到就返回普通管理員Manager錯誤信息。
圖31:普通管理員進行添加圖書功能順序圖
4.4.6 刪除圖書:普通管理員Manager 對象在進入到系統中後,選擇刪除管理書庫時,系統執行管理書庫Books 對象中的獲取書籍信息queryBook()方法,然後由系統執行管理管理書庫Books 對象在數據庫Database中查找相關的信息,如果找到了,那麼就返回書籍信息給普通管理員Manager 對象,如果沒有找到直接返回錯誤信息給普通管理員Manager 對象。在普通管理員Manager 對象接收到書籍信息時,系統纔可以對普通管理員Manager 對象開啓刪除圖書信息功能,並執行系統執行管理書庫Books 對象中刪除圖書信息deleteBook()方法,然後由系統執行管理書庫Books對象在數據庫Database中查找相關的信息,如果找到了,那麼就根據普通管理員Manager 對象輸入的相關信息進行刪除並提示刪除成功的信息給普通管理員Manager 對象,如果在第二次數據庫中沒有查找到相關的信息,那麼就提示刪除失敗。
圖32:普通管理員進行刪除圖書功能順序圖
4.4.7 修改圖書:普通管理員Manager 對象在進入到系統中後,選擇修改圖書庫信息時,系統執行管理書庫Books對象中的獲取出版信息queryBook()方法,然後由系統執行管理書庫Books對象在數據庫Database中查找相關的信息,如果找到了,那麼就返回書庫信息給普通管理員Manager 對象,如果沒有找到直接返回錯誤信息給普通管理員Manager。在普通管理員Manager 對象接收到書庫信息時,系統纔可以對普通管理員Manager 對象開啓修改功能,系統執行管理出版社Press 對象中修改出版信息modifyBook()方法,然後由系統執行管理管理書庫Books對象在數據庫Database中查找相關的信息,如果找到了,那麼就根據普通管理員Manager 對象輸入的相關信息進行修改並提示修改成功的信息給普通管理員Manager 對象,如果在第二次數據庫中沒有查找到相關的信息,那麼就提示修改失敗。
圖33:普通管理員進行修改圖書功能順序圖
4.4.8 查詢圖書:普通管理員Manager 對象在進入到系統中後,選擇圖書查詢時,系統執行管理書庫Books對象中的獲取出版信息queryBook()方法,然後由系統執行管理書庫Books對象在數據庫Database中查找相關的信息,如果找到了,那麼就返回圖書信息給普通管理員Manager 對象,如果沒有找到就返回普通管理員Manager 對象錯誤信息。
圖34:普通管理員進行查詢圖書功能順序圖
4.4.9 添加讀者:普通管理員Manager 對象在進入到系統中後,選擇添加讀者信息時,系統執行管理讀者Reader對象中的添加讀者信息addReader()方法,然後由系統執行管理讀者Reader對象在數據庫Database中查找到管理讀者相關的數據存儲區,如果找到了,那麼就添加信息到管理讀者相關的數據存儲區中並返回讀者信息給普通管理員Manager 對象,如果沒有找到就返回普通管理員Manager 對象錯誤信息。
圖35:普通管理員進行添加讀者功能順序圖
4.4.10 刪除讀者:普通管理員Manager 對象在進入到系統中後,選擇刪除讀者時,系統執行管理讀者Reader對象中的獲取讀者信息queryReader()方法,然後由系統管理讀者Reader對象在數據庫Database中查找相關的信息,如果找到了,那麼就返回書籍信息給普通管理員Manager 對象,如果沒有找到直接返回錯誤信息給普通管理員Manager 對象。在普通管理員Manager 對象接收到書籍信息時,系統纔可以對普通管理員Manager 對象開啓刪除讀者信息功能,並執行系統執行管理讀者Reader對象中刪除圖書信息deleteReader()方法,然後由系統執行管理讀者Reader對象在數據庫Database中查找相關的信息,如果找到了,那麼就根據普通管理員Manager 對象輸入的相關信息進行刪除並提示刪除成功的信息給普通管理員Manager 對象,如果在第二次數據庫中沒有查找到相關的信息,那麼就提示刪除失敗。
圖36:普通管理員進行刪除讀者功能順序圖
4.4.11 修改讀者:普通管理員Manager 對象在進入到系統中後,選擇修改讀者信息時,系統執行管理讀者Reader對象中的獲取出版信息queryReader()方法,然後由系統執行管理讀者Reader對象在數據庫Database中查找相關的信息,如果找到了,那麼就返回書庫信息給普通管理員Manager 對象,如果沒有找到直接返回錯誤信息給普通管理員Manager。在普通管理員Manager 對象接收到讀者信息時,系統纔可以對普通管理員Manager 對象開啓修改功能,系統執行管理讀者Reader對象中修改出版信息modifyReader()方法,然後由系統執行管理讀者Reader對象在數據庫Database中查找相關的信息,如果找到了,那麼就根據普通管理員Manager 對象輸入的相關信息進行修改並提示修改成功的信息給普通管理員Manager 對象,如果在第二次數據庫中沒有查找到相關的信息,那麼就提示修改失敗。
圖37:普通管理員進行修改讀者功能順序圖
4.4.12 查詢讀者:普通管理員Manager 對象在進入到系統中後,選擇讀者查詢時,系統執行管理讀者Reader對象中的獲取出版信息queryReader()方法,然後由系統執行管理讀者Reader對象在數據庫Database中查找相關的信息,如果找到了,那麼就返回讀者信息給普通管理員Manager 對象,如果沒有找到就返回普通管理員Manager 對象錯誤信息。
圖38:普通管理員進行查詢讀者功能順序圖
4.4.13 出版社查詢(高級管理員):高級管理員 SeniorManager 對象在進入到系統中後,選擇出版社查詢時,系統執行管理出版社Press 對象中的獲取出版信息queryPress()方法,然後由系統執行管理出版社Press對象在數據庫Database中查找相關的信息,如果找到了,那麼就返回出版社信息高級對象,如果沒有找到就返高級對象錯誤信息。
圖39:普通管理員進行出版社查詢功能順序圖
4.4.14 添加新的出版社(高級管理員):高級管理員 SeniorManager 對象在進入到系統中後,選擇添加出版社信息時,系統執行管理出版社Press 對象中的添加出版信息addPress()方法,然後由系統執行管理出版社Press對象在數據庫Database中查找到管理出版社相關的數據存儲區,如果找到了,那麼就添加信息到管理出版社相關的數據存儲區中並返回出版社信息給普通管理員SeniorManager 對象,如果沒有找到就返回普通管理員SeniorManager 對象錯誤信息。
圖40:普通管理員進行添加新的出版社信息功能順序圖
4.4.15 修改出版社信息(高級管理員):高級管理員 SeniorManager 對象在進入到系統中後,選擇修改出版社信息時,系統執行管理出版社Press 對象中的獲取出版信息queryPress()方法,然後由系統執行管理出版社Press對象在數據庫Database中查找相關的信息,如果找到了,那麼就返回出版社信息給高級管理員 SeniorManager 對象,如果沒有找到直接返回錯誤信息給高級管理員 SeniorManager。在普通管理員SeniorManager 對象接收到出版社信息時,系統纔可以對普通管理員SeniorManager 對象開啓修改功能,並執行系統執行管理出版社Press 對象中修改出版信息modifyPress()方法,然後由系統執行管理出版社Press對象在數據庫Database中查找相關的信息,如果找到了,那麼就根據高級管理員 SeniorManager 對象輸入的相關信息進行修改並提示修改成功的信息給高級管理員 SeniorManager 對象,如果在第二次數據庫中沒有查找到相關的信息,那麼就提示修改失敗。
圖41:普通管理員進行修改出版社信息功能順序圖
4.4.16 刪除出版社記錄(高級管理員):高級管理員 SeniorManager 對象在進入到系統中後,選擇刪除出版社信息記錄時,系統執行管理出版社Press 對象中的獲取出版信息queryPress()方法,然後由系統執行管理出版社Press對象在數據庫Database中查找相關的信息,如果找到了,那麼就返回出版社信息給高級管理員 SeniorManager 對象,如果沒有找到直接返回錯誤信息給高級管理員 SeniorManager 對象。在高級管理員 SeniorManager 對象接收到出版社信息時,系統纔可以對高級管理員 SeniorManager 對象開啓刪除出版社信息功能,系統執行管理出版社Press 對象中刪除出版社信息記錄deletePress()方法,然後由系統執行管理出版社Press對象在數據庫Database中查找相關的信息,如果找到了,那麼就根據高級管理員 SeniorManager 對象輸入的相關信息進行刪除並提示刪除成功的信息給高級管理員 SeniorManager 對象,如果在第二次數據庫中沒有查找到相關的信息,那麼就提示刪除失敗。
圖42:普通管理員進行刪除出版社信息功能順序圖
4.4.17 統計查詢(高級管理員):高級管理員 SeniorManager 對象在進入到系統中後,選擇添加統計查詢時,系統執行管理書庫Books 對象中的獲取借閱前幾個書籍信息getTops()方法,然後由系統查找管理書庫Books 對象在數據庫Database中的書籍信息相關的數據存儲區,如果找到了,那麼就返回統計信息給高級管理員 SeniorManager,如果沒有找到就返回高級管理員 SeniorManager錯誤信息。
圖42:高級管理員進行統計查詢功能順序圖
4.4.18 添加圖書(高級管理員):高級管理員 SeniorManager在進入到系統中後,選擇添加圖書時,系統執行管理書庫Books 對象中的添加書籍信息getBook()方法,然後在調用各個書籍Book對象由系統查找管理書庫Books 對象在數據庫Database中的書籍信息相關的數據存儲區,如果找到了,那麼就返回統計信息給高級管理員 SeniorManager,如果沒有找到就返回高級管理員 SeniorManager錯誤信息。
圖43:高級管理員進行添加圖書功能順序圖
4.4.19 刪除圖書(高級管理員):高級管理員 SeniorManager 對象在進入到系統中後,選擇刪除管理書庫時,系統執行管理書庫Books 對象中的獲取書籍信息queryBook()方法,然後由系統執行管理管理書庫Books 對象在數據庫Database中查找相關的信息,如果找到了,那麼就返回書籍信息給高級管理員 SeniorManager 對象,如果沒有找到直接返回錯誤信息給高級管理員 SeniorManager 對象。在普高級管理員 SeniorManager 對象接收到書籍信息時,系統纔可以對高級管理員 SeniorManager 對象開啓刪除圖書信息功能,並執行系統執行管理書庫Books 對象中刪除圖書信息deleteBook()方法,然後由系統執行管理書庫Books對象在數據庫Database中查找相關的信息,如果找到了,那麼就根據高級管理員 SeniorManager 對象輸入的相關信息進行刪除並提示刪除成功的信息給高級管理員 SeniorManager 對象,如果在第二次數據庫中沒有查找到相關的信息,那麼就提示刪除失敗。
圖44:高級管理員進行刪除圖書功能順序圖
4.4.20 修改圖書(高級管理員):高級管理員 eniorManager 對象在進入到系統中後,選擇修改圖書庫信息時,系統執行管理書庫Books對象中的獲取出版信息queryBook()方法,然後由系統執行管理書庫Books對象在數據庫Database中查找相關的信息,如果找到了,那麼就返回書庫信息給高級管理員 SeniorManager 對象,如果沒有找到直接返回錯誤信息給高級管理員 SeniorManager。在高級管理員 SeniorManager 對象接收到書庫信息時,系統纔可以對高級管理員 SeniorManager 對象開啓修改功能,系統執行管理出版社Press 對象中修改出版信息modifyBook()方法,然後由系統執行管理管理書庫Books對象在數據庫Database中查找相關的信息,如果找到了,那麼就根據高級管理員 SeniorManager 對象輸入的相關信息進行修改並提示修改成功的信息給高級管理員 SeniorManager 對象,如果在第二次數據庫中沒有查找到相關的信息,那麼就提示修改失敗。
圖45:高級管理員進行修改圖書功能順序圖
4.4.21 查詢圖書(高級管理員):高級管理員 SeniorManager 對象在進入到系統中後,選擇圖書查詢時,系統執行管理書庫Books對象中的獲取出版信息queryBook()方法,然後由系統執行管理書庫Books對象在數據庫Database中查找相關的信息,如果找到了,那麼就返回圖書信息給高級管理員 SeniorManager 對象,如果沒有找到就返回高級管理員 SeniorManager 對象錯誤信息。
圖46:高級管理員進行查詢圖書功能順序圖
4.4.22 添加讀者(高級管理員):高級管理員 SeniorManager 對象在進入到系統中後,選擇添加讀者信息時,系統執行管理讀者Reader對象中的添加讀者信息addReader()方法,然後由系統執行管理讀者Reader對象在數據庫Database中查找到管理讀者相關的數據存儲區,如果找到了,那麼就添加信息到管理讀者相關的數據存儲區中並返回讀者信息給高級管理員 SeniorManager 對象,如果沒有找到就返回高級管理員 SeniorManager 對象錯誤信息。
圖47:高級管理員進行添加讀者功能順序圖
4.4.23 刪除讀者 (高級管理員):高級管理員 SeniorManager 對象在進入到系統中後,選擇刪除讀者時,系統執行管理讀者Reader對象中的獲取讀者信息queryReader()方法,然後由系統管理讀者Reader對象在數據庫Database中查找相關的信息,如果找到了,那麼就返回書籍信息給高級管理員 SeniorManager 對象,如果沒有找到直接返回錯誤信息給高級管理員 SeniorManager 對象。在高級管理員 SeniorManager 對象接收到書籍信息時,系統纔可以對高級管理員 SeniorManager 對象開啓刪除讀者信息功能,並執行系統執行管理讀者Reader對象中刪除圖書信息deleteReader()方法,然後由系統執行管理讀者Reader對象在數據庫Database中查找相關的信息,如果找到了,那麼就根據高級管理員 SeniorManager 對象輸入的相關信息進行刪除並提示刪除成功的信息給高級管理員 SeniorManager 對象,如果在第二次數據庫中沒有查找到相關的信息,那麼就提示刪除失敗。
圖48:高級管理員進行刪除讀者功能順序圖
4.4.24 修改讀者(高級管理員):高級管理員 SeniorManager 對象在進入到系統中後,選擇修改讀者信息時,系統執行管理讀者Reader對象中的獲取出版信息queryReader()方法,然後由系統執行管理讀者Reader對象在數據庫Database中查找相關的信息,如果找到了,那麼就返回書庫信息給高級管理員 SeniorManager 對象,如果沒有找到直接返回錯誤信息給高級管理員 SeniorManager。在高級管理員 SeniorManager 對象接收到讀者信息時,系統纔可以對高級管理員 SeniorManager 對象開啓修改功能,系統執行管理讀者Reader對象中修改出版信息modifyReader()方法,然後由系統執行管理讀者Reader對象在數據庫Database中查找相關的信息,如果找到了,那麼就根據高級管理員 SeniorManager 對象輸入的相關信息進行修改並提示修改成功的信息給高級管理員 SeniorManager 對象,如果在第二次數據庫中沒有查找到相關的信息,那麼就提示修改失敗。
圖49:高級管理員進行修改讀者功能順序圖
4.4.25 查詢讀者(高級管理員):高級管理員 SeniorManager 對象在進入到系統中後,選擇讀者查詢時,系統執行管理讀者Reader對象中的獲取出版信息queryReader()方法,然後由系統執行管理讀者Reader對象在數據庫Database中查找相關的信息,如果找到了,那麼就返回讀者信息給高級管理員 SeniorManager 對象,如果沒有找到就返回普通管理員SeniorManager 對象錯誤信息。
圖50:高級管理員進行查詢讀者功能順序圖
4.4.26 修改普通管理員登錄密碼(高級管理員):高級管理員SeniorManager 對象在進入到系統中後,選擇修改普通管理員登錄密碼時,系統執行普通管理員Manager 對象中的修改普通管理員信息chmPassword()方法,如果成功返回成功信息,否則返回錯誤信息。
圖51:高級管理員進行修改普通管理員登錄密碼功能順序圖
4.4.27 修改高級管理員登錄密碼(高級管理員):高級管理員SeniorManager 對象在進入到系統中後,選擇修改高級管理員登錄密碼時,系統執行高級管理員SeniorManager 對象中的修改高級管理員信息chsPassword()方法,如果成功返回成功信息,否則返回錯誤信息。
圖52:高級管理員進行修改高級管理員登錄密碼功能順序圖
4.4.28 添加普通管理員(高級管理員):高級管理員 SeniorManager 對象在進入到系統中後,選擇添加普通管理員時,系統執行管理普通管理員Manager 對象中的添加普通管理員addReader()方法,然後由系統執行管理普通管理員Manager 對象在數據庫Database中查找到普通管理員相關的數據存儲區,如果找到了,那麼就添加信息到管理普通管理員相關的數據存儲區中並返回讀者信息給高級管理員SeniorManager 對象,如果沒有找到就返回高級管理員SeniorManager 對象錯誤信息。
圖53:高級管理員進行添加普通管理員功能順序圖
4.4.29 刪除普通管理員(高級管理員):高級管理員 SeniorManager 對象在進入到系統中後,選擇刪除普通管理員時,系統執行管理普通管理員Manager 對象中的獲取讀者信息queryManager()方法,然後由系統管理普通管理員Manager 對象在數據庫Database中查找相關的信息,如果找到了,那麼就返回圖片管理員信息給高級管理員SeniorManager 對象,如果沒有找到直接返回錯誤信息給普通管理員SeniorManager 對象。在高級管理員SeniorManager 對象接收到書籍信息時,系統纔可以對高級管理員SeniorManager 對象開啓刪除讀者信息功能,並執行系統執行管理讀者Reader對象中刪除圖書信息deleteReader()方法,然後由系統執行管理讀者Reader對象在數據庫Database中查找相關的信息,如果找到了,那麼就根據高級管理員SeniorManager 對象輸入的相關信息進行刪除並提示刪除成功的信息高級管理員SeniorManager 對象,如果在第二次數據庫中沒有查找到相關的信息,那麼就提示刪除失敗。
圖54:高級管理員進行刪除普通管理員功能順序圖
4.4.30 添加圖書管理員(高級管理員):高級管理員 SeniorManager 對象在進入到系統中後,選擇添加圖書管理員時,系統執行管理圖書管理員LibrarianManager對象中的添加圖書管理員addLibrarianManager()方法,然後由系統執行圖書管理員LibrarianManager對象在數據庫Database中查找到圖書管理員相關的數據存儲區,如果找到了,那麼就添加信息到管理圖書管理員相關的數據存儲區中並返回圖書管理員信息給高級管理員SeniorManager 對象,如果沒有找到就返回高級管理員SeniorManager 對象錯誤信息。
圖55:高級管理員進行添加圖書管理員功能順序圖
4.4.31 刪除圖書管理員(高級管理員):高級管理員 SeniorManager 對象在進入到系統中後,選擇刪除普通管理員時,系統執行管理普通管理員Manager 對象中的獲取讀者信息queryManager()方法,然後由系統管理普通管理員Manager 對象在數據庫Database中查找相關的信息,如果找到了,那麼就返回圖片管理員信息給高級管理員SeniorManager 對象,如果沒有找到直接返回錯誤信息給普通管理員SeniorManager 對象。在高級管理員SeniorManager 對象接收到書籍信息時,系統纔可以對高級管理員SeniorManager 對象開啓刪除讀者信息功能,並執行系統執行管理讀者Reader對象中刪除圖書信息deleteReader()方法,然後由系統執行管理讀者Reader對象在數據庫Database中查找相關的信息,如果找到了,那麼就根據高級管理員SeniorManager 對象輸入的相關信息進行刪除並提示刪除成功的信息高級管理員SeniorManager 對象,如果在第二次數據庫中沒有查找到相關的信息,那麼就提示刪除失敗。
圖56:高級管理員進行刪除圖書管理員功能順序圖
5 總結
5.1 小組收穫
- 通過本次uml課程設計,依據對圖書管理系統的分析,我們小組成員對於用例建模、對象建模、交互建模等了解的更加清楚。基本上學會了使用StartUML工具表示出這三類圖。提升了我們對於軟件開發前期的需求分析能力,對之前老師所講的知識加深了理解。總之,做完這次實驗後,無論是需求的分析和描述、各類圖的作圖法還有文檔寫作能力都有了很大的提高。
- 作爲組長,也是深刻體會到了團隊協助的重要性,一個人在這麼短的時間內不可能完成這麼多工作。當遇到問題產生分歧時,也要考慮到組員的想法並準確的做出判斷。
5.2 小組遇到的問題以及解決方案
- 在剛開始做需求分析和整理的時候,作爲組長,沒能很好的把握住時間,導致後期任務繁重。
- 在剛開始確定參與者之間的關係時,遇到了到底是應該讓高級管理員管理圖書管理員和普通管理員,還是應該讓高級管理員管理普通管理員,普通管理員再去管理圖書管理員的問題。後面我們通過自己的分析,既然是前後端分離的系統,即應該是圖書管理員與用戶數據打交道,普通管理員去管理後臺系統,高級管理員管理普通管理員和圖書管理員的思想。
- 在分析讀者借還書這一塊時,遇到了業務邏輯處理複雜的難題,畢竟整個圖書管理系統的主流業務就是借還書。基於這個問題,我們想出了一個辦法,即設計出兩張表,一張借書記錄表、一張還書記錄表。當借書或者續借的時候(只需要去生成一條結束記錄即可,該表會關聯到書籍列表Books),當還書時(只需要刪除那條借書記錄並生成一條還書記錄即可),這樣的話,簡化了其中的業務邏輯,所有的操作有記錄表操作Books中的圖書的數量完成。
- 關於題目中給出了新書入庫的操作的問題,我們組決定再構建出兩個類,New_Books類和New_Book類與Books類和Book類對應。當有一批新書需要入庫時,該信息會記錄再New_Books類和New_Book類,當然在記錄當前月所到新書之前,這兩個類將有相應的操作方法上一個月的圖書信息複製到Books類和Book類中,並刪除掉上個月New_Books類和New_Book類所有信息。這樣就達到了新書入庫的目的,也簡化了新到圖書查詢難得問題。
6 參考文獻
[1] 王先國.Uml統一建模實用教程 [M]. 北京:清華大學出版社,2009.
[2] 張海藩、倪寧.軟件工程 [M]. 北京:人民郵電出版社,2010.
分組項目評分表
課程名稱: 統一建模語言
考覈項目 |
考覈分數 |
設計方案的合理性與創造性(15分) |
|
設計的結果(30分) |
|
項目報告的質量(30分) |
|
答辯陳述與回答問題(25分) |
|
綜合成績 |
|
教師簽名:
日 期: