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