第一篇:UML課程設(shè)計(jì)報(bào)告+汽車租賃系統(tǒng)的需求分析與設(shè)計(jì)
UML 課 程 設(shè) 計(jì) 報(bào)
學(xué) 院: 廣西大學(xué)行健文理學(xué)院 專業(yè)名稱: 計(jì)算機(jī)科學(xué)與技術(shù)0801 學(xué) 號(hào): 0838110127 姓 名: 劉鵬帥 指導(dǎo)教師: 劉智斌 時(shí) 間:
2010年12月
告
汽車租賃系統(tǒng)的需求分析與設(shè)計(jì)
一. 課程設(shè)計(jì)目的
UML統(tǒng)一建模課程是一門面向?qū)ο箝_發(fā)方法的設(shè)計(jì)語言。UML統(tǒng)一建模課程設(shè)計(jì)實(shí)驗(yàn)課,著重加強(qiáng)面向?qū)ο蠼<夹g(shù)。使用UML統(tǒng)一建模語言,用需求模型簡化業(yè)務(wù)領(lǐng)域;用分析模型驗(yàn)證用例的正確性,一致性,完備性,可行性;用設(shè)計(jì)模型標(biāo)識(shí)解決方案。通過模型實(shí)現(xiàn)了從業(yè)務(wù)領(lǐng)域到軟件領(lǐng)域的映射。通過建模,使問題可視化,形式化。通過一序列的建模和迭代活動(dòng),對(duì)于提高學(xué)生綜合素質(zhì)十分必要。
UML統(tǒng)一建模課程是本科類計(jì)算機(jī)專業(yè)的一門骨干課程,技術(shù)復(fù)雜,應(yīng)用范圍廣。本課程設(shè)計(jì)實(shí)驗(yàn)主要內(nèi)容:構(gòu)建系統(tǒng)的分析模型、設(shè)計(jì)模型。主要目標(biāo)如下:
1.掌握面向?qū)ο蟮姆治黾夹g(shù)、設(shè)計(jì)技術(shù);
2.構(gòu)建“汽車租賃系統(tǒng)”的需求分析模型和設(shè)計(jì)模型;
二. 課程設(shè)計(jì)題目描述和要求
本課程設(shè)計(jì)中包含:
A.軟件需求分析
B.汽車租賃系統(tǒng)的需求分析 C.系統(tǒng)的UML基本模型 D.系統(tǒng)中的類 E.系統(tǒng)的配置與實(shí)現(xiàn)
1、系統(tǒng)目標(biāo)
系統(tǒng)的整體目標(biāo)是:利用互聯(lián)網(wǎng)和信息化技術(shù),結(jié)合汽車租賃經(jīng)營的實(shí)際運(yùn)作情況,建設(shè)一個(gè)覆蓋汽車租賃經(jīng)營全部業(yè)務(wù)的“汽車租賃系統(tǒng)”,通過該系統(tǒng)提高企業(yè)信息化水平,完善經(jīng)營管理體系,提高員工素質(zhì),進(jìn)一步加強(qiáng)企業(yè)市場競爭能力。
2、功能要求
“汽車租賃系統(tǒng)”中的功能需求可以包括以下幾個(gè)方面:
? 客戶可以通過不同的方式(包括電話、前臺(tái)、網(wǎng)上)預(yù)訂車輛; ? 能夠保存客戶的預(yù)訂申請(qǐng)單; ? 能夠保存客戶的歷史記錄; ? 工作人員可以處理客戶申請(qǐng);
? 技術(shù)人員可以保存對(duì)車輛檢修的結(jié)果。
滿足上述需求的系統(tǒng)主要包括以下幾個(gè)模塊:
? 基本數(shù)據(jù)維護(hù)模塊:該模塊提供了使用者錄入、修改并維護(hù)基本數(shù)據(jù)的途徑。? 基本業(yè)務(wù)模塊:在系統(tǒng)中,客戶可以填寫汽車租賃申請(qǐng)表,工作人員處理這些表格;同時(shí),技術(shù)人員還可以提交每輛車的狀態(tài),以便工作人員根據(jù)這些資料決定是否批準(zhǔn)客戶的請(qǐng)求。
? 數(shù)據(jù)庫管理模塊:在系統(tǒng)中,對(duì)所有客戶、工作人員以及車輛的信息都要進(jìn)行統(tǒng)一管理,車輛的租賃情況也要進(jìn)行詳細(xì)的登記。
? 信息查詢模塊:該模塊主要用于查詢相關(guān)信息。
三. 課程設(shè)計(jì)報(bào)告內(nèi)容
1.汽車租賃系統(tǒng)的需求分析
1.1 系統(tǒng)功能需求
系統(tǒng)的功能需求主要包括以下幾個(gè)方面: ? ? ? ? ? ? ? ? ? 客戶可以通過不同的方式(包括電話、前臺(tái)、網(wǎng)上)預(yù)訂車輛。能夠保存客戶的預(yù)訂申請(qǐng)單。能夠保存客戶的歷史記錄。工作人員可以處理客戶申請(qǐng)。
技術(shù)人員可以保存對(duì)車輛檢修的結(jié)果。
基本數(shù)據(jù)維護(hù)模塊 基本業(yè)務(wù)模塊 數(shù)據(jù)庫管理模塊 信息查詢模塊 滿足上述需求的系統(tǒng)主要包括以下模塊:
1.2 基本數(shù)據(jù)維護(hù)模塊
基本數(shù)據(jù)維護(hù)模塊包括的主要功能模塊: ?
添加車輛信息
? ? ? 修改車輛信息 添加員工信息 修改員工數(shù)據(jù)
1.3 基本業(yè)務(wù)模塊
基本業(yè)務(wù)模塊包含的功能: ? ? ? ? 用戶填寫預(yù)定申請(qǐng) 工作人員處理預(yù)定請(qǐng)求 技術(shù)人員填寫服務(wù)記錄 工作人員處理還車
1.4 數(shù)據(jù)庫模塊
數(shù)據(jù)庫模塊的功能:
? ? ? ? 客戶信息管理 車輛信息管理 租賃信息管理 職員信息管理
1.5 信息查詢模塊
信息查詢模塊是查詢數(shù)據(jù)庫中的相關(guān)信息,包括: ? ? ? ? 查詢客戶信息 查詢職員信息 查詢車輛信息 查詢客戶記錄
2.系統(tǒng)的UML基本模型
2.1 系統(tǒng)的用例圖
?
創(chuàng)建用例圖之前首先需要確定參與者。
? 系統(tǒng)中的參與者主要有兩類: ? 客戶 ? 公司職員
1.客戶參與的用例圖
2.公司職員參與的用例圖
2.2 系統(tǒng)的順序圖
1.管理人員開展工作的順序圖
2.客戶預(yù)訂車輛的順序圖
theCustomer : CustomertheRequest : RequestOrdertheCommonWorker : CommonWorkertheCustomerRecord : CustomerRecordtheCar : CarfillOrder()checkRequest()check()no problemInServiced()okcreate new customer recordAllow()isHandled()notify()
3.客戶取車的順序圖
theCustomer : CustomertheRequestOrder : RequestOrdershow_notice()theCommonWorker : CommonWorkertheWorkRecord : WorkRecordtheCar : Carcheck()okpay()fillWorkRecord()update_carstatus()
4.客戶還車的順序圖
theCustomer : CustomertheCommonWorker : CommonWorkertheSkillWorker : SkillWorkertheCar : CartheServiceRecord : ServiceRecordtheCustomerRecord : CustomerRecordtheRentRecord : WorkRecordreturnbackcheck_carstatus()fillRecord()returnnotify_payment()pay()update_carstatus()end()updateRecord()
2.3 系統(tǒng)的協(xié)作圖
1.客戶預(yù)訂的協(xié)作圖
6: isHandled()1: fillOrder()theRequestOrder : RequestOrder : custormer7: notify()2: checkRequest()5: Allow()/ Deny(): employee4: InServiced()3: check()theCar : Car8: new CustomerRecordtheCustomerRecord : CustomerRecord2.客戶取車的協(xié)作圖
1: show_notice()theRequestOrder : RequestOrder4: take_car(): custormer3: validate2: check(): employee6: update_carstatus()5: fillWorkRecord()theCar : CartheWorkRecord : WorkRecord
3.客戶還車的協(xié)作圖
3: fillRecord()4: update_carstatus()1: return_car(): employeetheCar : 2: check_carstatus()Car : custormertheServiceOrder : ServiceRecord5: end()6: updateRecord()theCustomerRecord : CustomerRecordtheWorkRecord : WorkRecord
2.4 系統(tǒng)的狀態(tài)圖
2.5 系統(tǒng)的活動(dòng)圖
customer requestEmployee check the requestno new requeststore the requesthave new requesthandle new requestcheck the customer's recordthe history is badthe history is goodthe car is availabledeny requestsend the messageyescustomer acquire the carnocustomer give the car back 系統(tǒng)中的類
3.1 系統(tǒng)中主要的類 1.客戶和公司職員類
2.一些其他的類
3.2 各個(gè)類之間的關(guān)系 系統(tǒng)的配置與實(shí)現(xiàn)
系統(tǒng)的配置圖
Database ApplicationApplication ServerCommon WorkerManager InterfaceSkill Worker
四.小結(jié)
汽車租賃系統(tǒng)是一套針對(duì)汽車租賃業(yè)務(wù)的實(shí)際特點(diǎn)而開發(fā)的應(yīng)用與管理軟件,其功能覆蓋了汽車租賃業(yè)務(wù)的全部流程。主要包括車輛預(yù)訂、租賃業(yè)務(wù)、車輛管理、客戶管理、車輛檢修、租金統(tǒng)計(jì)等功能。它包括了四個(gè)模塊:基本數(shù)據(jù)維護(hù)模塊、基本業(yè)務(wù)模塊、數(shù)據(jù)庫管理模塊和信息查詢模塊。其中,基本數(shù)據(jù)維護(hù)模塊提供了使用者錄入、修改并維護(hù)基本數(shù)據(jù)的途徑,主要包括了添加車輛信息、修改車輛信息 添加員工信息、修改員工數(shù)據(jù)幾大主要功能。基本業(yè)務(wù)模塊則提供客戶可以填寫汽車租賃的申請(qǐng)表,工作人員會(huì)處理這些表格;同時(shí),技術(shù)人員還可以提供每輛車的狀態(tài),以便工作人員根據(jù)這些資料決定是否批準(zhǔn)客戶的請(qǐng)求,它包含的功能有:用戶填寫預(yù)定申請(qǐng)、工作人員處理預(yù)定請(qǐng)求、技術(shù)人員填寫服務(wù)記錄和工作人員處理還車。數(shù)據(jù)庫模塊是對(duì)所有客戶、工作人員以及車輛的信息都要進(jìn)行統(tǒng)一管理,車輛的租賃情況也要進(jìn)行詳細(xì)的登記,它的功能則是客戶信息管理、車輛信息管理、租賃信息管理和職員信息管理。信息查詢模塊是查詢數(shù)據(jù)庫中的相關(guān)信息,包括查詢客戶信息、查詢職員信息、查詢車輛信息和查詢客戶記錄。
通過這一個(gè)課程設(shè)計(jì)中,我學(xué)會(huì)了不少東西。最大的收獲就是知道了如何進(jìn)行UML統(tǒng)一建模,掌握了面向?qū)ο骍ML統(tǒng)一建模語言。我了解了使用UML統(tǒng)一建模語言,用需求模型簡化業(yè)務(wù)領(lǐng)域;用分析模型驗(yàn)證用例的正確性,一致性,完備性,可行性;用設(shè)計(jì)模型標(biāo)識(shí)解決方案。我還認(rèn)識(shí)到通過模型可以實(shí)現(xiàn)從業(yè)務(wù)領(lǐng)域到軟件領(lǐng)域的映射;通過建模,可以使問題可視化,形式化。而通過一序列的建模活動(dòng),提高了我在系統(tǒng)設(shè)計(jì)上的能力,增長了分析、解決問題的經(jīng)驗(yàn),對(duì)UML統(tǒng)一建模語言有了更深的了解。可以說,這次設(shè)計(jì)既鍛煉了我的動(dòng)腦分析問題的能力,又鍛煉了我動(dòng)手解決實(shí)際問題的能力,這將在我以后的學(xué)習(xí)中起到很大的作用。我會(huì)運(yùn)用從中學(xué)到的寶貴經(jīng)驗(yàn)來指導(dǎo)我今后的學(xué)習(xí)和工作,不斷地實(shí)踐,不斷地學(xué)習(xí),讓自己變得更加的充實(shí),更適合社會(huì)的需要。
參考書目:
[1] 徐峰,陳暄,UML面向?qū)ο蠼;A(chǔ),中國水利水電出版社,2008 [2] 王先國,方鵬,曾碧卿,劉燁,UML統(tǒng)一建模實(shí)用教程,清華大學(xué)出版社,2009 [3] 王養(yǎng)廷,李磊,宋漢珍,UML基礎(chǔ)與應(yīng)用,清華大學(xué)出版社,2006
第二篇:uml圖書管理系統(tǒng)需求分析與設(shè)計(jì)
圖書館圖書管理系統(tǒng)的需求分析與設(shè)計(jì)
一、本課題的研究意義
一個(gè)圖書館的圖書資料庫在正常運(yùn)轉(zhuǎn)中總是面對(duì)大量的讀者信息、書籍信息以及兩者相互作用產(chǎn)生的借書信息、還書信息。圖書館作為一個(gè)信息資源的集散地,圖書和用戶借閱資料繁多,包含著很多的信息數(shù)據(jù)。以前對(duì)信息管理的主要方式是基于文本、表格等紙介質(zhì)的手工處理,對(duì)于圖書借閱情況(如借書天數(shù)、超過限定借書時(shí)間的天數(shù))的統(tǒng)計(jì)和核實(shí)等往往采用人工檢查,對(duì)借閱者的借閱權(quán)限以及借閱天數(shù)等采用人工計(jì)算、手抄進(jìn)行,數(shù)據(jù)信息處理工作量大,容易出錯(cuò)和丟失。因此,建立一個(gè)智能化、系統(tǒng)化、信息化的圖書資料庫是十分重要的。使用計(jì)算機(jī)軟件對(duì)圖書進(jìn)行管理,是計(jì)算機(jī)應(yīng)用的一部分。充分利用計(jì)算機(jī)的功能,實(shí)現(xiàn)對(duì)讀者管理、書籍管理等自動(dòng)化控制,將會(huì)使圖書資料庫的工作強(qiáng)度大大減弱,可以實(shí)現(xiàn)圖書檢索迅速、可靠性高、存儲(chǔ)量大、壽命長、成本低,能最大限度地提高圖書管理的效率,也是圖書管理信息化、正規(guī)化管理的必然趨勢(shì)。
二、圖書館圖書管理系統(tǒng)的需求分析與設(shè)計(jì)過程
圖書管理系統(tǒng)的開發(fā)和應(yīng)用主要通過兩個(gè)步驟來實(shí)現(xiàn):首先是基于系統(tǒng)功能的需求分析,其次是系統(tǒng)模型的設(shè)計(jì)和實(shí)現(xiàn)。
2.1需求分析
需求分析是信息系統(tǒng)設(shè)計(jì)過程中的一個(gè)重要階段,其中一個(gè)主要任務(wù)是確定系統(tǒng)的功能需求,并采用面向?qū)ο蠓椒?即基于UML的可視化系統(tǒng)進(jìn)行需求分析。需求分析的目標(biāo)就是建立需求模型,即從功能需求出發(fā)建立圖形模型, UML的視圖從用戶的需求中提取,以圖形的方式描述待開發(fā)的系統(tǒng)的功能需求。每個(gè)圖形都指定了客戶的需求,即他們需要系統(tǒng)干什么。用圖形為設(shè)計(jì)活動(dòng)不僅記錄需求而且還提供了一種挖掘的信息, 它記錄了需求到設(shè)計(jì)結(jié)果之間的映射關(guān)系,能夠確保設(shè)計(jì)結(jié)果具有明確的根據(jù)或者說具有可維護(hù)性,基于UML的信息系統(tǒng)設(shè)計(jì)過程是以建模圖形驅(qū)動(dòng)的。
首先我們進(jìn)行角色的認(rèn)識(shí),對(duì)于一所大學(xué)的圖書管理系統(tǒng),基本的功能是完成圖書的借閱和相關(guān)信息的管理,服務(wù)的對(duì)象有本科生,研究生,教師,及其他學(xué)校的學(xué)生,還有社會(huì)人員,這些人可歸結(jié)為一類即讀者。而為幫助讀者順利完成借還書的可以是工作人員,可以是自動(dòng)借還書機(jī),他們可以歸結(jié)為一類即圖書管理人員。因此對(duì)于一個(gè)圖書管理系統(tǒng)主要有兩類角色,讀者、圖書管理員。
其次,在主要角色的基礎(chǔ)上,可以識(shí)別出與角色相應(yīng)的用例,從而得到系統(tǒng)的用例模型圖。與讀者相關(guān)的過程包括:借書、還書、預(yù)借(想借的書已借出,預(yù)定要借的書籍)、圖書信息檢索、借閱查詢(如查詢本人借書記錄、還書期限、是否超期)、個(gè)人相關(guān)信息查詢及修改(如學(xué)號(hào)、姓名、性別、年級(jí)、專業(yè)、家庭住址、聯(lián)系電話、出生日期、民族、政治面貌、身份證號(hào)等)。與圖書管理員相關(guān)的過程包括:辦理借書、辦理還書、刪除預(yù)借對(duì)象、圖書訂購、讀者信息管理(增加/刪除讀者、修改讀者權(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)
綜上所述一個(gè)圖書館圖書管理系統(tǒng)的整體結(jié)構(gòu)可以分為三大模塊:圖書管理模塊、讀者管理模塊、系統(tǒng)管理模塊。
(1)圖書管理模塊包括與圖書相關(guān)的一些過程,主要有圖書的借出、圖書的歸還、預(yù)借、圖書信息檢索、圖書訂購、圖書相關(guān)信息管理。
(2)讀者管理模塊主要包括與讀者有聯(lián)系相關(guān)的過程,主要有增加/刪除讀者、修改讀者權(quán)限及密碼、借閱信息查詢、個(gè)人信息查詢及修該、借閱超期和丟失罰款。
(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é)作圖
第三篇:基于UML的圖書管理系統(tǒng)的需求分析與設(shè)計(jì)
基于UML的圖書管理系統(tǒng)的需求分析與設(shè)計(jì)
摘要:本文對(duì)面向?qū)ο蟮母拍睢ML產(chǎn)生的背景及其基本內(nèi)容進(jìn)行了闡述,在對(duì)圖書館圖書管理系統(tǒng)進(jìn)行功能描述和需求分析的基礎(chǔ)上,結(jié)合軟件工程和面向?qū)ο笮枨蠓治觯O(shè)計(jì)了基于UML的用例圖、包圖和順序圖,狀態(tài)圖等語言機(jī)制的圖書館圖書管理系統(tǒng)模型。關(guān)鍵詞: UML;建模語言;面向?qū)ο螅恍枨蠓治觯粓D書管理系統(tǒng) 1關(guān)于面向?qū)ο?/p>
面向?qū)ο笫且环N的程序設(shè)計(jì)方法,或者說它是一種程序設(shè)計(jì)類型,其基本思想是使用對(duì)象,類,繼承,封裝,消息等基本概念來進(jìn)行程序設(shè)計(jì)。它是從現(xiàn)實(shí)世界中客觀存在的事物(即對(duì)象)出發(fā)來構(gòu)造軟件系統(tǒng),并在系統(tǒng)構(gòu)造中盡可能運(yùn)用人類的自然思維方式,強(qiáng)調(diào)直接以問題域(現(xiàn)實(shí)世界)中的事物為中心來思考問題,認(rèn)識(shí)問題,并根據(jù)這些事物的本質(zhì)特點(diǎn),把它們抽象地表示為系統(tǒng)中的對(duì)象,作為系統(tǒng)的基本構(gòu)成單位(而不是用一些與現(xiàn)實(shí)世界中的事物相關(guān)比較遠(yuǎn),并且沒有對(duì)應(yīng)關(guān)系的其它概念來構(gòu)造系統(tǒng))。這可以使系統(tǒng)直接地映射問題域,保持問題域中事物及其相互關(guān)系的本來面貌。它可以有不同層次的理解:
(1)從世界觀的角度可以認(rèn)為:面向?qū)ο蟮幕菊軐W(xué)是認(rèn)為世界是由各種各樣具有自己的運(yùn)動(dòng)規(guī)律和內(nèi)部狀態(tài)的對(duì)象所組成的;不同對(duì)象之間的相互作用和通訊構(gòu)成了完整的現(xiàn)實(shí)世界。因此,人們應(yīng)當(dāng)按照現(xiàn)實(shí)世界這個(gè)本來面貌來理解世界,直接通過對(duì)象及其相互關(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)相對(duì)應(yīng),應(yīng)該圍繞現(xiàn)實(shí)世界中的對(duì)象來構(gòu)造系統(tǒng),而不是圍繞功能來構(gòu)造系統(tǒng)。
(3)從程序設(shè)計(jì)的角度來看,面向?qū)ο蟮某绦蛟O(shè)計(jì)語言必須有描述對(duì)象及其相互之間關(guān)系的語言成分。這些程序設(shè)計(jì)語言可以歸納為以下幾類:系統(tǒng)中一切皆為對(duì)象;對(duì)象是屬性及其操作的封裝體;對(duì)象可按其性質(zhì)劃分為類,對(duì)象成為類的實(shí)例;實(shí)例關(guān)系和繼承關(guān)系是對(duì)象之間的靜態(tài)關(guān)系;消息傳遞是對(duì)象之間動(dòng)態(tài)聯(lián)系的唯一形式,也是計(jì)算的唯一形式;方法是消息的序列。
面向?qū)ο蟮姆椒▽W(xué)包括了以下核心概念: 對(duì)象(object):即指現(xiàn)實(shí)世界中各種各樣的實(shí)體。它可以指具體的事物也可以指抽象的事物。類(class):類是具有相似內(nèi)部狀態(tài)和運(yùn)動(dòng)規(guī)律的實(shí)體的集合(或統(tǒng)稱、抽象)。類的概念來自于人們認(rèn)識(shí)自然、認(rèn)識(shí)社會(huì)的過程。
消息(Message): 消息是指對(duì)象間相互聯(lián)系和相互作用的方式。一個(gè)消息主要由5部分組成:發(fā)送消息的對(duì)象、接收消息的對(duì)象、消息傳遞辦法、消息內(nèi)容(參數(shù))、反饋。封裝:對(duì)象間的相互聯(lián)系和相互作用過程主要通過消息機(jī)制得以實(shí)現(xiàn)。對(duì)象之間并不需要過多的了解對(duì)方內(nèi)部的具體狀態(tài)或運(yùn)動(dòng)規(guī)律。面向?qū)ο蟮念愂欠庋b良好的模塊,類定義將其說明(用戶可見的外部接口)與實(shí)現(xiàn)(用戶不可見的內(nèi)部實(shí)現(xiàn))顯式地分開,其內(nèi)部實(shí)現(xiàn)按其具體定義的作用域提供保護(hù)。類是封裝的最基本單位。封裝防止了程序相互依賴性而帶來的變動(dòng)影響。在類中定義的接收對(duì)方消息的方法稱為類的接口。
繼承:類之間的繼承關(guān)系是現(xiàn)實(shí)世界中遺傳關(guān)系的直接模擬,它表示類之間的內(nèi)在聯(lián)系,以及對(duì)屬性和操作的共享,即子類可以沿用父類的某些特征。重載:重載是指類的同名方法在給其傳遞不同的參數(shù)是可以有不同的運(yùn)動(dòng)規(guī)律。在對(duì)象間相互作用時(shí),即使接收消息對(duì)象采用相同的接收辦法,但消息內(nèi)容的詳細(xì)程度不同,接收消息對(duì)象內(nèi)部的運(yùn)動(dòng)規(guī)律也可能不同。2 關(guān)于UML
UML(Unified Modeling Language)是在Booch方法、OOSE方法和OMT方法的基礎(chǔ)上演化而來的基于面向?qū)ο蠹夹g(shù)的標(biāo)準(zhǔn)建模語言。它統(tǒng)一了面向?qū)ο蠼5幕靖拍睢⑿g(shù)語和圖示符號(hào),描述了建模過程中所必須遵循的基本步驟,提供了一整套描述軟件系統(tǒng)模型的概念和圖形表示法,可從不同的視角為系統(tǒng)建模。統(tǒng)一建模語言UML是一種語義豐富、通用、可視化的建模語言和事實(shí)上的國際工業(yè)標(biāo)準(zhǔn),易于理解和交流。UML提供的豐富的視圖從多個(gè)視角描述系統(tǒng)的不同側(cè)面,可以有效運(yùn)用于軟件的建模、分析與設(shè)計(jì)。標(biāo)準(zhǔn)建模語言UML的定義包括UML語義和UML表示法兩個(gè)部分。UML語義通過其元模型來嚴(yán)格地定義。UML表示法定義UML符號(hào)的表示法,為開發(fā)者或開發(fā)工具使用這些圖形符號(hào)和文本語法來建模提供標(biāo)準(zhǔn)。這些圖形符號(hào)和文字所表達(dá)的是應(yīng)用級(jí)的模型,在語義上它是UML元模型的實(shí)例。UML的主要內(nèi)容通常用用例圖、類圖、對(duì)象圖、狀態(tài)圖、活動(dòng)圖、構(gòu)件圖、配置圖、順序圖、協(xié)作圖和包圖等l0種圖來描述,它們從不同的角度和層次為系統(tǒng)建模提供支持,完全可以描述系統(tǒng)的方方面面。
與傳統(tǒng)的軟件建模方法相比, UML 有如下一些特點(diǎn):(1)UML 是一個(gè)可視化建模語言, 是一種圖形化的面向?qū)ο蟮脑O(shè)計(jì)工具語言,而不是可視化程序設(shè)計(jì)語言,但用UML描述的模型可與各種編程語言直接相連,把UML 模型映射成編程語言。在不同程序中使用同樣的UML 圖表類型, 因?yàn)閁ML 具有任意程序的獨(dú)立性,定義一個(gè)標(biāo)準(zhǔn)程序不是一個(gè)UML 的目標(biāo)。
(2)UML 是一種可用于詳細(xì)描述的語言,其所建立的模型是精確、無歧義和完整的。同時(shí)UML是一種文檔化的語言,對(duì)其各建模元素可進(jìn)行詳細(xì)說明,并能生成所建模型的文檔。標(biāo)準(zhǔn)建模語言UML支持面向?qū)ο蟮姆治雠c設(shè)計(jì),定義良好、易于表達(dá)、功能強(qiáng)大。它的最大用途是利用圖形來描述真實(shí)世界各個(gè)對(duì)象的符合表示,讓所有系統(tǒng)設(shè)計(jì)者在構(gòu)建系統(tǒng)需求分析、對(duì)象模型化定義到對(duì)象設(shè)計(jì)的整個(gè)開發(fā)過程完全標(biāo)準(zhǔn)化。3 本課題的研究意義
一個(gè)圖書館的圖書資料庫在正常運(yùn)轉(zhuǎn)中總是面對(duì)大量的讀者信息、書籍信息以及兩者相互作用產(chǎn)生的借書信息、還書信息。圖書館作為一個(gè)信息資源的集散地,圖書和用戶借閱資料繁多,包含著很多的信息數(shù)據(jù)。以前對(duì)信息管理的主要方式是基于文本、表格等紙介質(zhì)的手工處理,對(duì)于圖書借閱情況(如借書天數(shù)、超過限定借書時(shí)間的天數(shù))的統(tǒng)計(jì)和核實(shí)等往往采用人工檢查,對(duì)借閱者的借閱權(quán)限以及借閱天數(shù)等采用人工計(jì)算、手抄進(jìn)行,數(shù)據(jù)信息處理工作量大,容易出錯(cuò)和丟失。因此,建立一個(gè)智能化、系統(tǒng)化、信息化的圖書資料庫是十分重要的。使用計(jì)算機(jī)軟件對(duì)圖書進(jìn)行管理,是計(jì)算機(jī)應(yīng)用的一部分。充分利用計(jì)算機(jī)的功能,實(shí)現(xiàn)對(duì)讀者管理、書籍管理等自動(dòng)化控制,將會(huì)使圖書資料庫的工作強(qiáng)度大大減弱,可以實(shí)現(xiàn)圖書檢索迅速、可靠性高、存儲(chǔ)量大、壽命長、成本低,能最大限度地提高圖書管理的效率,也是圖書管理信息化、正規(guī)化管理的必然趨勢(shì)。4 基于UML的圖書管理系統(tǒng)的需求分析與設(shè)計(jì)過程 圖書管理系統(tǒng)的開發(fā)和應(yīng)用主要通過兩個(gè)步驟來實(shí)現(xiàn):首先是基于系統(tǒng)功能的需求分析,其次是系統(tǒng)模型的設(shè)計(jì)和實(shí)現(xiàn)。4.1需求分析
需求分析是軟件工程過程的一個(gè)重要階段,其中一個(gè)主要任務(wù)是確定系統(tǒng)的功能需求,采用面向?qū)ο蠓椒?基于UML的可視化系統(tǒng)需求分析,因?yàn)橛杏脩舻姆e極參與,既可以加快設(shè)計(jì)者對(duì)于問題的理解,又能夠在系統(tǒng)描述方面減少語義差異,保證分析的正確性。需求分析的目標(biāo)就是建立需求模型,即從功能需求出發(fā)建立用例模型, UML的用例視圖從用戶的需求中提取,以盒圖的方式描述待開發(fā)的系統(tǒng)的功能需求。每個(gè)用例都指定了客戶的需求即他們需要系統(tǒng)干什么。用例圖為設(shè)計(jì)活動(dòng)不僅記錄需求而且還提供了一種挖掘的信息, 它記錄了需求到設(shè)計(jì)結(jié)果之間的映射關(guān)系,能夠確保設(shè)計(jì)結(jié)果具有明確的根據(jù)或者說具有可維護(hù)性,基于UML的軟件開發(fā)過程是以用例驅(qū)動(dòng)的。
首先我們進(jìn)行角色識(shí)別,角色識(shí)別的任務(wù)是找出所有可能與系統(tǒng)發(fā)生交互行為的外部實(shí)體、對(duì)象、系統(tǒng)。它們的行為不受系統(tǒng)控制,但是可以提供輸入給系統(tǒng)。對(duì)于一所大學(xué)的圖書管理系統(tǒng),基本的功能是完成圖書的借閱和相關(guān)信息的管理,服務(wù)的對(duì)象有本科生,研究生,教師,及其他學(xué)校的學(xué)生,還有社會(huì)人員,這些人可歸結(jié)為一類即讀者。而為幫助讀者順利完成借還書的可以是工作人員,可以是自動(dòng)借還書機(jī),他們可以歸結(jié)為一類即圖書管理人員。因此對(duì)于一個(gè)圖書管理系統(tǒng)主要有兩類角色,讀者、圖書管理員。
其次,在主要角色的基礎(chǔ)上,可以識(shí)別出與角色相應(yīng)的用例,從而得到系統(tǒng)的用例模型。與讀者相關(guān)的過程包括:借書、還書、預(yù)定、圖書信息檢索、借閱查詢(如查詢本人借書記錄、還書期限、是否超期)、個(gè)人相關(guān)信息查詢及修改(如學(xué)號(hào)、姓名、性別、年級(jí)、專業(yè)、家庭住址、聯(lián)系電話、出生日期、民族、政治面貌、身份證號(hào)等)。與圖書管理員相關(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)
綜上所述一個(gè)圖書管理系統(tǒng)的整體結(jié)構(gòu)可以分為三大模塊:圖書管理模塊、讀者管理模塊、系統(tǒng)管理模塊。
(1)圖書管理模塊包括與圖書相關(guān)的一些過程,主要有圖書的借出、圖書的歸還、預(yù)定、圖書信息檢索、圖書訂購、圖書相關(guān)信息管理。
(2)讀者管理模塊主要包括與讀者有聯(lián)系相關(guān)的過程,主要有增加/刪除讀者、修改讀者權(quán)限及密碼、借閱信息查詢、個(gè)人信息查詢及修該、借閱超期和丟失罰款。(3)系統(tǒng)管理模塊包括系統(tǒng)的登陸、退出、系統(tǒng)維護(hù)、系統(tǒng)更新。綜上我們畫出系統(tǒng)的整體結(jié)構(gòu),如圖一所示:
圖一 圖書管理系統(tǒng)的整體結(jié)構(gòu) 4.3 圖書管理系統(tǒng)的用例圖
從以上分析中我們不難得出系統(tǒng)的基本用例圖,如圖二所示:
圖二系統(tǒng)的基本用例圖
圖書管理和圖書管理是圖書管理系統(tǒng)的重要組成部分,為此我們按照前文所述將圖書管理模塊和讀者模塊以及系統(tǒng)管理模塊詳細(xì)精化得出如下的用例圖,如圖
三、圖
四、圖五所示:
圖三 圖書管理模塊的用例圖
圖四讀者管理用例圖
圖五系統(tǒng)管理模塊的用例圖 4.4 圖書管理系統(tǒng)的行為圖 我們?cè)龠M(jìn)行動(dòng)態(tài)建模分析。對(duì)于圖書管理系統(tǒng)借書還書是兩個(gè)重要的過程,我們先來分析一下借書、還書的一般過程,并由借書的一般過程畫出其順序圖、協(xié)作圖以及活動(dòng)圖。
(1)借書的過程:讀者刷卡進(jìn)入圖書館,或者先查詢圖書及個(gè)人借閱信息,或者直接去挑選圖書,選擇好圖書后進(jìn)入借書程序,管理員先檢查讀者的借書證件,查驗(yàn)?zāi)芊窠栝啠热纾鹤C件是否無效或書籍是否已經(jīng)借滿等,即檢驗(yàn)其借書的合法性和有效性,如果是非法用戶或借書數(shù)量范圍外,則該讀者不能借閱圖書。如果滿足借閱要求,則再獲取所借書的標(biāo)題以進(jìn)行庫內(nèi)搜索,獲取書目查詢此書的數(shù)量,看是否還有此書,如果沒有則阻止其他借書者可能進(jìn)行的預(yù)訂活動(dòng),將此書借出,根據(jù)書號(hào)將此書的借閱標(biāo)志位取反以表示此書已借出,并將此書的書目減1。并為此讀者記錄借閱日期,以及歸還日期,在歸還日期內(nèi)未能歸還和續(xù)借的,并為其記錄超借天數(shù)及罰款數(shù)額。
(2)還書過程:在返還圖書的過程中,管理員首先獲取讀者的借閱信息和被歸還的書籍的信息,如書標(biāo)題信息,數(shù)量等,并一一審核每本書的歸還日期是否超過應(yīng)歸還日期。在完成階段,將此書的書號(hào)登記并設(shè)計(jì)標(biāo)志位為已歸還,以便讀者網(wǎng)上預(yù)訂和繼續(xù)借閱,同時(shí)將此類圖書的數(shù)量加1,如果讀者超期或丟失所借書籍,則要進(jìn)行賠償處理。所以我們不難畫出借書一般過程的順序圖,如圖六所示:
圖六借書一般過程的順序圖
有順序圖可得到協(xié)作圖,如圖七所示。仔細(xì)分析借書過程的細(xì)節(jié),可以畫出如圖八所示的活動(dòng)圖,它表示了復(fù)雜算法的過程,尤其是過程中的判斷、并發(fā)和同步。
圖七借書一般過程的協(xié)作圖
以上我們用多種語言機(jī)制分析了讀者的主要相關(guān)事件流,下面我們繪制圖書管理員使用系統(tǒng)的狀態(tài)圖分析圖書管理員的主要事件流。從以上分析可知,圖書管理員相關(guān)的過程包括:辦理借書、辦理還書、解除預(yù)定、圖書訂購、讀者信息管理(增加/刪除讀者、修改讀者權(quán)限及密碼、借閱超期罰款)、圖書信息管理(增加/刪除數(shù)目、圖書類別等相關(guān)信息的修改、流通情況)。由此我們可繪制如圖九所示的圖書管理員使用系統(tǒng)的狀態(tài)圖:
圖九圖書管理員使用系統(tǒng)的狀態(tài)圖 4.5 圖書管理系統(tǒng)的靜態(tài)圖 定義并描述了各個(gè)類后,我們可以根據(jù)實(shí)際情況引入包來管理類,本圖書館管理系統(tǒng)可以劃分為四個(gè)包:用戶管理:對(duì)系統(tǒng)用戶進(jìn)行管理,為用戶提供信息服務(wù)接口,便于對(duì)系統(tǒng)進(jìn)行操作。借閱管理包括借書處理,還書處理和罰款處理等。讀者管理包括對(duì)讀者圖書等信息進(jìn)行維護(hù),主要有讀者信息的增刪,對(duì)圖書更新資料進(jìn)行維護(hù)。系統(tǒng)服務(wù):包括系統(tǒng)登錄檢查,安全維護(hù)等。系統(tǒng)的包圖如圖十所示:
圖十系統(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)的軟件文檔,建立一個(gè)可執(zhí)行系統(tǒng)。進(jìn)而需要對(duì)系統(tǒng)進(jìn)行測試和排錯(cuò),保證系統(tǒng)符合預(yù)定的要求,獲得一個(gè)無錯(cuò)的系統(tǒng)實(shí)現(xiàn)。測試結(jié)果將確認(rèn)所完成的系統(tǒng)可以真正使用。參考文獻(xiàn)
[1] 齊治昌.譚慶平.寧洪.軟件工程.北京:高等教育出版社 [2] 張海藩.軟件工程.北京:人民郵電出版社
[3] 董翔.基于UML的圖書管理系統(tǒng)的開發(fā)和應(yīng)用.科技情報(bào)開發(fā)與經(jīng)濟(jì)2008年第l8卷第l2期
[4] 吳開華.邢養(yǎng)曉.羅德撤.數(shù)字圖書館元數(shù)據(jù)研究[J].中國圖書館學(xué)報(bào),2002,(3). [5] 劉治國.構(gòu)建基于B/S結(jié)構(gòu)的圖書管理系統(tǒng)[J].信息技術(shù),2005(3):72—73. [6] 管斌.袁國忠譯.用例驅(qū)動(dòng)的UML對(duì)象建模應(yīng)用-范例分析.北京:人民郵電出版社 結(jié)束語
本文以一個(gè)圖書館圖書管理系統(tǒng)開發(fā)為背景,針對(duì)圖書館對(duì)圖書資源進(jìn)行有效利用和管理的功能需求,采用統(tǒng)一建模語言(UML)對(duì)圖書資源進(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)勢(shì),不但從整體上正確描述了該圖書管理系統(tǒng)的體系結(jié)構(gòu),并且可以充分利用UML面向?qū)ο蟮膬?yōu)勢(shì),從而實(shí)現(xiàn)整個(gè)軟件系統(tǒng)面向?qū)ο蟮姆治觥⒃O(shè)計(jì)與開發(fā),大大縮短開發(fā)周期,最終使得項(xiàng)目成功完成,此管理系統(tǒng)節(jié)省了管理人員和讀者的大量時(shí)間,有利于信息處理效率的提高。鑒于篇幅有限,本文只對(duì)主要部分和主要過程做了介紹,限于水平,歡迎各位讀者對(duì)本文的缺點(diǎn)、錯(cuò)誤提出批評(píng)。
第四篇:圖書管理系統(tǒng)UML分析與設(shè)計(jì)
1.系統(tǒng)需求
系統(tǒng)的功能性需求描述如下:
·
圖書管理系統(tǒng)為管理員提供主功能界面。
·
圖書管理系統(tǒng)在啟動(dòng)時(shí)要求管理員輸人口令,只有口令正確,才可以進(jìn)入系統(tǒng)的主功能界面。
·
管理員負(fù)責(zé)對(duì)圖書管理系統(tǒng)的維護(hù)工作,因此系統(tǒng)應(yīng)賦予管理員對(duì)圖書信息、讀者信息和出版社信息進(jìn)行錄入、修改、查詢和刪除等功能的操作權(quán)限。
·
管理員作為讀者的代理實(shí)現(xiàn)借書與還書業(yè)務(wù)。
·
圖書信息、讀者信息和出版社信息保存在對(duì)應(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ī)格說明書如下:
·
這是一個(gè)圖書館圖書借閱管理的應(yīng)用系統(tǒng);
·
圖書管理系統(tǒng)負(fù)責(zé)將圖書、雜志借給讀者,前提條件是這些讀者在系統(tǒng)進(jìn)行了注冊(cè),圖書和雜志也在系統(tǒng)中進(jìn)行了注冊(cè);
·
圖書館負(fù)責(zé)新書的購買,當(dāng)書和雜志已經(jīng)過時(shí)或者破舊不堪時(shí),可以將這些圖書和雜志從圖書館管理系統(tǒng)中刪除;
·
圖書管理員是圖書館的員工,負(fù)責(zé)與讀者打交道,并且是在系統(tǒng)提供的支持下開展工作;
·
圖書管理系統(tǒng)能夠容易地建立、修改和刪除系統(tǒng)中的信息,包括圖書信息、讀者信息、以及出版社信息等;
·
圖書管理系統(tǒng)能夠在所有流行的平臺(tái)環(huán)境(windows,uNIx等操作系統(tǒng))上運(yùn)行,并具有一個(gè)美觀的圖書用戶界面;
·
圖書管理系統(tǒng)容易擴(kuò)展新功能。
2.分析建模
? Use case diagram 分析
采用下列描述項(xiàng)撰寫用例的腳本。
· 用例名稱——表明用戶的意圖或用例的用途。
· 參與者——與該用例相關(guān)的參與者列表。
· 前置條件——一個(gè)條件列表,如果其中包含條件,則這些條件必須在訪問用例之前得到滿足。
· 后置條件——一個(gè)條件列表,如果其中包含條件,則這些條件將在用例完成以后得到滿足。
· 基本事件流——描述用例中各項(xiàng)活動(dòng)都正常進(jìn)行時(shí)用例的工作方式。
· 分支事件流——描述用例中某項(xiàng)活動(dòng)的子活動(dòng)各項(xiàng)工作都正常進(jìn)行時(shí)用例的工作式。
· 異常事件流——描述用例的變更工作方式,以及出現(xiàn)異常或發(fā)生錯(cuò)誤的情況下所執(zhí)行的路徑。
圖書管理系統(tǒng)中每個(gè)用例的腳本描述如下:
1.系統(tǒng)登錄
用例名稱:系統(tǒng)登錄
參與者:圖書管理員 1.1前置條件 無
1.2后置條件
如果用例成功,參與者可以啟動(dòng)系統(tǒng),使用系統(tǒng)提供的功能。反之,系統(tǒng)的狀態(tài)不發(fā)生變化。
1.3基本事件流
當(dāng)圖書管理員登錄系統(tǒng)時(shí),用例啟動(dòng)。
①系統(tǒng)提示用戶輸入用戶名和密碼。
②用戶輸入用戶名和密碼。
③系統(tǒng)驗(yàn)證輸入的用戶名和密碼,若正確,則用戶登錄到系統(tǒng)中。
1.4異常事件流
如果用戶輸入無效的用戶名/密碼,則系統(tǒng)顯示錯(cuò)誤信息。用戶可以選擇返回基本事件流的起始點(diǎn),重新輸入正確的用戶名/密碼;或者取消登錄,用例結(jié)束。
2.圖書借閱
用例名稱:借閱圖書
參與者:讀者,圖書管理員 2.1前置條件
在這個(gè)用例開始之前,圖書管理員必須登錄到系統(tǒng);否則,系統(tǒng)的狀態(tài)不發(fā)生變化。
2.2后置條件
如果這個(gè)用例成功實(shí)現(xiàn),則在系統(tǒng)中創(chuàng)建并存儲(chǔ)借閱記錄。2.3基本事件流
當(dāng)讀者借閱圖書時(shí),用例啟動(dòng)。
①登錄系統(tǒng)。
②輸人圖書ID和讀者ID。
③檢索讀者ID。
④檢索圖書ID。
⑤根據(jù)時(shí)間算法確定圖書借出日期和歸還日期。
⑥圖書館將圖書借給讀者。
⑦創(chuàng)建借閱記錄。
⑧存儲(chǔ)借閱記錄。2.4異常事件流
①如果讀者未注冊(cè),則系統(tǒng)顯示提示信息,用例被終止。
②如果要借圖書不存在,系統(tǒng)顯示提示信息,用例被終止。
③如果要借圖書都已借出,則系統(tǒng)提示信息,用例被終止。3.圖書歸還
用例名稱:圖書歸還
參與者:讀者,圖書管理員 3.1前置條件
在這個(gè)用例開始之前,圖書管理員必須登錄到系統(tǒng);否則,系統(tǒng)的狀態(tài)不發(fā)生變化。
3.2后置條件
如果這個(gè)用例成功實(shí)現(xiàn),則系統(tǒng)刪除借閱記錄;否則,系統(tǒng)的狀態(tài)不發(fā)生變化。3.3基本事件流
當(dāng)讀者歸還借閱的圖書時(shí),用例被啟動(dòng)。
①登錄系統(tǒng)。
②輸入圖書ID和讀者ID。③檢索圖書ID。
④檢索讀者ID。
⑤查詢圖書借閱記錄。⑥刪除借閱記錄。3.4異常事件流
①如果歸還圖書不存在,則系統(tǒng)顯示提示信息,用例被終止。②如果借閱記錄不存在,則系統(tǒng)顯示提示信息,用例被終止。4.讀者維護(hù)
用例名稱:讀者維護(hù) ‘ 參與者:圖書管理員 ’ 4.1前置條件
在這個(gè)用例開始之前,圖書管理員必須登錄到系統(tǒng);否則,系統(tǒng)的狀態(tài)不發(fā)生變化。4.2后置條件
如果這個(gè)用例成功地實(shí)現(xiàn),則系統(tǒng)添加、修改或檢索讀者信息;否則,系統(tǒng)的狀態(tài)不發(fā)生變化。
4.3基本事件流
當(dāng)圖書管理員維護(hù)讀者信息時(shí),用例被啟動(dòng)。①登錄系統(tǒng)。
②如果選擇的活動(dòng)是“添加讀者信息”,則執(zhí)行分支事件流4.3.1:添加讀者信息。③如果選擇的活動(dòng)是“修改讀者信息”,則執(zhí)行分支事件流4.3.2:修改讀者信息。④如果選擇的活動(dòng)是“檢索讀者信息”,則執(zhí)行分支事件流4.3.3:檢索讀者信息。4.3.1分支事件流
①提供讀者的信息,例如,讀者ID,讀者姓名、電話號(hào)碼等。②系統(tǒng)存儲(chǔ)讀者信息。4.3.2分支事件流 ①輸入讀者ID。
②查詢并顯示讀者信息。③更新系統(tǒng)中讀者信息。4.3.3分支事件流 ①輸入讀者ID。
②查詢并顯示讀者信息。4.4異常事件流
①如果讀者已經(jīng)存在,則系統(tǒng)顯示提示信息,用例被終止。②如果查詢不到讀者,則系統(tǒng)顯示提示信息,用例被終止。5.圖書維護(hù)
用例名稱:圖書維護(hù) 參與者:圖書管理員 5.1前置條件
在這個(gè)用例開始之前,圖書管理員必須登錄到系統(tǒng);否則,系統(tǒng)的狀態(tài)不發(fā)生變化。5.2后置條件
如果這個(gè)用例成功實(shí)現(xiàn),則系統(tǒng)添加、修改或檢索圖書信息;否則,系統(tǒng)的狀態(tài)不發(fā)生變化。
5.3基本事件流
當(dāng)圖書管理員維護(hù)圖書信息時(shí),用例被啟動(dòng)。①登錄系統(tǒng)。
②如果選擇的活動(dòng)是“添加圖書信息”,則執(zhí)行分支事件流5.3.1:添加圖書信息。③如果選擇的活動(dòng)是“修改圖書信息”,則執(zhí)行分支事件流5.3.2:修改圖書信息。④如果選擇的活動(dòng)是“檢索圖書信息”,則執(zhí)行分支事件流5.3.3:檢索圖書信息。5.3.1分支事件流
①提供圖書的信息,例如,圖書ID,圖書名稱、編著者、出版社、價(jià)格、出版年份籌 ②系統(tǒng)存儲(chǔ)圖書信息。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.圖書表類
編號(hào):A—l一0l
類名:圖書表
職責(zé):存放圖書館所能處理的所有圖書的基本信息
屬性:圖書代號(hào),圖書名稱,編著者,ISBN代碼,出版社代碼,出版年份,頁數(shù),價(jià)格,購入日期,過期日期,書架代碼,備注
說明:該類存放所有圖書類的公用信息,它是“圖書借閱表”的父類。圖書也有身份,可以通過不同的ISBN相區(qū)別。在圖書管理系統(tǒng)中,圖書也有相關(guān)的行為,圖書因?yàn)槭褂闷谙薜瓤梢员讳N毀,所以圖書表也是系統(tǒng)中的一個(gè)對(duì)象。
2.登錄圖書界面類
編號(hào):A一1—02
類名:登錄圖書界面
職責(zé):提供輸入所有圖書信息的界面
屬性:圖書代號(hào),圖書名稱,編著者,ISBN代碼,出版社代碼,出版年份,頁數(shù),價(jià)格,購入日期,過期日期,書架代碼,備注
說明:該類的所有屬性是非持久性的,但它為用戶保存永久性的圖書屬性提供了一個(gè)臨時(shí)的輸入接口。
3.登錄圖書信息控制類
編號(hào):A—l—03
類名:登錄圖書信息控制類
職責(zé):實(shí)現(xiàn)登錄圖書界面類與圖書表類所提供信息的交互。
屬性:圖書代號(hào),圖書名稱,編著者,ISBN代碼,出版社代碼,出版年份,頁數(shù),價(jià) 格,購人日期,過期日期,書架代碼,備注
說明:該類的所有屬性是非持久性的,但它為用戶保存永久性的圖書屬性提供了一 個(gè)臨時(shí)的輸人接口。
4.出版社表類
編號(hào):B—l—01
類名:出版社表
職責(zé):存放圖書表所使用的所有圖書的出版單位
屬性:出版社代碼,出版社名稱
說明:該類與出版社表之間存在著單向關(guān)聯(lián)的關(guān)系。
5.讀者表類
編號(hào):C一1一Ol
類名:讀者表
職責(zé):存放圖書館的所有讀者的基本信息
屬性:讀者代碼,讀者名,聯(lián)絡(luò)電話
說明:該類類描述了物理借閱者的信息,代表了系統(tǒng)中存儲(chǔ)的物理借閱者的信息,即物理借閱者在系統(tǒng)中的賬戶。同時(shí),讀者表又是圖書借閱表的組成成分之一。
6.圖書借閱表類
編號(hào):D—l—01
類名:圖書借閱表
職責(zé):存放圖書館所能處理的所有圖書的基本信息
屬性:圖書代號(hào),讀者代號(hào),借書日期,還書日期,說明:該類描述了從圖書館借閱圖書的借閱記錄。一個(gè)該類的對(duì)象對(duì)應(yīng)一個(gè)借閱者和一本圖書。該類的對(duì)象的存在表示借閱者借閱了借閱記錄中記錄的物理圖書。當(dāng)圖書被歸還時(shí),要?jiǎng)h除借閱記錄(對(duì)象)。
? 形成系統(tǒng)分析規(guī)約(注意規(guī)約可能會(huì)有活動(dòng)圖、狀態(tài)圖等)
3.系統(tǒng)設(shè)計(jì)
設(shè)計(jì)模型的主要工作: 1).軟件平臺(tái)設(shè)計(jì)
軟件平臺(tái)是系統(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平臺(tái)——采用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ì)是把軟件分解成為多個(gè)子系統(tǒng),并確定出由各子系統(tǒng)及其接口構(gòu)成的軟件結(jié)構(gòu)。子系統(tǒng)是對(duì)軟件分解的一種中間形式,也是組織和描述軟件的一種方法。由多個(gè)子系統(tǒng)構(gòu)成系統(tǒng)軟件,每一個(gè)子系統(tǒng)又包括多個(gè)用例設(shè)計(jì)、設(shè)計(jì)類和接口。結(jié)構(gòu)設(shè)計(jì)具體要做的工作是將系統(tǒng)劃分成相對(duì)獨(dú)立、功能相對(duì)完整的子系統(tǒng)(包),將系統(tǒng)模型中的元素劃分到不同的包中,說明在什么地方定義包,各個(gè)包之間的依賴性和主要通信機(jī)制。從而得到盡可能簡單和清晰的結(jié)構(gòu),各部分之間的依賴盡可能的少,并盡量減少雙向的依賴關(guān)系。3).詳細(xì)設(shè)計(jì)與界面設(shè)計(jì)
詳細(xì)設(shè)計(jì)是對(duì)軟件結(jié)構(gòu)中確定出的各個(gè)子系統(tǒng)內(nèi)部的設(shè)計(jì),需要分析和確定每一個(gè)子系統(tǒng)中的用例設(shè)計(jì)、設(shè)計(jì)類和接口。詳細(xì)設(shè)計(jì)還要描述每個(gè)類的細(xì)節(jié),并用動(dòng)態(tài)模型描述類的實(shí)例在具體環(huán)境中的行為。
界面設(shè)計(jì)是對(duì)人和外部系統(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)存儲(chǔ)和管理數(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個(gè)階段。用UML進(jìn)行數(shù)據(jù)庫設(shè)計(jì)的主要思想,是利用UML的擴(kuò)展機(jī)制定義一些版型,用于表示與數(shù)據(jù)庫相關(guān)的一些概念。Rose 2003提供了對(duì)數(shù)據(jù)庫設(shè)計(jì)的支持,所設(shè)計(jì)的模型可以直接生成具體數(shù)據(jù)庫中的表、觸發(fā)器、存儲(chǔ)過程等。
? 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
系統(tǒng)框架視圖
· 用戶界面包(User Interface Package)——用于描述整個(gè)用戶界面使用的類,這些類提供的操作允許用戶瀏覽系統(tǒng)中的數(shù)據(jù),允許用戶輸入新數(shù)據(jù)。用戶界面類基于Java AWT包設(shè)計(jì),AWT包是Java語言中用于編寫用戶界面應(yīng)用程序的一個(gè)標(biāo)準(zhǔn)庫。用戶界面包與業(yè)務(wù)模型包相互協(xié)作,調(diào)用業(yè)務(wù)模型包中類實(shí)例的方法對(duì)圖書信息進(jìn)行檢索和插入操作。
。業(yè)務(wù)模型包(Business Model Package)——包含分析階段主要的類(借閱圖書類、歸還圖書類、圖書類、讀者類、出版社類)。在設(shè)計(jì)階段將進(jìn)一步細(xì)化這些類,從而完整地定義它們的操作,并為它們?cè)黾佑谰眯源鎯?chǔ)支持。業(yè)務(wù)模型包與數(shù)據(jù)庫包相互協(xié)作,訪問數(shù)據(jù)庫中的數(shù)據(jù)。· 數(shù)據(jù)庫包(Database Package)——為業(yè)務(wù)模型包中的類提供數(shù)據(jù)存取服務(wù),以便這些類能夠?qū)崿F(xiàn)數(shù)據(jù)的永久性存儲(chǔ)功能。
。組件包(Utility Package)——包含一些可以被系統(tǒng)中其他包所使用的服務(wù)。
? 界面設(shè)計(jì)
? 詳細(xì)設(shè)計(jì)
圖書信息管理詳細(xì)設(shè)計(jì):
1.設(shè)計(jì)類圖
“圖書信息管理’’是一個(gè)用例,在“圖書信息管理”用例所提取的3個(gè)概念類的基礎(chǔ)上,可以確定該用例有3個(gè)設(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)用例的功能,每個(gè)用例要實(shí)現(xiàn)的功能要通過用例中各個(gè)類的對(duì)象的操作的相互協(xié)作完成,這就要在順序圖或協(xié)作圖中反映各個(gè)對(duì)象之間的消息調(diào)用過程。如圖13.3所示為添加的圖書ID不重復(fù)的情況下“登錄圖書信息”用例的順序圖。
“登錄圖書信息”順序圖
3.屬性和方法設(shè)計(jì)
用例設(shè)計(jì)中識(shí)別出了大量的設(shè)計(jì)類,接下來要詳細(xì)地設(shè)計(jì)所識(shí)別出來的每一個(gè)設(shè)計(jì)類,即設(shè)計(jì)類的屬性和方法。屬性設(shè)計(jì)應(yīng)該注意的問題是:一要補(bǔ)充屬性分析時(shí)沒有考慮到的屬性,確定屬性的全部內(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ì);四是可以用程序流程圖或活動(dòng)圖來描述流程設(shè)計(jì)的結(jié)果。
如圖所示為添加了屬性和方法“圖書信息管理”用例的設(shè)計(jì)類圖。
添加屬性和方法后的“圖書信息管理”類圖
LoginBook類的屬性和方法設(shè)計(jì)如下:
·
sql屬性——定義執(zhí)行插人操作的SQL命令字符串。
·
chpublish_id屬性——定義出版社ID。
·
LoginBook()方法——類的構(gòu)造方法。①調(diào)用DbChoice類的對(duì)象實(shí)例,以實(shí)現(xiàn)加載JDBC驅(qū)動(dòng)程序,創(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類的對(duì)象實(shí)例,以實(shí)現(xiàn)加載JDBC驅(qū)動(dòng)程序,創(chuàng)建數(shù)據(jù)庫連接等功能;②提供檢索圖書界面。
·
checkSelect()方法——檢查是否輸入要檢索的圖書ID。
·
makeSelectStmt()方法——定義執(zhí)行檢索操作的SQL命令字符串。
·
setSelectedData()方法——顯示檢索圖書的結(jié)果。
·
clear()方法——清空?qǐng)D書檢索界面各檢索項(xiàng)。
UpdateBook類的屬性和方法設(shè)計(jì)如下:
·
sql屬性——定義執(zhí)行插入操作的SQL命令字符串。
·
chpublish_id屬性——定義出版社ID。
·
UpdateBook()方法——類的構(gòu)造方法。①調(diào)用DbChoice類的對(duì)象實(shí)例,以實(shí)現(xiàn)加載JDBC驅(qū)動(dòng)程序,創(chuàng)建數(shù)據(jù)庫連接等功能;②提供檢索圖書界面;③提供修改圖書功能。
·
checkSelect()方法——檢查是否輸人要檢索的圖書ID。
·
makeSelectStmt()方法——定義執(zhí)行檢索操作的SQL命令字符串。
·
setSelectedData()方法——顯示檢索圖書的結(jié)果。
·
clear()方法——清空?qǐng)D書修改界面各修改項(xiàng)。
·
checkUpdate()方法——檢查各修改項(xiàng)的修改格式是否正確。
·
makeUpdateStmt()方法——定義執(zhí)行修改操作的SQL命令字符串。
讀者信息管理詳細(xì)設(shè)計(jì): 1.設(shè)計(jì)類圖
“讀者信息管理”是一個(gè)用例,在“讀者信息管理”用例確定了3個(gè)概念類:添加讀者信息、修改讀者信息、檢索讀者信息。但是,該用例的功能相對(duì)比較簡單。可以用1個(gè)設(shè)計(jì)類Borrow實(shí)現(xiàn)這3個(gè)概念類的功能。如圖所示為“讀者信息管理”用例的設(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類的對(duì)象實(shí)例,以實(shí)現(xiàn)加載JDBC驅(qū)動(dòng)程序,創(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ì)類圖
“出版社信息管理”是一個(gè)用例,可以用1個(gè)設(shè)計(jì)類Publish實(shí)現(xiàn)添加出版社信息、修改出版社信息、檢索出版社信息3個(gè)概念類。如圖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類的對(duì)象實(shí)例,以實(shí)現(xiàn)加載JDBC驅(qū)動(dòng)程序,創(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ì)類圖
“圖書借還信息管理”是一個(gè)用例,在“圖書信息管理”用例所提取的4個(gè)概念類的基礎(chǔ)上,可以確定該用例有4個(gè)設(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類的對(duì)象實(shí)例,以實(shí)現(xiàn)加載JDBC驅(qū)動(dòng)程序,創(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類的對(duì)象實(shí)例,以實(shí)現(xiàn)加載JDBC驅(qū)動(dòng)程序,創(chuàng)建數(shù)據(jù)庫連接等功能;②提供圖書歸還界面。
· checkUpdate()方法——檢查各修改項(xiàng)的修改格式是否正確。
· makeUpdateStmt()方法——定義執(zhí)行修改操作的SQL命令字符串。· afterUpdate()方法——清空所有的文本框。BorrowBookList類的屬性和方法設(shè)計(jì)如下:
· sql屬性——定義執(zhí)行插入操作的SQL命令字符串。
· BorrowBookList()方法——類的構(gòu)造方法。①調(diào)用DbChoice類的對(duì)象實(shí)例,以實(shí)現(xiàn)加載JDBC驅(qū)動(dòng)程序,創(chuàng)建數(shù)據(jù)庫連接等功能;②提供實(shí)現(xiàn)“借出圖書一覽表”功能的界面。
· makeSelectStmt()方法——定義執(zhí)行檢索操作的SQL命令字符串。
· setSelectedData()方法——顯示檢索結(jié)果。OverdueList類的屬性和方法設(shè)計(jì)如下:
· sql屬性——定義執(zhí)行插入操作的SQL命令字符串。
· xOverdueList()方法——類的構(gòu)造方法。①調(diào)用DbChoice類的對(duì)象實(shí)例,以實(shí)現(xiàn)加載JDBC驅(qū)動(dòng)程序,創(chuàng)建數(shù)據(jù)庫連接等功能;②提供實(shí)現(xiàn)“未按期歸還圖書一覽表”功能的界面。
· makeSelectStmt()方法——定義執(zhí)行檢索操作的SQL命令字符串。
· setSelectedData()方法——顯示檢索結(jié)果。
組件包設(shè)計(jì):
組件包包含被所有其他包使用的通用組件,圖書管理系統(tǒng)的組件包由Const、DbChoice、BpUtil三個(gè)類組成,這三個(gè)類定義了系統(tǒng)所有其他類所使用的公共常量與公共方法。另外,IconCanvas(加載系統(tǒng)界面所使用的圖標(biāo))、MsgDialog(信息顯示對(duì)話框)、SQLExceptionDialog(顯示數(shù)據(jù)庫異常信息對(duì)話框)3個(gè)類也為系統(tǒng)所有其他類所公共使用。在此與組件包中的類一起進(jìn)行說明。1.Const類
Const類定義了系統(tǒng)所使用的公共名稱等常量,其類圖如圖所示。
Const類的類圖
2.BpUtil類
BpUtil類定義了系統(tǒng)使用的公共方法,其類圖如圖所示。
BpUtil類的類圖
BpUtil類的方法設(shè)計(jì)如下:
· repeateString()方法——返回指定個(gè)數(shù)的字符串對(duì)象。
· varchar2text()方法——返回按照指定長度調(diào)整的字符串對(duì)象。
· 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)證能否識(shí)別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)界面所使用的信息對(duì)話框功能,其類圖如圖13.19所 示。
MsgDialog類的類圖
MsgDialog類的屬性和方法設(shè)計(jì)如下:
· MsgDialog()方法——構(gòu)造方法,用于生成信息顯示區(qū)域,定義信息對(duì)話框的標(biāo)題、布局管理器等功能。
· actionPerformed()方法——用于處理發(fā)生的事件。
6.SQLExceptionDialog類
當(dāng)發(fā)生數(shù)據(jù)庫異常時(shí),SQLExceptionDialog類定義了用于顯示數(shù)據(jù)庫異常信息對(duì)話框,其類圖如圖所示。
SQLExceptionDialog類的類圖
SQLExceptionDialog類的屬性和方法設(shè)計(jì)如下:
· SQLExceptionDialog()方法——構(gòu)造方法,用于定義發(fā)生的SQL異常。· actionPerformed()方法——用于處理發(fā)生的事件。· setMessage()、方法——用于顯示發(fā)生的異常信息。系統(tǒng)管理詳細(xì)設(shè)計(jì):
系統(tǒng)管理由Bookplate和LoginDialog兩個(gè)類組成,Bookplate類用于顯示系統(tǒng)主功能界面,LoginDialog類用于顯示用戶登錄對(duì)話框界面。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)擊各功能按鈕時(shí),分別調(diào)用各個(gè)子功能系統(tǒng),同時(shí)實(shí)現(xiàn)生成、顯示和隱藏對(duì)應(yīng)的框架的功能。LoginDialog類的方法設(shè)計(jì)如下:
· LoginDialog()方法——構(gòu)造方法,用于設(shè)置用戶登錄對(duì)話框界面的標(biāo)題、顯示信息區(qū)域、設(shè)置標(biāo)簽和文本域、生成按鈕等功能。
· actionPerformed()——當(dāng)用鼠標(biāo)左鍵點(diǎn)擊功能按鈕時(shí),處理所觸發(fā)的事件。· getStatus()——返回按鈕的狀態(tài)值。· getUserID()——返回用戶ID。· getPassword()——返回用戶口令。
? 數(shù)據(jù)庫設(shè)計(jì)(表略)
? 完成設(shè)計(jì)規(guī)約
第五篇:汽車銷售系統(tǒng)需求分析
關(guān)于汽車銷售系統(tǒng)的需求分析:
隨著國內(nèi)汽車市場的不斷擴(kuò)大,各大4S店及汽車銷售公司對(duì)高效管理員工、車輛以及客戶信息的需求也顯得尤為迫切,希望可以有一套系統(tǒng)可以解決這個(gè)問題。
具體需求如下:
基本信息管理:員工信息、汽車廠商及型號(hào)、客戶信息
車輛銷售管理:車輛銷售、車輛出庫
車輛入庫管理:車輛采購、車輛入庫
車輛庫存管理:庫存車輛及其明細(xì)、銷售收益統(tǒng)計(jì)
銷售系統(tǒng)維護(hù):數(shù)據(jù)安全管理、權(quán)限管理
管理員登錄后,可以查詢規(guī)定日期內(nèi)的銷售記錄以及相應(yīng)的銷售員工和客戶信息(也可以按車輛型號(hào)進(jìn)行查詢),同時(shí)可以對(duì)庫存車輛的信息進(jìn)行增、刪、改。對(duì)入庫車輛進(jìn)行成本統(tǒng)計(jì),對(duì)出庫車輛進(jìn)行收益統(tǒng)計(jì)
客戶登錄后,可以查詢各個(gè)廠商及型號(hào)車輛的基本信息
員工信息(工號(hào),姓名,性別,電話)
廠商信息(編號(hào),名稱,電話,地址)
車輛信息(編號(hào),型號(hào),廠商,進(jìn)價(jià),售價(jià),顏色,排量,庫存量)
客戶信息(客戶號(hào),姓名,電話)
銷售【訂單號(hào),交易日期,客戶號(hào),工號(hào),汽車編號(hào),交易價(jià)】
入庫【汽車編號(hào),入庫日起,進(jìn)價(jià),數(shù)量,銷售收益統(tǒng)計(jì)】