第一篇:圖書管理系統(tǒng)狀態(tài)圖與活動圖(UML)
學(xué) 號 1407070226
統(tǒng)一建模語言UML B
實(shí)驗(yàn)報告
實(shí)驗(yàn)4 狀態(tài)圖和活動圖
學(xué)專指成 生業(yè)導(dǎo)、姓班教
名 級 師 績
黃源 14軟件(2)班
高天迎
計(jì)算機(jī)與信息工程學(xué)院
年 月 日
一、實(shí)驗(yàn)?zāi)康?/p>
在熟悉狀態(tài)、活動概念與應(yīng)用的基礎(chǔ)上,掌握狀態(tài)圖和活動圖的建立。1.理解什么狀態(tài)和狀態(tài)圖。2.掌握狀態(tài)圖的建立。3.掌握活動圖的建立。
二、實(shí)驗(yàn)內(nèi)容
1.建立圖書管理系統(tǒng)的狀態(tài)圖。2.建立圖書管理系統(tǒng)的活動圖。
三、實(shí)驗(yàn)思想
1.分析:根據(jù)圖書管理系統(tǒng)的需求分析和用例模型,對系統(tǒng)中的用例進(jìn)行動態(tài)建模。
2.在Rational Rose工具中繪制狀態(tài)圖和活動圖。
四、實(shí)驗(yàn)結(jié)果 1.狀態(tài)圖:(1)登陸
(2)增添新書
(3)借閱者
2.活動圖(1)借閱者
(2)圖書管理員
(3)系統(tǒng)管理員管理借閱者信息
(4)系統(tǒng)管理員維護(hù)圖書信息
五、實(shí)驗(yàn)心得
這次實(shí)驗(yàn)學(xué)習(xí)的是狀態(tài)圖和活動圖,感覺這次實(shí)驗(yàn)和前面實(shí)驗(yàn)相比較要容易一些,這些圖按順序來的,感覺會和我們傳統(tǒng)的思維模式比較吻合,用心去繪制就很容易畫出來。
第二篇:圖書管理系統(tǒng)UML分析與設(shè)計(jì)
1.系統(tǒng)需求
系統(tǒng)的功能性需求描述如下:
·
圖書管理系統(tǒng)為管理員提供主功能界面。
·
圖書管理系統(tǒng)在啟動時要求管理員輸人口令,只有口令正確,才可以進(jìn)入系統(tǒng)的主功能界面。
·
管理員負(fù)責(zé)對圖書管理系統(tǒng)的維護(hù)工作,因此系統(tǒng)應(yīng)賦予管理員對圖書信息、讀者信息和出版社信息進(jìn)行錄入、修改、查詢和刪除等功能的操作權(quán)限。
·
管理員作為讀者的代理實(shí)現(xiàn)借書與還書業(yè)務(wù)。
·
圖書信息、讀者信息和出版社信息保存在對應(yīng)的數(shù)據(jù)庫表中。
在上述功能性需求分析的基礎(chǔ)上,可以寫出較為詳細(xì)的需求規(guī)格說明書,作為進(jìn)行系統(tǒng)分析、設(shè)計(jì)和實(shí)現(xiàn)的依據(jù)。需求分析規(guī)格說明書由系統(tǒng)最終用戶提出需求,系統(tǒng)分析人員負(fù)責(zé)編寫。圖書管理系統(tǒng)需求分析規(guī)格說明書如下:
·
這是一個圖書館圖書借閱管理的應(yīng)用系統(tǒng);
·
圖書管理系統(tǒng)負(fù)責(zé)將圖書、雜志借給讀者,前提條件是這些讀者在系統(tǒng)進(jìn)行了注冊,圖書和雜志也在系統(tǒng)中進(jìn)行了注冊;
·
圖書館負(fù)責(zé)新書的購買,當(dāng)書和雜志已經(jīng)過時或者破舊不堪時,可以將這些圖書和雜志從圖書館管理系統(tǒng)中刪除;
·
圖書管理員是圖書館的員工,負(fù)責(zé)與讀者打交道,并且是在系統(tǒng)提供的支持下開展工作;
·
圖書管理系統(tǒng)能夠容易地建立、修改和刪除系統(tǒng)中的信息,包括圖書信息、讀者信息、以及出版社信息等;
·
圖書管理系統(tǒng)能夠在所有流行的平臺環(huán)境(windows,uNIx等操作系統(tǒng))上運(yùn)行,并具有一個美觀的圖書用戶界面;
·
圖書管理系統(tǒng)容易擴(kuò)展新功能。
2.分析建模
? Use case diagram 分析
采用下列描述項(xiàng)撰寫用例的腳本。
· 用例名稱——表明用戶的意圖或用例的用途。
· 參與者——與該用例相關(guān)的參與者列表。
· 前置條件——一個條件列表,如果其中包含條件,則這些條件必須在訪問用例之前得到滿足。
· 后置條件——一個條件列表,如果其中包含條件,則這些條件將在用例完成以后得到滿足。
· 基本事件流——描述用例中各項(xiàng)活動都正常進(jìn)行時用例的工作方式。
· 分支事件流——描述用例中某項(xiàng)活動的子活動各項(xiàng)工作都正常進(jìn)行時用例的工作式。
· 異常事件流——描述用例的變更工作方式,以及出現(xiàn)異常或發(fā)生錯誤的情況下所執(zhí)行的路徑。
圖書管理系統(tǒng)中每個用例的腳本描述如下:
1.系統(tǒng)登錄
用例名稱:系統(tǒng)登錄
參與者:圖書管理員 1.1前置條件 無
1.2后置條件
如果用例成功,參與者可以啟動系統(tǒng),使用系統(tǒng)提供的功能。反之,系統(tǒng)的狀態(tài)不發(fā)生變化。
1.3基本事件流
當(dāng)圖書管理員登錄系統(tǒng)時,用例啟動。
①系統(tǒng)提示用戶輸入用戶名和密碼。
②用戶輸入用戶名和密碼。
③系統(tǒng)驗(yàn)證輸入的用戶名和密碼,若正確,則用戶登錄到系統(tǒng)中。
1.4異常事件流
如果用戶輸入無效的用戶名/密碼,則系統(tǒng)顯示錯誤信息。用戶可以選擇返回基本事件流的起始點(diǎn),重新輸入正確的用戶名/密碼;或者取消登錄,用例結(jié)束。
2.圖書借閱
用例名稱:借閱圖書
參與者:讀者,圖書管理員 2.1前置條件
在這個用例開始之前,圖書管理員必須登錄到系統(tǒng);否則,系統(tǒng)的狀態(tài)不發(fā)生變化。
2.2后置條件
如果這個用例成功實(shí)現(xiàn),則在系統(tǒng)中創(chuàng)建并存儲借閱記錄。2.3基本事件流
當(dāng)讀者借閱圖書時,用例啟動。
①登錄系統(tǒng)。
②輸人圖書ID和讀者ID。
③檢索讀者ID。
④檢索圖書ID。
⑤根據(jù)時間算法確定圖書借出日期和歸還日期。
⑥圖書館將圖書借給讀者。
⑦創(chuàng)建借閱記錄。
⑧存儲借閱記錄。2.4異常事件流
①如果讀者未注冊,則系統(tǒng)顯示提示信息,用例被終止。
②如果要借圖書不存在,系統(tǒng)顯示提示信息,用例被終止。
③如果要借圖書都已借出,則系統(tǒng)提示信息,用例被終止。3.圖書歸還
用例名稱:圖書歸還
參與者:讀者,圖書管理員 3.1前置條件
在這個用例開始之前,圖書管理員必須登錄到系統(tǒng);否則,系統(tǒng)的狀態(tài)不發(fā)生變化。
3.2后置條件
如果這個用例成功實(shí)現(xiàn),則系統(tǒng)刪除借閱記錄;否則,系統(tǒng)的狀態(tài)不發(fā)生變化。3.3基本事件流
當(dāng)讀者歸還借閱的圖書時,用例被啟動。
①登錄系統(tǒng)。
②輸入圖書ID和讀者ID。③檢索圖書ID。
④檢索讀者ID。
⑤查詢圖書借閱記錄。⑥刪除借閱記錄。3.4異常事件流
①如果歸還圖書不存在,則系統(tǒng)顯示提示信息,用例被終止。②如果借閱記錄不存在,則系統(tǒng)顯示提示信息,用例被終止。4.讀者維護(hù)
用例名稱:讀者維護(hù) ‘ 參與者:圖書管理員 ’ 4.1前置條件
在這個用例開始之前,圖書管理員必須登錄到系統(tǒng);否則,系統(tǒng)的狀態(tài)不發(fā)生變化。4.2后置條件
如果這個用例成功地實(shí)現(xiàn),則系統(tǒng)添加、修改或檢索讀者信息;否則,系統(tǒng)的狀態(tài)不發(fā)生變化。
4.3基本事件流
當(dāng)圖書管理員維護(hù)讀者信息時,用例被啟動。①登錄系統(tǒng)。
②如果選擇的活動是“添加讀者信息”,則執(zhí)行分支事件流4.3.1:添加讀者信息。③如果選擇的活動是“修改讀者信息”,則執(zhí)行分支事件流4.3.2:修改讀者信息。④如果選擇的活動是“檢索讀者信息”,則執(zhí)行分支事件流4.3.3:檢索讀者信息。4.3.1分支事件流
①提供讀者的信息,例如,讀者ID,讀者姓名、電話號碼等。②系統(tǒng)存儲讀者信息。4.3.2分支事件流 ①輸入讀者ID。
②查詢并顯示讀者信息。③更新系統(tǒng)中讀者信息。4.3.3分支事件流 ①輸入讀者ID。
②查詢并顯示讀者信息。4.4異常事件流
①如果讀者已經(jīng)存在,則系統(tǒng)顯示提示信息,用例被終止。②如果查詢不到讀者,則系統(tǒng)顯示提示信息,用例被終止。5.圖書維護(hù)
用例名稱:圖書維護(hù) 參與者:圖書管理員 5.1前置條件
在這個用例開始之前,圖書管理員必須登錄到系統(tǒng);否則,系統(tǒng)的狀態(tài)不發(fā)生變化。5.2后置條件
如果這個用例成功實(shí)現(xiàn),則系統(tǒng)添加、修改或檢索圖書信息;否則,系統(tǒng)的狀態(tài)不發(fā)生變化。
5.3基本事件流
當(dāng)圖書管理員維護(hù)圖書信息時,用例被啟動。①登錄系統(tǒng)。
②如果選擇的活動是“添加圖書信息”,則執(zhí)行分支事件流5.3.1:添加圖書信息。③如果選擇的活動是“修改圖書信息”,則執(zhí)行分支事件流5.3.2:修改圖書信息。④如果選擇的活動是“檢索圖書信息”,則執(zhí)行分支事件流5.3.3:檢索圖書信息。5.3.1分支事件流
①提供圖書的信息,例如,圖書ID,圖書名稱、編著者、出版社、價格、出版年份籌 ②系統(tǒng)存儲圖書信息。5.3.2分支事件流 ①輸人圖書ID。
②查詢并顯示圖書信息。⑨更新系統(tǒng)中圖書信息。5.3.3分支事件流 ①輸入圖書ID。
②查詢并顯示圖書信息。5.4異常事件流
①如果該圖書已經(jīng)存在,則系統(tǒng)顯示提示信息,用例被終止。②如果查詢不到該圖書,則系統(tǒng)顯示提示信息,用例被終止。
系統(tǒng)總體功能結(jié)構(gòu)
? 根據(jù)用例圖定義分析包以及分析包(子系統(tǒng))之間的關(guān)系。
圖書管理系統(tǒng)分析包詳細(xì)結(jié)構(gòu)
? 定義類、用例實(shí)現(xiàn)(序列圖)、類關(guān)系圖(1)系統(tǒng)登錄
類圖:
系統(tǒng)登錄分析類圖
用例實(shí)現(xiàn):
登錄系統(tǒng)成功順序圖
登錄系統(tǒng)失敗順序圖
(2)登錄圖書信息
類圖:
登錄圖書信息分析類圖
用例實(shí)現(xiàn):
登錄圖書信息順序圖
(3)修改圖書信息
類圖:
修改圖書信息分析類圖
用例實(shí)現(xiàn):
修改圖書信息順序圖
(4)檢索圖書信息
類圖:
檢索圖書信息分析類圖
用例實(shí)現(xiàn):
檢索圖書信息順序圖
(5)借閱圖書 類圖:
借閱圖書分析類圖
用例實(shí)現(xiàn):
借閱圖書順序圖
(6)歸還圖書
類圖:
歸還圖書分析類圖
用例實(shí)現(xiàn):
歸還圖書順序圖
(7)借出圖書一覽表
類圖:
借出圖書一覽表分析類圖
用例實(shí)現(xiàn):
借出圖書一覽表順序圖
(8)類關(guān)系圖
系統(tǒng)實(shí)體類(業(yè)務(wù)類)之間的關(guān)系
(9)類的具體定義
1.圖書表類
編號:A—l一0l
類名:圖書表
職責(zé):存放圖書館所能處理的所有圖書的基本信息
屬性:圖書代號,圖書名稱,編著者,ISBN代碼,出版社代碼,出版年份,頁數(shù),價格,購入日期,過期日期,書架代碼,備注
說明:該類存放所有圖書類的公用信息,它是“圖書借閱表”的父類。圖書也有身份,可以通過不同的ISBN相區(qū)別。在圖書管理系統(tǒng)中,圖書也有相關(guān)的行為,圖書因?yàn)槭褂闷谙薜瓤梢员讳N毀,所以圖書表也是系統(tǒng)中的一個對象。
2.登錄圖書界面類
編號:A一1—02
類名:登錄圖書界面
職責(zé):提供輸入所有圖書信息的界面
屬性:圖書代號,圖書名稱,編著者,ISBN代碼,出版社代碼,出版年份,頁數(shù),價格,購入日期,過期日期,書架代碼,備注
說明:該類的所有屬性是非持久性的,但它為用戶保存永久性的圖書屬性提供了一個臨時的輸入接口。
3.登錄圖書信息控制類
編號:A—l—03
類名:登錄圖書信息控制類
職責(zé):實(shí)現(xiàn)登錄圖書界面類與圖書表類所提供信息的交互。
屬性:圖書代號,圖書名稱,編著者,ISBN代碼,出版社代碼,出版年份,頁數(shù),價 格,購人日期,過期日期,書架代碼,備注
說明:該類的所有屬性是非持久性的,但它為用戶保存永久性的圖書屬性提供了一 個臨時的輸人接口。
4.出版社表類
編號:B—l—01
類名:出版社表
職責(zé):存放圖書表所使用的所有圖書的出版單位
屬性:出版社代碼,出版社名稱
說明:該類與出版社表之間存在著單向關(guān)聯(lián)的關(guān)系。
5.讀者表類
編號:C一1一Ol
類名:讀者表
職責(zé):存放圖書館的所有讀者的基本信息
屬性:讀者代碼,讀者名,聯(lián)絡(luò)電話
說明:該類類描述了物理借閱者的信息,代表了系統(tǒng)中存儲的物理借閱者的信息,即物理借閱者在系統(tǒng)中的賬戶。同時,讀者表又是圖書借閱表的組成成分之一。
6.圖書借閱表類
編號:D—l—01
類名:圖書借閱表
職責(zé):存放圖書館所能處理的所有圖書的基本信息
屬性:圖書代號,讀者代號,借書日期,還書日期,說明:該類描述了從圖書館借閱圖書的借閱記錄。一個該類的對象對應(yīng)一個借閱者和一本圖書。該類的對象的存在表示借閱者借閱了借閱記錄中記錄的物理圖書。當(dāng)圖書被歸還時,要刪除借閱記錄(對象)。
? 形成系統(tǒng)分析規(guī)約(注意規(guī)約可能會有活動圖、狀態(tài)圖等)
3.系統(tǒng)設(shè)計(jì)
設(shè)計(jì)模型的主要工作: 1).軟件平臺設(shè)計(jì)
軟件平臺是系統(tǒng)開發(fā)和運(yùn)行的環(huán)境。圖書管理系統(tǒng)的開發(fā)和運(yùn)行環(huán)境如下:
· 操作系統(tǒng)——操作系統(tǒng)是計(jì)算機(jī)系統(tǒng)中最重要的系統(tǒng)軟件。圖書管理系統(tǒng)可以運(yùn)行在Windows 95/98/2000/NT/Windows XP等桌面操作系統(tǒng)上。
· 支撐軟件——支撐軟件是協(xié)助人們開發(fā)和維護(hù)軟件的工具和環(huán)境軟件。數(shù)據(jù)庫系統(tǒng)、集成開發(fā)環(huán)境等都屬于支撐型軟件,例如,Delphi、Oracle、Java等。圖書管理系統(tǒng)使用的DBMS是Access 2003,數(shù)據(jù)庫中間件是JDBC。
· CASE平臺——采用CASE開發(fā)環(huán)境可保證系統(tǒng)開發(fā)質(zhì)量,提高開發(fā)效率,保證文檔的一致性。圖書管理系統(tǒng)的分析、設(shè)計(jì)j實(shí)現(xiàn)和部署模型是在Rose 2003建模環(huán)境下創(chuàng)建的,清晰地表達(dá)了在不同的開發(fā)階段的系統(tǒng)模型。2).結(jié)構(gòu)設(shè)計(jì)
結(jié)構(gòu)設(shè)計(jì)是把軟件分解成為多個子系統(tǒng),并確定出由各子系統(tǒng)及其接口構(gòu)成的軟件結(jié)構(gòu)。子系統(tǒng)是對軟件分解的一種中間形式,也是組織和描述軟件的一種方法。由多個子系統(tǒng)構(gòu)成系統(tǒng)軟件,每一個子系統(tǒng)又包括多個用例設(shè)計(jì)、設(shè)計(jì)類和接口。結(jié)構(gòu)設(shè)計(jì)具體要做的工作是將系統(tǒng)劃分成相對獨(dú)立、功能相對完整的子系統(tǒng)(包),將系統(tǒng)模型中的元素劃分到不同的包中,說明在什么地方定義包,各個包之間的依賴性和主要通信機(jī)制。從而得到盡可能簡單和清晰的結(jié)構(gòu),各部分之間的依賴盡可能的少,并盡量減少雙向的依賴關(guān)系。3).詳細(xì)設(shè)計(jì)與界面設(shè)計(jì)
詳細(xì)設(shè)計(jì)是對軟件結(jié)構(gòu)中確定出的各個子系統(tǒng)內(nèi)部的設(shè)計(jì),需要分析和確定每一個子系統(tǒng)中的用例設(shè)計(jì)、設(shè)計(jì)類和接口。詳細(xì)設(shè)計(jì)還要描述每個類的細(xì)節(jié),并用動態(tài)模型描述類的實(shí)例在具體環(huán)境中的行為。
界面設(shè)計(jì)是對人和外部系統(tǒng)與系統(tǒng)之間交互界面的設(shè)計(jì),包括輸入界面、輸出界面和輸入/輸出界面的設(shè)計(jì)。另外,界面設(shè)計(jì)還涉及到人機(jī)交互方式、人機(jī)交互流程、輸入輸出設(shè)備和媒體等內(nèi)容。4).?dāng)?shù)據(jù)庫設(shè)計(jì)
數(shù)據(jù)庫是系統(tǒng)存儲和管理數(shù)據(jù)的主要技術(shù)手段,數(shù)據(jù)庫設(shè)計(jì)的任務(wù)是根據(jù)給定的系統(tǒng)應(yīng)用需求和系統(tǒng)環(huán)境,設(shè)計(jì)出合理的數(shù)據(jù)庫結(jié)構(gòu)。數(shù)據(jù)庫設(shè)計(jì)可分為概念設(shè)計(jì)、邏輯設(shè)計(jì)和物理設(shè)計(jì)3個階段。用UML進(jìn)行數(shù)據(jù)庫設(shè)計(jì)的主要思想,是利用UML的擴(kuò)展機(jī)制定義一些版型,用于表示與數(shù)據(jù)庫相關(guān)的一些概念。Rose 2003提供了對數(shù)據(jù)庫設(shè)計(jì)的支持,所設(shè)計(jì)的模型可以直接生成具體數(shù)據(jù)庫中的表、觸發(fā)器、存儲過程等。
? 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
系統(tǒng)框架視圖
· 用戶界面包(User Interface Package)——用于描述整個用戶界面使用的類,這些類提供的操作允許用戶瀏覽系統(tǒng)中的數(shù)據(jù),允許用戶輸入新數(shù)據(jù)。用戶界面類基于Java AWT包設(shè)計(jì),AWT包是Java語言中用于編寫用戶界面應(yīng)用程序的一個標(biāo)準(zhǔn)庫。用戶界面包與業(yè)務(wù)模型包相互協(xié)作,調(diào)用業(yè)務(wù)模型包中類實(shí)例的方法對圖書信息進(jìn)行檢索和插入操作。
。業(yè)務(wù)模型包(Business Model Package)——包含分析階段主要的類(借閱圖書類、歸還圖書類、圖書類、讀者類、出版社類)。在設(shè)計(jì)階段將進(jìn)一步細(xì)化這些類,從而完整地定義它們的操作,并為它們增加永久性存儲支持。業(yè)務(wù)模型包與數(shù)據(jù)庫包相互協(xié)作,訪問數(shù)據(jù)庫中的數(shù)據(jù)?!?數(shù)據(jù)庫包(Database Package)——為業(yè)務(wù)模型包中的類提供數(shù)據(jù)存取服務(wù),以便這些類能夠?qū)崿F(xiàn)數(shù)據(jù)的永久性存儲功能。
。組件包(Utility Package)——包含一些可以被系統(tǒng)中其他包所使用的服務(wù)。
? 界面設(shè)計(jì)
? 詳細(xì)設(shè)計(jì)
圖書信息管理詳細(xì)設(shè)計(jì):
1.設(shè)計(jì)類圖
“圖書信息管理’’是一個用例,在“圖書信息管理”用例所提取的3個概念類的基礎(chǔ)上,可以確定該用例有3個設(shè)計(jì)類:登錄圖書信息(LoginBook)、修改圖書信息(UpdateBook)、檢索圖書信息(SelectRook)。如圖13.2所示為“圖書信息管理”用例的設(shè)計(jì)類圖。
“圖書信息管理”用例設(shè)計(jì)類圖
·
BpFrame類——屬于用戶界面包,定義系統(tǒng)檢索與修改界面的框架。
·
BpSelectFrame類——屬于用戶界面包,繼承BpFrame類,定義檢索界面框架。
·
BpUpdateFrame類——屬于用戶界面包,繼承BpSelectFrame類,定義系統(tǒng)修改界面框架。
·
SelectBook類——屬于用戶界面包,繼承BpSelectFrame類,與DbChoice類相關(guān)聯(lián),顯示圖書信息檢索界面。
·
LoginBook類——屬于業(yè)務(wù)模型包,繼承BpUpdateFrame類,與DbChoice類相關(guān)聯(lián),實(shí)現(xiàn)圖書信息登錄功能。
·
UpdateBook類——屬于業(yè)務(wù)模型包,繼承BpUpdateFrame類,與DbChoice類相關(guān)聯(lián),實(shí)現(xiàn)圖書信息修改功能。
·
DbChoice類——屬于組件包,定義了用于數(shù)據(jù)庫操作的實(shí)例變量和實(shí)例方法。
2.順序圖
為實(shí)現(xiàn)用例的功能,每個用例要實(shí)現(xiàn)的功能要通過用例中各個類的對象的操作的相互協(xié)作完成,這就要在順序圖或協(xié)作圖中反映各個對象之間的消息調(diào)用過程。如圖13.3所示為添加的圖書ID不重復(fù)的情況下“登錄圖書信息”用例的順序圖。
“登錄圖書信息”順序圖
3.屬性和方法設(shè)計(jì)
用例設(shè)計(jì)中識別出了大量的設(shè)計(jì)類,接下來要詳細(xì)地設(shè)計(jì)所識別出來的每一個設(shè)計(jì)類,即設(shè)計(jì)類的屬性和方法。屬性設(shè)計(jì)應(yīng)該注意的問題是:一要補(bǔ)充屬性分析時沒有考慮到的屬性,確定屬性的全部內(nèi)容,其中包括屬性名、可視性、范圍、類型、初始值;二要盡量采用系統(tǒng)采用的程序設(shè)計(jì)語言的語法規(guī)范描述屬性。
方法設(shè)計(jì)包括數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)、算法設(shè)計(jì)和流程設(shè)計(jì)。方法設(shè)計(jì)要注意的是:一要立足于所采用的程序設(shè)計(jì)語言;二所選用的程序設(shè)計(jì)語言應(yīng)該能夠提供豐富的數(shù)據(jù)結(jié)構(gòu);三要根據(jù)所實(shí)現(xiàn)的功能確定算法設(shè)計(jì);四是可以用程序流程圖或活動圖來描述流程設(shè)計(jì)的結(jié)果。
如圖所示為添加了屬性和方法“圖書信息管理”用例的設(shè)計(jì)類圖。
添加屬性和方法后的“圖書信息管理”類圖
LoginBook類的屬性和方法設(shè)計(jì)如下:
·
sql屬性——定義執(zhí)行插人操作的SQL命令字符串。
·
chpublish_id屬性——定義出版社ID。
·
LoginBook()方法——類的構(gòu)造方法。①調(diào)用DbChoice類的對象實(shí)例,以實(shí)現(xiàn)加載JDBC驅(qū)動程序,創(chuàng)建數(shù)據(jù)庫連接等功能;②提供添加圖書信息界面。
·
cheekInsea()方法——①檢查各輸入項(xiàng)的輸人格式是否正確;②檢查圖書ID是否重復(fù)。
·
makelnsertStmt()方法——定義執(zhí)行插人操作的SQL命令字符串。
·
afterlnsert()方法——清空登錄圖書界面的各輸入項(xiàng)。
SelectBook類的屬性和方法設(shè)計(jì)如下:
·
sql屬性——定義執(zhí)行插入操作的SQL命令字符串。
·
chpublish_id屬性——定義出版社ID。
·
SelectBook()方法——類的構(gòu)造方法。①調(diào)用DbChoice類的對象實(shí)例,以實(shí)現(xiàn)加載JDBC驅(qū)動程序,創(chuàng)建數(shù)據(jù)庫連接等功能;②提供檢索圖書界面。
·
checkSelect()方法——檢查是否輸入要檢索的圖書ID。
·
makeSelectStmt()方法——定義執(zhí)行檢索操作的SQL命令字符串。
·
setSelectedData()方法——顯示檢索圖書的結(jié)果。
·
clear()方法——清空圖書檢索界面各檢索項(xiàng)。
UpdateBook類的屬性和方法設(shè)計(jì)如下:
·
sql屬性——定義執(zhí)行插入操作的SQL命令字符串。
·
chpublish_id屬性——定義出版社ID。
·
UpdateBook()方法——類的構(gòu)造方法。①調(diào)用DbChoice類的對象實(shí)例,以實(shí)現(xiàn)加載JDBC驅(qū)動程序,創(chuàng)建數(shù)據(jù)庫連接等功能;②提供檢索圖書界面;③提供修改圖書功能。
·
checkSelect()方法——檢查是否輸人要檢索的圖書ID。
·
makeSelectStmt()方法——定義執(zhí)行檢索操作的SQL命令字符串。
·
setSelectedData()方法——顯示檢索圖書的結(jié)果。
·
clear()方法——清空圖書修改界面各修改項(xiàng)。
·
checkUpdate()方法——檢查各修改項(xiàng)的修改格式是否正確。
·
makeUpdateStmt()方法——定義執(zhí)行修改操作的SQL命令字符串。
讀者信息管理詳細(xì)設(shè)計(jì): 1.設(shè)計(jì)類圖
“讀者信息管理”是一個用例,在“讀者信息管理”用例確定了3個概念類:添加讀者信息、修改讀者信息、檢索讀者信息。但是,該用例的功能相對比較簡單??梢杂?個設(shè)計(jì)類Borrow實(shí)現(xiàn)這3個概念類的功能。如圖所示為“讀者信息管理”用例的設(shè)計(jì)類圖。
圖13.5 “讀者信息管理”用例設(shè)計(jì)類圖
· Borow類——屬于業(yè)務(wù)模型包,繼承BpupdateFrame類,實(shí)現(xiàn)讀者信息添加修改和檢索功能。
2.順序圖
如圖13.6所示為添加的讀者ID不重復(fù)的情況下“添加讀者信息”用例的順序圖。
“添加讀者信息”順序圖
通過分析如圖所示的順序圖,可以得到下圖所示為“讀者信息管理”用例的設(shè)計(jì)類圖。
圖優(yōu)化后的“讀者信息管理”用例設(shè)計(jì)類圖
3.屬性和方法設(shè)計(jì)
如下圖所示為添加了屬性和方法“讀者信息管理”用例的設(shè)計(jì)類圖。
添加屬性和方法后的“讀者信息管理”類圖
Borrow類的屬性和方法設(shè)計(jì)如下:
· sql屬性——定義執(zhí)行插入操作的SQL命令字符串。
· Borrow()方法——類的構(gòu)造方法。①調(diào)用DbChoice類的對象實(shí)例,以實(shí)現(xiàn)加載JDBC驅(qū)動程序,創(chuàng)建數(shù)據(jù)庫連接等功能;②提供添加、修改和檢索讀者信
息界面。
· checkSelect()方法——檢查是否輸入要檢索的讀者ID。
· makeSeleetStmt()方法——定義執(zhí)行檢索操作的SQL命令字符串。
· setSelectedData()方法——顯示檢索讀者的結(jié)果。
· ehecklnsert()方法——檢查是否可執(zhí)行插入操作。
· makeInsertStmt()方法——定義執(zhí)行插入操作的SQL命令字符串。
· afterlnsert()方法——清空各輸入項(xiàng)。
· checkUpdate()方法——檢查是否可執(zhí)行修改操作。
· makeUpdateStmt()方法——定義執(zhí)行修改操作的SQL命令字符串。
· checkData()方法——檢查各輸入項(xiàng)的輸人格式是否正確。
· clear()方法——清空各文本框。
出版社信息管理詳細(xì)設(shè)計(jì): 1.設(shè)計(jì)類圖
“出版社信息管理”是一個用例,可以用1個設(shè)計(jì)類Publish實(shí)現(xiàn)添加出版社信息、修改出版社信息、檢索出版社信息3個概念類。如圖13.9所示為“出版社信息管理”用例的設(shè)計(jì)類圖。
圖13.9 “出版社信息管理”用例設(shè)計(jì)類圖
· Publish類——屬于業(yè)務(wù)模型包,繼承BpUpdateFrame類,實(shí)現(xiàn)出版社信息添加、修改和檢索功能。
2.順序圖
如圖13.10所示為添加的出版社ID不重復(fù)情況下“添加出版社信息”用例的順序圖。
圖13.10 “添加出版社信息”順序圖
3.屬性和方法設(shè)計(jì)
如圖13.1l所示為添加了屬性和方法“出版社信息管理”用例的設(shè)計(jì)類圖。
圖13.11 添加屬性和方法后的“出版社信息管理”類圖
Publish類的屬性和方法設(shè)計(jì)如下:
· sql屬性——定義執(zhí)行插入操作的SQL命令字符串。
· Publish()方法——類的構(gòu)造方法。①調(diào)用DbChoice類的對象實(shí)例,以實(shí)現(xiàn)加載JDBC驅(qū)動程序,創(chuàng)建數(shù)據(jù)庫連接等功能;②提供添加、修改和檢索出版社信息界面。
· checkSelect()方法——檢查是否輸入要檢索的出版社ID。
· makeSelectStmt()方法——定義執(zhí)行檢索操作的SQL命令字符串。· setSelectedData()方法——顯示檢索出版社的結(jié)果?!?checklnsert()方法——檢查是否可執(zhí)行插入操作。
· makeInsertStmt()方法——定義執(zhí)行插入操作的SQL命令字符串。· afterInsert()方法——清空各輸人項(xiàng)。
· checkUpdate()方法——檢查是否可執(zhí)行修改操作。
· makeUpdateStmt()方法——定義執(zhí)行修改操作的SQL命令字符串?!?checkData()方法——檢查各輸入項(xiàng)的輸人格式是否正確。· clear()方法——清空各文本框。
圖書借還信息管理詳細(xì)設(shè)計(jì): 1.設(shè)計(jì)類圖
“圖書借還信息管理”是一個用例,在“圖書信息管理”用例所提取的4個概念類的基礎(chǔ)上,可以確定該用例有4個設(shè)計(jì)類:借閱圖書(BorrowBook)、歸還圖書(RetumBook)、借出圖書一覽表(BorrowBookList)和未按期歸還圖書一覽表(OverdueList)。如圖所示為“圖書借還信息管理”用例的設(shè)計(jì)類圖。
圖“圖書借還信息管理”用例設(shè)計(jì)類圖
· BorrowBook類——屬于業(yè)務(wù)模型包,繼承BpUpdateFrame類,與DbChoice類相關(guān)聯(lián),實(shí)現(xiàn)圖書借閱功能。
· ReturnBook類——屬于業(yè)務(wù)模型包,繼承BpUpdateFrame類,與DbChoice類相關(guān)聯(lián),實(shí)現(xiàn)圖書歸還功能。
· BorrowBookList類——屬于業(yè)務(wù)模型包,繼承BpSelectFrame類,與DbChoice類相關(guān)聯(lián),顯示借出圖書清單一覽表。
· OverdueList類——屬于業(yè)務(wù)模型包,繼承BpSelectFrame類,與DbChoice類相關(guān)聯(lián),顯示未按期歸還圖書與讀者清單一覽表。
2.順序圖
如圖所示為讀者ID與圖書ID都存在情況下的“借閱圖書”用例的順序圖。
“登錄圖書信息”順序圖
3.屬性和方法設(shè)計(jì)
如圖所示為添加了屬性和方法“圖書借還信息管理”用例的設(shè)計(jì)類圖。
添加屬性和方法后的“圖書借還信息管理”類圖
BorrowBook類的屬性和方法設(shè)計(jì)如下:
· sql屬性——定義執(zhí)行插入操作的SQL命令字符串。
· BorrowBook()方法——類的構(gòu)造方法。①調(diào)用DbChoice類的對象實(shí)例,以實(shí)現(xiàn)加載JDBC驅(qū)動程序,創(chuàng)建數(shù)據(jù)庫連接等功能;②提供添加圖書信息界面?!?checklnsert()方法——①檢查各輸入項(xiàng)的輸入格式是否正確;②檢查借閱圖書ID是否存在。
· makeInsertStmt()方法——定義執(zhí)行插入操作的SQL命令字符串。
· afterInsert()方法——清空借閱圖書界面的各輸入項(xiàng)。
· checkSelect()方法——檢查是否輸入讀者ID和圖書ID。
· makeSelectStmt()方法——顯示檢索結(jié)果。
· checkDelete()方法——檢查是否可執(zhí)行刪除操作。
· makeDeleteStmt()方法——定義執(zhí)行刪除操作的SQL命令字符串。
· afterDelete()方法——清空刪除操作后的各輸入項(xiàng)。
· clear()方法——清空所有的文本框。ReturnBook類的屬性和方法設(shè)計(jì)如下:
· sql屬性——定義執(zhí)行插人操作的SQL命令字符串。
· RetumBook()方法——類的構(gòu)造方法。①調(diào)用DbChoice類的對象實(shí)例,以實(shí)現(xiàn)加載JDBC驅(qū)動程序,創(chuàng)建數(shù)據(jù)庫連接等功能;②提供圖書歸還界面。
· checkUpdate()方法——檢查各修改項(xiàng)的修改格式是否正確。
· makeUpdateStmt()方法——定義執(zhí)行修改操作的SQL命令字符串?!?afterUpdate()方法——清空所有的文本框。BorrowBookList類的屬性和方法設(shè)計(jì)如下:
· sql屬性——定義執(zhí)行插入操作的SQL命令字符串。
· BorrowBookList()方法——類的構(gòu)造方法。①調(diào)用DbChoice類的對象實(shí)例,以實(shí)現(xiàn)加載JDBC驅(qū)動程序,創(chuàng)建數(shù)據(jù)庫連接等功能;②提供實(shí)現(xiàn)“借出圖書一覽表”功能的界面。
· makeSelectStmt()方法——定義執(zhí)行檢索操作的SQL命令字符串。
· setSelectedData()方法——顯示檢索結(jié)果。OverdueList類的屬性和方法設(shè)計(jì)如下:
· sql屬性——定義執(zhí)行插入操作的SQL命令字符串。
· xOverdueList()方法——類的構(gòu)造方法。①調(diào)用DbChoice類的對象實(shí)例,以實(shí)現(xiàn)加載JDBC驅(qū)動程序,創(chuàng)建數(shù)據(jù)庫連接等功能;②提供實(shí)現(xiàn)“未按期歸還圖書一覽表”功能的界面。
· makeSelectStmt()方法——定義執(zhí)行檢索操作的SQL命令字符串。
· setSelectedData()方法——顯示檢索結(jié)果。
組件包設(shè)計(jì):
組件包包含被所有其他包使用的通用組件,圖書管理系統(tǒng)的組件包由Const、DbChoice、BpUtil三個類組成,這三個類定義了系統(tǒng)所有其他類所使用的公共常量與公共方法。另外,IconCanvas(加載系統(tǒng)界面所使用的圖標(biāo))、MsgDialog(信息顯示對話框)、SQLExceptionDialog(顯示數(shù)據(jù)庫異常信息對話框)3個類也為系統(tǒng)所有其他類所公共使用。在此與組件包中的類一起進(jìn)行說明。1.Const類
Const類定義了系統(tǒng)所使用的公共名稱等常量,其類圖如圖所示。
Const類的類圖
2.BpUtil類
BpUtil類定義了系統(tǒng)使用的公共方法,其類圖如圖所示。
BpUtil類的類圖
BpUtil類的方法設(shè)計(jì)如下:
· repeateString()方法——返回指定個數(shù)的字符串對象。
· varchar2text()方法——返回按照指定長度調(diào)整的字符串對象。
· setComp()方法——在組件上按照CridBagConstraints布局配置Panel?!?checkWaming()方法——檢查數(shù)據(jù)庫連接操作是否出現(xiàn)異常?!?isNumeric()方法——驗(yàn)證字符串能否轉(zhuǎn)換為數(shù)值。
· getToday()方法——以YYYY/MM/DD的格式返回今日的日期。
· getToday()方法——返回以今日為基點(diǎn)的指定為YYYY/MM/DD格式的日期。· isYMD()方法——驗(yàn)證能否識別YYYY/MM/DD格式的字符串?!?GB2312Unicode()方法——GB2312轉(zhuǎn)換為Unicode?!?UnicodeGB2312()方法——Unicode轉(zhuǎn)換為GB2312。
· getRowCount()方法——求數(shù)據(jù)表中滿足條件的記錄數(shù)。
· convYMD()方法——Java.util.Date類型數(shù)據(jù)轉(zhuǎn)換為YYYY/MM/DD格式。
3.DbChoice類
DbChoice類定義了用于數(shù)據(jù)庫操作的實(shí)例變量與實(shí)例方法,其類圖如圖所 示。
DbChoice類的類圖
DbChoice類的屬性和方法設(shè)計(jì)如下:
· con屬性——定義用于數(shù)據(jù)庫連接的實(shí)例變量?!?query屬性——定義用于SELECT語句的實(shí)例變量。· displayCol屬性——定義用于檢索結(jié)果的列數(shù)。
· valueCol屬性——定義方法getSelectedVal()返回值的列數(shù)。
· vItem屬性——定義用于保存方法getSelectedVal()返回值的Vector · DbChoice()方法——構(gòu)造方法,用于初始化實(shí)例變量?!?setQueryData()方法——執(zhí)行檢索操作。· getSelectedVal()方法——返回檢索結(jié)果。· setValueCol()方法——設(shè)置列的值?!?getValueCol()方法——返回列的值。
· setDisplayCol()方法——設(shè)置顯示列的值?!?getDisplayCol()方法——返回顯示列的值。
· setDisplayhem()方法——設(shè)置顯示項(xiàng)的列的值。4.IconCanvas類
IconCanvas類用于完成加載系統(tǒng)界面所使用圖標(biāo)的功能,其類圖如圖所示。
IconCanvas類的類圖
IconCanvas類的方法設(shè)計(jì)如下:
· IconCanvas()方法——構(gòu)造方法,用于完成加載圖像文件的功能?!?paint()方法——用于完成顯示圖像文件的功能。5.MsgDialog類
MsgDialog類用于完成顯示系統(tǒng)界面所使用的信息對話框功能,其類圖如圖13.19所 示。
MsgDialog類的類圖
MsgDialog類的屬性和方法設(shè)計(jì)如下:
· MsgDialog()方法——構(gòu)造方法,用于生成信息顯示區(qū)域,定義信息對話框的標(biāo)題、布局管理器等功能。
· actionPerformed()方法——用于處理發(fā)生的事件。
6.SQLExceptionDialog類
當(dāng)發(fā)生數(shù)據(jù)庫異常時,SQLExceptionDialog類定義了用于顯示數(shù)據(jù)庫異常信息對話框,其類圖如圖所示。
SQLExceptionDialog類的類圖
SQLExceptionDialog類的屬性和方法設(shè)計(jì)如下:
· SQLExceptionDialog()方法——構(gòu)造方法,用于定義發(fā)生的SQL異常?!?actionPerformed()方法——用于處理發(fā)生的事件。· setMessage()、方法——用于顯示發(fā)生的異常信息。系統(tǒng)管理詳細(xì)設(shè)計(jì):
系統(tǒng)管理由Bookplate和LoginDialog兩個類組成,Bookplate類用于顯示系統(tǒng)主功能界面,LoginDialog類用于顯示用戶登錄對話框界面。Bookplate類與LoginDialog類之間有單向關(guān)聯(lián)關(guān)系,即Bookplate類中定義的實(shí)例變量dialog可以調(diào)用LoginDialog類的構(gòu)造函數(shù),以實(shí)現(xiàn)系統(tǒng)登錄界面的顯示,描述兩者之間關(guān)系的類圖如圖所示。
“系統(tǒng)管理”用例設(shè)計(jì)類圖
Bookplate類的方法設(shè)計(jì)如下:
· main()方法——系統(tǒng)執(zhí)行的入口點(diǎn),用于顯示系統(tǒng)主功能界面。
· Bookplate()——構(gòu)造方法,用于設(shè)置系統(tǒng)框架(Frame)、標(biāo)題、菜單、按鈕布局、標(biāo)簽等系統(tǒng)組件。
· aetionPerformed()——當(dāng)用鼠標(biāo)左鍵點(diǎn)擊各功能按鈕時,分別調(diào)用各個子功能系統(tǒng),同時實(shí)現(xiàn)生成、顯示和隱藏對應(yīng)的框架的功能。LoginDialog類的方法設(shè)計(jì)如下:
· LoginDialog()方法——構(gòu)造方法,用于設(shè)置用戶登錄對話框界面的標(biāo)題、顯示信息區(qū)域、設(shè)置標(biāo)簽和文本域、生成按鈕等功能。
· actionPerformed()——當(dāng)用鼠標(biāo)左鍵點(diǎn)擊功能按鈕時,處理所觸發(fā)的事件。· getStatus()——返回按鈕的狀態(tài)值。· getUserID()——返回用戶ID?!?getPassword()——返回用戶口令。
? 數(shù)據(jù)庫設(shè)計(jì)(表略)
? 完成設(shè)計(jì)規(guī)約
第三篇:火車購票系統(tǒng)UML類圖 時序圖 狀態(tài)圖 協(xié)作圖 活動圖 對象.
《UML 面向?qū)ο蠓治觥氛n程 實(shí)踐項(xiàng)目報告
項(xiàng)目名稱: 網(wǎng)上訂購火車票系統(tǒng)
項(xiàng)目組成員: 學(xué) 號: 班 級: 指導(dǎo) 教師: 2008年 11 月 10 日 目 錄 需求分析....................................................................................1 1.1 需求概述............................................................................1 1.2 需求分析............................................................................2 1.3 需求模型(用例圖)........................................................6 2 靜態(tài)模型....................................................................................7 2.1 類圖....................................................................................7 2.2 對象圖................................................................................9 2.3 包圖..................................................................................11 3 動態(tài)模型..................................................................................12 3.1 時序圖..............................................................................12 3.2 狀態(tài)圖..............................................................................15 3.3 協(xié)作圖..............................................................................16 3.4 活動圖..............................................................................17 4 項(xiàng)目組成員分工說明..............................................................18 5 總結(jié)..........................................................................................19 6 參考資料..................................................................................20 1 需求分析 1.1 需求概述
線上預(yù)訂火車票系統(tǒng)是一款功能強(qiáng)大、操作簡便、易維護(hù)的、具有良好人機(jī)交互界面的線上訂票系統(tǒng),它包括用戶管理模塊、系統(tǒng)參數(shù)設(shè)置模塊、票務(wù)信息模塊(提供票價、列車的實(shí)時信息)、訂票管理模塊(提供訂票和退訂功能)、實(shí)時信息提示模塊(提供車況、路況、列車晚點(diǎn)等實(shí)時信息)、數(shù)據(jù)管理模塊(提供數(shù)據(jù)備份、數(shù)據(jù)操作功能)。實(shí)現(xiàn)火車票線上預(yù)定的自動化的計(jì)算機(jī)系統(tǒng),為旅客提供準(zhǔn)確、精細(xì)、迅速的火車票銷售信息和方便、簡單的訂票功能。
線上預(yù)訂火車票系統(tǒng)主要是對于訂票信息的統(tǒng)一管理,滿足了中小型線上訂票網(wǎng)站對于用戶的管理,訂票信息的收集和處理方面的要求。用現(xiàn)代化的方式取代以前的傳統(tǒng)模式,更有利于信息的流通,資源的宏觀管理。具有體積小,代碼簡潔,易維護(hù)、易修改 的優(yōu)點(diǎn)。
1.2 需求分析 用戶管理模塊
用戶管理模塊包括如下幾個部分。
(1)添加用戶信息:管理員可以對用戶信息進(jìn)行添加操作。(2)刪除用戶信息:管理員可以對已有用戶信息進(jìn)行刪除操作。
(3)查看用戶信息權(quán)限:每個用戶都具有一定的權(quán)限,管理員可以查看用戶的管理權(quán)限。(4)修改用戶信息權(quán)限:管理員可以修改用戶的管理權(quán)限。(5)刪除管理權(quán)限:管理員在權(quán)限管理中可以刪除管理權(quán)限。(6)添加管理權(quán)限:管理員在權(quán)限管理中可以添加管理權(quán)限。
系統(tǒng)參數(shù)設(shè)置模塊
系統(tǒng)參數(shù)設(shè)置模塊有如下幾個部分。
(1)用戶信息:管理員可以修改用戶信息并保存。(2)訂票信息:對訂票信息進(jìn)行添加、刪除操作。(3)退訂信息:對退訂信息進(jìn)行添加、刪除操作。(4)旅客訂票記錄:對旅客訂票記錄進(jìn)行添加、刪除操作。
(5)其他信息:對其他信息進(jìn)行編輯、刪除操作。在編輯時可以修改附件存放路徑和備份文
件存放路徑。
票務(wù)信息模塊
票務(wù)信息模塊包括如下幾個部分。
(1)車次信息:對車次信息進(jìn)行添加、刪除操作。(2)列車時間信息:對列車時間信息進(jìn)行添加、刪除操作。(3)座位信息:對座位信息進(jìn)行添加、刪除操作。(4)價格信息:對價格信息進(jìn)行添加、刪除操作。(5)車站信息:對車站信息進(jìn)行添加、刪除操作。
訂票管理模塊
訂票管理模塊包括如下幾個部分。(1)用戶注冊:注冊新用戶。(2)用戶登錄:已注冊用戶登錄。(3)列車信息:瀏覽可預(yù)定車輛信息。(4)車票預(yù)訂:預(yù)定車票。
實(shí)時信息管理模塊
實(shí)時信息管理模塊包括如下幾個部分。
(1)實(shí)時信息查看:在窗口現(xiàn)在最新實(shí)時信息。
(2)實(shí)時信息更新:對于最新路況、車況信息進(jìn)行更新。改:對于最新路況、車況信息進(jìn)行修改。
3)實(shí)時信息修(數(shù)據(jù)管理模塊 數(shù)據(jù)管理模塊包括:
(1)數(shù)據(jù)查看:對所有數(shù)據(jù)查看。數(shù)據(jù)恢復(fù):恢復(fù)受損數(shù)據(jù)。
1.3 需求模型(用例圖)
(2)數(shù)據(jù)備份:備份所有數(shù)據(jù)。3)
((from Logical View 修改票價
(from Logical View
客戶先通過網(wǎng)站系統(tǒng)查詢各種情況(票的價格,車的情況,以及一些鐵路狀況),再通過系統(tǒng)數(shù)據(jù)庫給與的實(shí)時信息提示去預(yù)定想要的火車票,完成訂票的過程,客戶也可以通過網(wǎng)站系統(tǒng)對自己已經(jīng)訂購的票進(jìn)行退訂手續(xù)。
管理員可以通過系統(tǒng)對客戶進(jìn)行管理,查看客戶信息,修改客戶信息,添加客戶信息,以及刪除客戶信息等等,管理員也可以去修改票務(wù)信息,修改變動后的時間以及車票價格等等。靜態(tài)模型 2.1 類圖
旅客(姓名、性別、需求信息、有效證件)
列車班次(發(fā)車時間、起點(diǎn)、終點(diǎn)、乘坐人數(shù)、價格)火車站(名稱、所在地)
訂票(票號、班次號、旅客號、票價)管理員(密碼、姓名)旅客表
班次表
訂火車票表 管理員表
火車站表
2.2 對象圖
1.管理員管理顧客信息,管理車票信息。9
2.3 包圖
1.創(chuàng)建管理員包,內(nèi)有管理員類。2.創(chuàng)建顧客包,內(nèi)有顧客類。3.創(chuàng)建訂票包,內(nèi)有訂票類。
4.創(chuàng)建車站包,內(nèi)有車站類,主要是車站信息。5.創(chuàng)建火車票包,內(nèi)有車票類,主要為火車票信息。3 動態(tài)模型 3.1 時序圖 1.客戶首先要使用一臺已經(jīng)聯(lián)網(wǎng)的電腦 2.在網(wǎng)站上搜索票務(wù)信息 3.檢索票務(wù)信息數(shù)據(jù)庫 4.電腦將檢索的信息傳遞給客戶 5.客戶經(jīng)查看信息后進(jìn)行訂票 6.客戶輸入自己的銀行賬號 7.系統(tǒng)驗(yàn)證賬號正確性 8.提交信息并進(jìn)行繳費(fèi) 9.系統(tǒng)給客戶票務(wù) 1.管理員登陸到系統(tǒng)。
2.管理員擁有權(quán)限修改票務(wù)信息、客戶信息、車況信息。3.用戶登陸的網(wǎng)站。
4.用戶可以查看票務(wù)信息、車況信息。5.用戶預(yù)定火車票
3.2 狀態(tài)圖
1.進(jìn)入數(shù)據(jù)庫系統(tǒng)頁面 2.進(jìn)入預(yù)定車票界面 3.預(yù)定成功后退出 4.進(jìn)入退訂車票界面 5.退訂成功后退出
6.不能成功預(yù)、退車票則退出 3.3 協(xié)作圖
1.客戶首先要連接上網(wǎng)絡(luò)的電腦
2.客戶進(jìn)行網(wǎng)站搜索,檢索有關(guān)的票務(wù)信息 3.電腦將顯示的票務(wù)信息給予客戶 4.客戶再通過查看信息后選擇買票 5.客戶輸入自己的賬號 6.驗(yàn)證帳戶并提交扣錢
7.電腦將票的代碼顯示給客戶,憑證取票
3.4 活動圖 項(xiàng)目組成員分工說明
需求分析階段是軟件開發(fā)的最核心的部分,所以受到我們組成員的高度重視,一心想要把分析做得更好,通過網(wǎng)上查閱資料,去圖書館借閱有關(guān)的書籍以及課本上的知識,再經(jīng)過我們組成員三個人之間的默契配合,共同完成了軟件的核心部分-----需求分析。
完成了我們所要做的項(xiàng)目的需求分析之后,下面的課程設(shè)計(jì)可根據(jù)需求分析來進(jìn)行,我們組成員之間開始了進(jìn)行分工合作,靜態(tài)模型中的三類圖,個人選擇自己最擅長的部分開始分工畫圖。類圖模塊由組成員倪巧完成,對象圖由組成員陳磊完成,包圖則由成員時圣云完成。
動態(tài)模型的四部分圖,我們依然按照分工合作的方式去完成的。時序圖由成員倪巧、陳磊共同完成,狀態(tài)圖由成員時圣云完成,協(xié)作圖由成員倪巧完成,活動圖則由成員陳磊、時圣云合作完成的。分工明確,合作良好。
最后的總結(jié)由成員倪巧完成,再做了最后的文檔的整理??偨Y(jié) 課程設(shè)計(jì)的體會 課程設(shè)計(jì)的體會 經(jīng)過一個星期的上機(jī)實(shí)踐學(xué)習(xí),使我對 UML 有了更進(jìn)一步的認(rèn)識和了解,要想 學(xué)好它要重在實(shí)踐,要通過不斷的上機(jī)操作才能更好地學(xué)習(xí)它,通過實(shí)踐,我也發(fā) 現(xiàn)我的好多不足之處,最主要是自己在 UML 圖形正確使用上不夠熟悉,通過實(shí)踐,使我在這個方面的認(rèn)識有所提高。其次,經(jīng)過查找資料,調(diào)查研究,獲取需求以及在這些基礎(chǔ)上做出的系統(tǒng)分析,我做出了這個“火車票銷售管理系統(tǒng)”說明書??偟膩碚f,這個系統(tǒng)的設(shè)計(jì)考慮了 大部分要考慮的因素,一些影響不大的因素就沒有考慮再內(nèi),系統(tǒng)的需求分析中占 相當(dāng)一部分比例的用例規(guī)格說明采用表格的方式,直觀,便于理解,不過需求分析 在整體的格式多樣性上有所欠缺,這在以后的設(shè)計(jì)中要吸取教訓(xùn)。通過這次的課程 設(shè)計(jì),我不但學(xué)到了很多東西,也把原來學(xué)的東西理解的更透徹了,特別是把原來 學(xué)的不同科目的東西結(jié)合起來了,收獲很大。通過實(shí)踐的學(xué)習(xí),我認(rèn)到學(xué)好計(jì)算機(jī)要重視實(shí)踐操作,不僅僅是學(xué)習(xí)UML 語言,還是其它的語言,以及其它的計(jì)算機(jī)方面的知識都要重在實(shí)踐,所以后在學(xué)習(xí)過程 中,我會更加注視實(shí)踐操作,使自己更好地學(xué)好計(jì)算機(jī)。沒有實(shí)踐,學(xué)習(xí)就是無源之水,無本之木。以上就是我在進(jìn)行課程設(shè)計(jì)實(shí)訓(xùn)的 心得和感受。19 6 參考資料 [1] 李大友,陳明等 [2] 鄭莉, 董淵等 [3] 吳建,汪杰等 版社 [4] 《實(shí)用軟件工程基礎(chǔ)》 《C++語言程序設(shè)計(jì)》 清華大學(xué)出版社 清華大學(xué)出版社 人民郵電出 《UML 基礎(chǔ)與 Rose 建模案例》 《軟件需求》 Soren Lauesen 著 電子工業(yè)出版社 20
第四篇:基于UML的圖書管理系統(tǒng)的分析與設(shè)計(jì)
基于UML的圖書管理系統(tǒng)的需求分析與設(shè)計(jì)
摘要:本文對面向?qū)ο蟮母拍?、UML產(chǎn)生的背景及其基本內(nèi)容進(jìn)行了闡述,在對圖書館圖書管理系統(tǒng)進(jìn)行功能描述和需求分析的基礎(chǔ)上,結(jié)合軟件工程和面向?qū)ο笮枨蠓治?,設(shè)計(jì)了基于UML的用例圖、包圖和順序圖,狀態(tài)圖等語言機(jī)制的圖書館圖書管理系統(tǒng)模型。關(guān)鍵詞: UML;建模語言;面向?qū)ο?;需求分析;圖書管理系統(tǒng) 1關(guān)于面向?qū)ο?/p>
面向?qū)ο笫且环N的程序設(shè)計(jì)方法,或者說它是一種程序設(shè)計(jì)類型,其基本思想是使用對象,類,繼承,封裝,消息等基本概念來進(jìn)行程序設(shè)計(jì)。它是從現(xiàn)實(shí)世界中客觀存在的事物(即對象)出發(fā)來構(gòu)造軟件系統(tǒng),并在系統(tǒng)構(gòu)造中盡可能運(yùn)用人類的自然思維方式,強(qiáng)調(diào)直接以問題域(現(xiàn)實(shí)世界)中的事物為中心來思考問題,認(rèn)識問題,并根據(jù)這些事物的本質(zhì)特點(diǎn),把它們抽象地表示為系統(tǒng)中的對象,作為系統(tǒng)的基本構(gòu)成單位(而不是用一些與現(xiàn)實(shí)世界中的事物相關(guān)比較遠(yuǎn),并且沒有對應(yīng)關(guān)系的其它概念來構(gòu)造系統(tǒng))。這可以使系統(tǒng)直接地映射問題域,保持問題域中事物及其相互關(guān)系的本來面貌。它可以有不同層次的理解:
(1)從世界觀的角度可以認(rèn)為:面向?qū)ο蟮幕菊軐W(xué)是認(rèn)為世界是由各種各樣具有自己的運(yùn)動規(guī)律和內(nèi)部狀態(tài)的對象所組成的;不同對象之間的相互作用和通訊構(gòu)成了完整的現(xiàn)實(shí)世界。因此,人們應(yīng)當(dāng)按照現(xiàn)實(shí)世界這個本來面貌來理解世界,直接通過對象及其相互關(guān)系來反映世界。這樣建立起來的系統(tǒng)才能符合現(xiàn)實(shí)世界的本來面目。
(2)從方法學(xué)的角度可以認(rèn)為:面向?qū)ο蟮姆椒ㄊ敲嫦驅(qū)ο蟮氖澜缬^在開發(fā)方法中的直接運(yùn)用。它強(qiáng)調(diào)系統(tǒng)的結(jié)構(gòu)應(yīng)該直接與現(xiàn)實(shí)世界的結(jié)構(gòu)相對應(yīng),應(yīng)該圍繞現(xiàn)實(shí)世界中的對象來構(gòu)造系統(tǒng),而不是圍繞功能來構(gòu)造系統(tǒng)。
(3)從程序設(shè)計(jì)的角度來看,面向?qū)ο蟮某绦蛟O(shè)計(jì)語言必須有描述對象及其相互之間關(guān)系的語言成分。這些程序設(shè)計(jì)語言可以歸納為以下幾類:系統(tǒng)中一切皆為對象;對象是屬性及其操作的封裝體;對象可按其性質(zhì)劃分為類,對象成為類的實(shí)例;實(shí)例關(guān)系和繼承關(guān)系是對象之間的靜態(tài)關(guān)系;消息傳遞是對象之間動態(tài)聯(lián)系的唯一形式,也是計(jì)算的唯一形式;方法是消息的序列。
面向?qū)ο蟮姆椒▽W(xué)包括了以下核心概念:
對象(object):即指現(xiàn)實(shí)世界中各種各樣的實(shí)體。它可以指具體的事物也可以指抽象的事物。
類(class):類是具有相似內(nèi)部狀態(tài)和運(yùn)動規(guī)律的實(shí)體的集合(或統(tǒng)稱、抽象)。類的概念來自于人們認(rèn)識自然、認(rèn)識社會的過程。
消息(Message): 消息是指對象間相互聯(lián)系和相互作用的方式。一個消息主要由5部分組成:發(fā)送消息的對象、接收消息的對象、消息傳遞辦法、消息內(nèi)容(參數(shù))、反饋。
封裝:對象間的相互聯(lián)系和相互作用過程主要通過消息機(jī)制得以實(shí)現(xiàn)。對象之間并不需要過多的了解對方內(nèi)部的具體狀態(tài)或運(yùn)動規(guī)律。面向?qū)ο蟮念愂欠庋b良好的模塊,類定義將其說明(用戶可見的外部接口)與實(shí)現(xiàn)(用戶不可見的內(nèi)部實(shí)現(xiàn))顯式地分開,其內(nèi)部實(shí)現(xiàn)按其具體定義的作用域提供保護(hù)。類是封裝的最基本單位。封裝防止了程序相互依賴性而帶來的變動影響。在類中定義的接收對方消息的方法稱為類的接口。
繼承:類之間的繼承關(guān)系是現(xiàn)實(shí)世界中遺傳關(guān)系的直接模擬,它表示類之間的內(nèi)在聯(lián)系,以及對屬性和操作的共享,即子類可以沿用父類的某些特征。
重載:重載是指類的同名方法在給其傳遞不同的參數(shù)是可以有不同的運(yùn)動規(guī)律。在對象間相互作用時,即使接收消息對象采用相同的接收辦法,但消息內(nèi)容的詳細(xì)程度不同,接收消息對象內(nèi)部的運(yùn)動規(guī)律也可能不同。關(guān)于UML UML(Unified Modeling Language)是在Booch方法、OOSE方法和OMT方法的基礎(chǔ)上演化而來的基于面向?qū)ο蠹夹g(shù)的標(biāo)準(zhǔn)建模語言。它統(tǒng)一了面向?qū)ο蠼5幕靖拍?、術(shù)語和圖示符號,描述了建模過程中所必須遵循的基本步驟,提供了一整套描述軟件系統(tǒng)模型的概念和圖形表示法,可從不同的視角為系統(tǒng)建模。統(tǒng)一建模語言UML是一種語義豐富、通用、可視化的建模語言和事實(shí)上的國際工業(yè)標(biāo)準(zhǔn),易于理解和交流。UML提供的豐富的視圖從多個視角描述系統(tǒng)的不同側(cè)面,可以有效運(yùn)用于軟件的建模、分析與設(shè)計(jì)。標(biāo)準(zhǔn)建模語言UML的定義包括UML語義和UML表示法兩個部分。UML語義通過其元模型來嚴(yán)格地定義。UML表示法定義UML符號的表示法,為開發(fā)者或開發(fā)工具使用這些圖形符號和文本語法來建模提供標(biāo)準(zhǔn)。這些圖形符號和文字所表達(dá)的是應(yīng)用級的模型,在語義上它是UML元模型的實(shí)例。UML的主要內(nèi)容通常用用例圖、類圖、對象圖、狀態(tài)圖、活動圖、構(gòu)件圖、配置圖、順序圖、協(xié)作圖和包圖等l0種圖來描述,它們從不同的角度和層次為系統(tǒng)建模提供支持,完全可以 描述系統(tǒng)的方方面面。
與傳統(tǒng)的軟件建模方法相比, UML 有如下一些特點(diǎn):(1)UML 是一個可視化建模語言, 是一種圖形化的面向?qū)ο蟮脑O(shè)計(jì)工具語言,而不是可視化程序設(shè)計(jì)語言,但用UML描述的模型可與各種編程語言直接相連,把UML 模型映射成編程語言。在不同程序中使用同樣的UML 圖表類型, 因?yàn)閁ML 具有任意程序的獨(dú)立性,定義一個標(biāo)準(zhǔn)程序不是一個UML 的目標(biāo)。
(2)UML 是一種可用于詳細(xì)描述的語言,其所建立的模型是精確、無歧義和完整的。同時UML是一種文檔化的語言,對其各建模元素可進(jìn)行詳細(xì)說明,并能生成所建模型的文檔。標(biāo)準(zhǔn)建模語言UML支持面向?qū)ο蟮姆治雠c設(shè)計(jì),定義良好、易于表達(dá)、功能強(qiáng)大。它的最大用途是利用圖形來描述真實(shí)世界各個對象的符合表示,讓所有系統(tǒng)設(shè)計(jì)者在構(gòu)建系統(tǒng)需求分析、對象模型化定義到對象設(shè)計(jì)的整個開發(fā)過程完全標(biāo)準(zhǔn)化。3 本課題的研究意義
一個圖書館的圖書資料庫在正常運(yùn)轉(zhuǎn)中總是面對大量的讀者信息、書籍信息以及兩者相互作用產(chǎn)生的借書信息、還書信息。圖書館作為一個信息資源的集散地,圖書和用戶借閱資料繁多,包含著很多的信息數(shù)據(jù)。以前對信息管理的主要方式是基于文本、表格等紙介質(zhì)的手工處理,對于圖書借閱情況(如借書天數(shù)、超過限定借書時間的天數(shù))的統(tǒng)計(jì)和核實(shí)等往往采用人工檢查,對借閱者的借閱權(quán)限以及借閱天數(shù)等采用人工計(jì)算、手抄進(jìn)行,數(shù)據(jù)信息處理工作量大,容易出錯和丟失。因此,建立一個智能化、系統(tǒng)化、信息化的圖書資料庫是十分重要的。使用計(jì)算機(jī)軟件對圖書進(jìn)行管理,是計(jì)算機(jī)應(yīng)用的一部分。充分利用計(jì)算機(jī)的功能,實(shí)現(xiàn)對讀者管理、書籍管理等自動化控制,將會使圖書資料庫的工作強(qiáng)度大大減弱,可以實(shí)現(xiàn)圖書檢索迅速、可靠性高、存儲量大、壽命長、成本低,能最大限度地提高圖書管理的效率,也是圖書管理信息化、正規(guī)化管理的必然趨勢。4 基于UML的圖書管理系統(tǒng)的需求分析與設(shè)計(jì)過程
圖書管理系統(tǒng)的開發(fā)和應(yīng)用主要通過兩個步驟來實(shí)現(xiàn):首先是基于系統(tǒng)功能的需求分析,其次是系統(tǒng)模型的設(shè)計(jì)和實(shí)現(xiàn)。
4.1需求分析
需求分析是軟件工程過程的一個重要階段,其中一個主要任務(wù)是確定系統(tǒng)的功能需求,采用面向?qū)ο蠓椒?基于UML的可視化系統(tǒng)需求分析,因?yàn)橛杏脩舻姆e極參與,既可以加快設(shè)計(jì)者對于問題的理解,又能夠在系統(tǒng)描述方面減少語義差異,保證分析的正確性。需求分析的目標(biāo)就是建立需求模型,即從功能需求出發(fā)建立用例模型, UML的用例視圖從用戶的需求中提取,以盒圖的方式描述待開發(fā)的系統(tǒng)的功能需求。每個用例都指定了客戶的需求即他們需要系統(tǒng)干什么。用例圖為設(shè)計(jì)活動不僅記 錄需求而且還提供了一種挖掘的信息, 它記錄了需求到設(shè)計(jì)結(jié)果之間的映射關(guān)系,能夠確保設(shè)計(jì)結(jié)果具有明確的根據(jù)或者說具有可維護(hù)性,基于UML的軟件開發(fā)過程是以用例驅(qū)動的。
首先我們進(jìn)行角色識別,角色識別的任務(wù)是找出所有可能與系統(tǒng)發(fā)生交互行為的外部實(shí)體、對象、系統(tǒng)。它們的行為不受系統(tǒng)控制,但是可以提供輸入給系統(tǒng)。對于一所大學(xué)的圖書管理系統(tǒng),基本的功能是完成圖書的借閱和相關(guān)信息的管理,服務(wù)的對象有本科生,研究生,教師,及其他學(xué)校的學(xué)生,還有社會人員,這些人可歸結(jié)為一類即讀者。而為幫助讀者順利完成借還書的可以是工作人員,可以是自動借還書機(jī),他們可以歸結(jié)為一類即圖書管理人員。因此對于一個圖書管理系統(tǒng)主要有兩類角色,讀者、圖書管理員。
其次,在主要角色的基礎(chǔ)上,可以識別出與角色相應(yīng)的用例,從而得到系統(tǒng)的用例模型。與讀者相關(guān)的過程包括:借書、還書、預(yù)定、圖書信息檢索、借閱查詢(如查詢本人借書記錄、還書期限、是否超期)、個人相關(guān)信息查詢及修改(如學(xué)號、姓名、性別、年級、專業(yè)、家庭住址、聯(lián)系電話、出生日期、民族、政治面貌、身份證號等)。與圖書管理員相關(guān)的過程包括:辦理借書、辦理還書、解除預(yù)定、圖書訂購、讀者信息管理(增加/刪除讀者、修改讀者權(quán)限及密碼、借閱超期罰款)、圖書信息管理(增加/刪除數(shù)目、圖書類別等相關(guān)信息的修改、流通情況)。系統(tǒng)管理(系統(tǒng)的登陸、退出、日志維護(hù)、系統(tǒng)更新)。以上分析中,與讀者,圖書管理員相關(guān)的過程構(gòu)成了本系統(tǒng)的基本用例。
4.2 系統(tǒng)的整體結(jié)構(gòu)
綜上所述一個圖書管理系統(tǒng)的整體結(jié)構(gòu)可以分為三大模塊:圖書管理模塊、讀者管理模塊、系統(tǒng)管理模塊。
(1)圖書管理模塊包括與圖書相關(guān)的一些過程,主要有圖書的借出、圖書的歸還、預(yù)定、圖書信息檢索、圖書訂購、圖書相關(guān)信息管理。
(2)讀者管理模塊主要包括與讀者有聯(lián)系相關(guān)的過程,主要有增加/刪除讀者、修改讀者權(quán)限及密碼、借閱信息查詢、個人信息查詢及修該、借閱超期和丟失罰款。
(3)系統(tǒng)管理模塊包括系統(tǒng)的登陸、退出、系統(tǒng)維護(hù)、系統(tǒng)更新。綜上我們畫出系統(tǒng)的整體結(jié)構(gòu),如圖一所示:
圖書管理系統(tǒng)圖書管理讀者管理圖一 圖書管理系統(tǒng)的整體結(jié)構(gòu)
系統(tǒng)管理 4.3 圖書管理系統(tǒng)的用例圖
從以上分析中我們不難得出系統(tǒng)的基本用例圖,如圖二所示:
借書/還書預(yù)定/解除預(yù)定圖書檢索圖書信息管理圖書訂購借閱信息查詢個人信息查詢/修改讀者信息管理 讀者借閱超期罰款 圖書管理員系統(tǒng)管理圖二 系統(tǒng)的基本用例圖
圖書管理和圖書管理是圖書管理系統(tǒng)的重要組成部分,為此我們按照前文所述將圖書管理模塊和讀者模塊以及系統(tǒng)管理模塊詳細(xì)精化得出如下的用例圖,如圖
三、圖
四、圖五所示:
按年代查詢圖書借入借出管理出版社查詢圖書購入作者查詢圖書查詢書名查詢圖書管理模糊查詢圖書管理員圖書信息管理類別查詢信息刪除信息添加
圖三 圖書管理模塊的用例圖
信息修改增加/刪除讀者修改權(quán)限個人信息查詢/修改圖書管理員讀者管理讀者借閱信息查詢讀者辦理掛失圖四 讀者管理用例圖
超期/丟失罰款
登陸/退出軟件更新系統(tǒng)管理系統(tǒng)更新 管理員系統(tǒng)維護(hù)硬件更新日志維護(hù) 圖五 系統(tǒng)管理模塊的用例圖
4.4 圖書管理系統(tǒng)的行為圖
我們再進(jìn)行動態(tài)建模分析。對于圖書管理系統(tǒng)借書還書是兩個重要的過程,我們先來分析一下借書、還書的一般過程,并由借書的一般過程畫出其順序圖、協(xié)作圖以及活動圖。
(1)借書的過程:讀者刷卡進(jìn)入圖書館,或者先查詢圖書及個人借閱信息,或者直接去挑選圖書,選擇好圖書后進(jìn)入借書程序,管理員先檢查讀者的借書證件,查驗(yàn)?zāi)芊窠栝?,比如:證件是否無效或書籍是否已經(jīng)借滿等,即檢驗(yàn)其借書的合法性和有效性,如果是非法用戶或借書數(shù)量范圍外,則該讀者不能借閱圖書。如果滿足借閱要求,則再獲取所借書的標(biāo)題以進(jìn)行庫內(nèi)搜索,獲取書目查詢此書的數(shù)量,看是否還有此書,如果沒有則阻止其他借書者可能進(jìn)行的預(yù)訂活動,將此書借出,根據(jù)書號將此書的借閱標(biāo)志位取反以表示此書已借出,并將此書的書目減1。并為此讀者記錄借閱日期,以及歸還日期,在歸還日期內(nèi)未能歸還和續(xù)借的,并為其記錄超借天數(shù)及罰款數(shù)額。
(2)還書過程:在返還圖書的過程中,管理員首先獲取讀者的借閱信息和被歸還的書籍的信息,如書標(biāo)題信息,數(shù)量等,并一一審核每本書的歸還日期是否超過應(yīng)歸還日期。在完成階段,將此書的書號登記并設(shè)計(jì)標(biāo)志位為已歸還,以便讀者網(wǎng)上預(yù)訂和繼續(xù)借閱,同時將此類圖書的數(shù)量加1,如果讀者超期或丟失所借書籍,則要進(jìn)行賠償處理。
所以我們不難畫出借書一般過程的順序圖,如圖六所示:
圖書管理員讀者信息圖書信息修改圖書借出刷卡進(jìn)入并選書核對讀者信息 圖書掃描并消磁修改讀者借閱信息圖六 借書一般過程的順序圖
有順序圖可得到協(xié)作圖,如圖七所示。仔細(xì)分析借書過程的細(xì)節(jié),可以畫出如圖八所示的活動圖,它表示了復(fù)雜算法的過程,尤其是過程中的判斷、并發(fā)和同步。
刷卡進(jìn)入 讀者挑選圖書圖書管理員 核對信息圖書信息修改圖書掃描 消磁讀者借閱信息 修改讀者信息圖書借出
圖七 借書一般過程的協(xié)作圖
讀者 管理系統(tǒng)N禁止入內(nèi)刷卡是否為本館服務(wù)對象Y輸入卡號/密碼選擇圖書N卡號密碼正確?Y個人信息查詢/修改Y借閱信息查詢圖書檢索刷條形碼顯示讀者相關(guān)信息能否借閱N確定借書NY刷圖書條碼更改改讀者及圖書的借閱信息退出是否借閱完畢YN圖八 借書過程活動圖
以上我們用多種語言機(jī)制分析了讀者的主要相關(guān)事件流,下面我們繪制圖書管理員使用系統(tǒng)的狀態(tài)圖分析圖書管理員的主要事件流。從以上分析可知,圖書管理員相關(guān)的過程包括:辦理借書、辦理還書、解除預(yù)定、圖書訂購、讀者信息管理(增加/刪除讀者、修改讀者權(quán)限及密碼、借閱超期罰款)、圖書信息管理(增加/刪除數(shù)目、圖書類別等相關(guān)信息的修改、流通情況)。由此我們可繪制如圖九所示的圖書管理員使用系統(tǒng)的狀態(tài)圖:
登陸關(guān)閉辦理借書修改圖書信息辦理還書增加數(shù)目圖書預(yù)留取消增加加讀者解除預(yù)定刪除讀者查詢數(shù)目存儲信息修改讀者權(quán)限查詢讀者信息圖九圖書管理員使用系統(tǒng)的狀態(tài)圖
4.5 圖書管理系統(tǒng)的靜態(tài)圖
定義并描述了各個類后,我們可以根據(jù)實(shí)際情況引入包來管理類,本圖書館管理系統(tǒng)可以劃分為四個包:用戶管理:對系統(tǒng)用戶進(jìn)行管理,為用戶提供信息服務(wù)接口,便于對系統(tǒng)進(jìn)行操作。借閱管理包括借書處理,還書處理和罰款處理等。讀者管理包括對讀者圖書等信息進(jìn)行維護(hù),主要有讀者信息的增刪,對圖書更新資料進(jìn)行維護(hù)。系統(tǒng)服務(wù):包括系統(tǒng)登錄檢查,安全維護(hù)等。系統(tǒng)的包圖如圖十所示:
用戶管理借閱管理讀者及圖書管理系統(tǒng)服務(wù) 圖十 系統(tǒng)包圖 4.6 圖書管理系統(tǒng)的實(shí)現(xiàn)
經(jīng)過系統(tǒng)分析和設(shè)計(jì)后,就可以根據(jù)設(shè)計(jì)模型在具體的環(huán)境中實(shí)現(xiàn)系統(tǒng),生成系統(tǒng)的源代碼、可執(zhí)行程序和相應(yīng)的軟件文檔,建立一個可執(zhí)行系統(tǒng)。進(jìn)而需要對系統(tǒng)進(jìn)行測試和排錯,保證系統(tǒng)符合預(yù)定的要求,獲得一個無錯的系統(tǒng)實(shí)現(xiàn)。測試結(jié)果將確認(rèn)所完成的系統(tǒng)可以真正使用。參考文獻(xiàn)
[1] 齊治昌.譚慶平.寧洪.軟件工程.北京:高等教育出版社 [2] 張海藩.軟件工程.北京:人民郵電出版社
[3] 董翔.基于UML的圖書管理系統(tǒng)的開發(fā)和應(yīng)用.科技情報開發(fā)與經(jīng)濟(jì)2008年第l8卷第l2期 [4] 吳開華.邢養(yǎng)曉.羅德撤
.數(shù)字圖書館元數(shù)據(jù)研究[J].中國圖書館學(xué)報,2002,(3).
[5] 劉治國.構(gòu)建基于B/S結(jié)構(gòu)的圖書管理系統(tǒng)[J].信息技術(shù),2005(3):72—73. [6] 管斌.袁國忠 譯.用例驅(qū)動的UML對象建模應(yīng)用-范例分析.北京:人民郵電出版社 結(jié)束語
本文以一個圖書館圖書管理系統(tǒng)開發(fā)為背景,針對圖書館對圖書資源進(jìn)行有效利用和管理的功能需求,采用統(tǒng)一建模語言(UML)對圖書資源進(jìn)行面向?qū)ο蟮拿枋?,通過利用統(tǒng)一建模語言UML中的各種圖形,分析和設(shè)計(jì)圖書管理系統(tǒng),建起了圖書管理的面向?qū)ο竽P停接懥嘶赨ML的體系結(jié)構(gòu)建模及其實(shí)現(xiàn)問題。由建模過程可以看出UML在體系結(jié)構(gòu)建模方面存在很好的優(yōu)勢,不但從整體上正確描述了該圖書管理系統(tǒng)的體系結(jié)構(gòu),并且可以充分利用UML面向?qū)ο蟮膬?yōu)勢,從而實(shí)現(xiàn)整個軟件系統(tǒng)面向?qū)ο蟮姆治?、設(shè)計(jì)與開發(fā),大大縮短開發(fā)周期,最終使得項(xiàng)目成功完成,此管理系統(tǒng)節(jié)省了管理人員和讀者的大量時間,有利于信息處理效率的提高。鑒于篇幅有限,本文只對主要部分和主要過程做了介紹,限于水平,歡迎各位讀者對本文的缺點(diǎn)、錯誤提出批評。
第五篇:uml圖書管理系統(tǒng)需求分析與設(shè)計(jì)
圖書館圖書管理系統(tǒng)的需求分析與設(shè)計(jì)
一、本課題的研究意義
一個圖書館的圖書資料庫在正常運(yùn)轉(zhuǎn)中總是面對大量的讀者信息、書籍信息以及兩者相互作用產(chǎn)生的借書信息、還書信息。圖書館作為一個信息資源的集散地,圖書和用戶借閱資料繁多,包含著很多的信息數(shù)據(jù)。以前對信息管理的主要方式是基于文本、表格等紙介質(zhì)的手工處理,對于圖書借閱情況(如借書天數(shù)、超過限定借書時間的天數(shù))的統(tǒng)計(jì)和核實(shí)等往往采用人工檢查,對借閱者的借閱權(quán)限以及借閱天數(shù)等采用人工計(jì)算、手抄進(jìn)行,數(shù)據(jù)信息處理工作量大,容易出錯和丟失。因此,建立一個智能化、系統(tǒng)化、信息化的圖書資料庫是十分重要的。使用計(jì)算機(jī)軟件對圖書進(jìn)行管理,是計(jì)算機(jī)應(yīng)用的一部分。充分利用計(jì)算機(jī)的功能,實(shí)現(xiàn)對讀者管理、書籍管理等自動化控制,將會使圖書資料庫的工作強(qiáng)度大大減弱,可以實(shí)現(xiàn)圖書檢索迅速、可靠性高、存儲量大、壽命長、成本低,能最大限度地提高圖書管理的效率,也是圖書管理信息化、正規(guī)化管理的必然趨勢。
二、圖書館圖書管理系統(tǒng)的需求分析與設(shè)計(jì)過程
圖書管理系統(tǒng)的開發(fā)和應(yīng)用主要通過兩個步驟來實(shí)現(xiàn):首先是基于系統(tǒng)功能的需求分析,其次是系統(tǒng)模型的設(shè)計(jì)和實(shí)現(xiàn)。
2.1需求分析
需求分析是信息系統(tǒng)設(shè)計(jì)過程中的一個重要階段,其中一個主要任務(wù)是確定系統(tǒng)的功能需求,并采用面向?qū)ο蠓椒?即基于UML的可視化系統(tǒng)進(jìn)行需求分析。需求分析的目標(biāo)就是建立需求模型,即從功能需求出發(fā)建立圖形模型, UML的視圖從用戶的需求中提取,以圖形的方式描述待開發(fā)的系統(tǒng)的功能需求。每個圖形都指定了客戶的需求,即他們需要系統(tǒng)干什么。用圖形為設(shè)計(jì)活動不僅記錄需求而且還提供了一種挖掘的信息, 它記錄了需求到設(shè)計(jì)結(jié)果之間的映射關(guān)系,能夠確保設(shè)計(jì)結(jié)果具有明確的根據(jù)或者說具有可維護(hù)性,基于UML的信息系統(tǒng)設(shè)計(jì)過程是以建模圖形驅(qū)動的。
首先我們進(jìn)行角色的認(rèn)識,對于一所大學(xué)的圖書管理系統(tǒng),基本的功能是完成圖書的借閱和相關(guān)信息的管理,服務(wù)的對象有本科生,研究生,教師,及其他學(xué)校的學(xué)生,還有社會人員,這些人可歸結(jié)為一類即讀者。而為幫助讀者順利完成借還書的可以是工作人員,可以是自動借還書機(jī),他們可以歸結(jié)為一類即圖書管理人員。因此對于一個圖書管理系統(tǒng)主要有兩類角色,讀者、圖書管理員。
其次,在主要角色的基礎(chǔ)上,可以識別出與角色相應(yīng)的用例,從而得到系統(tǒng)的用例模型圖。與讀者相關(guān)的過程包括:借書、還書、預(yù)借(想借的書已借出,預(yù)定要借的書籍)、圖書信息檢索、借閱查詢(如查詢本人借書記錄、還書期限、是否超期)、個人相關(guān)信息查詢及修改(如學(xué)號、姓名、性別、年級、專業(yè)、家庭住址、聯(lián)系電話、出生日期、民族、政治面貌、身份證號等)。與圖書管理員相關(guān)的過程包括:辦理借書、辦理還書、刪除預(yù)借對象、圖書訂購、讀者信息管理(增加/刪除讀者、修改讀者權(quán)限及密碼、借閱超期罰款)、圖書信息管理(增加/刪除數(shù)目、圖書類別等相關(guān)信息的修改、流通情況)。系統(tǒng)管理(系統(tǒng)的登陸、退出、日志維護(hù)、系統(tǒng)更新)。以上分析中,與讀者,圖書管理員相關(guān)的過程構(gòu)成了本系統(tǒng)的基本用例。
2.2 系統(tǒng)的整體結(jié)構(gòu)
綜上所述一個圖書館圖書管理系統(tǒng)的整體結(jié)構(gòu)可以分為三大模塊:圖書管理模塊、讀者管理模塊、系統(tǒng)管理模塊。
(1)圖書管理模塊包括與圖書相關(guān)的一些過程,主要有圖書的借出、圖書的歸還、預(yù)借、圖書信息檢索、圖書訂購、圖書相關(guān)信息管理。
(2)讀者管理模塊主要包括與讀者有聯(lián)系相關(guān)的過程,主要有增加/刪除讀者、修改讀者權(quán)限及密碼、借閱信息查詢、個人信息查詢及修該、借閱超期和丟失罰款。
(3)系統(tǒng)管理模塊包括系統(tǒng)的登陸、退出、系統(tǒng)維護(hù)、系統(tǒng)更新。綜上我們畫出系統(tǒng)的整體結(jié)構(gòu),如圖一所示:
圖一 圖書管理系統(tǒng)的整體結(jié)構(gòu)
2.3 圖書管理系統(tǒng)的用例圖
從以上分析中我們不難得出系統(tǒng)的基本用例圖,如圖二所示:
圖二 系統(tǒng)的基本用例圖
圖書管理和圖書管理是圖書管理系統(tǒng)的重要組成部分,為此我們按照前文所述將圖書管理模塊和讀者模塊以及系統(tǒng)管理模塊詳細(xì)精化得出如下的用例圖,如圖
三、圖
四、圖五所示:
圖三 圖書管理模塊的用例圖
圖四 讀者管理用例圖
圖五 系統(tǒng)管理模塊的用例圖
2.4 圖書管理系統(tǒng)的交互圖
協(xié)作圖