第一篇:基于UML的圖書管理系統的需求分析與設計
基于UML的圖書管理系統的需求分析與設計
摘要:本文對面向對象的概念、UML產生的背景及其基本內容進行了闡述,在對圖書館圖書管理系統進行功能描述和需求分析的基礎上,結合軟件工程和面向對象需求分析,設計了基于UML的用例圖、包圖和順序圖,狀態圖等語言機制的圖書館圖書管理系統模型。關鍵詞: UML;建模語言;面向對象;需求分析;圖書管理系統 1關于面向對象
面向對象是一種的程序設計方法,或者說它是一種程序設計類型,其基本思想是使用對象,類,繼承,封裝,消息等基本概念來進行程序設計。它是從現實世界中客觀存在的事物(即對象)出發來構造軟件系統,并在系統構造中盡可能運用人類的自然思維方式,強調直接以問題域(現實世界)中的事物為中心來思考問題,認識問題,并根據這些事物的本質特點,把它們抽象地表示為系統中的對象,作為系統的基本構成單位(而不是用一些與現實世界中的事物相關比較遠,并且沒有對應關系的其它概念來構造系統)。這可以使系統直接地映射問題域,保持問題域中事物及其相互關系的本來面貌。它可以有不同層次的理解:
(1)從世界觀的角度可以認為:面向對象的基本哲學是認為世界是由各種各樣具有自己的運動規律和內部狀態的對象所組成的;不同對象之間的相互作用和通訊構成了完整的現實世界。因此,人們應當按照現實世界這個本來面貌來理解世界,直接通過對象及其相互關系來反映世界。這樣建立起來的系統才能符合現實世界的本來面目。
(2)從方法學的角度可以認為:面向對象的方法是面向對象的世界觀在開發方法中的直接運用。它強調系統的結構應該直接與現實世界的結構相對應,應該圍繞現實世界中的對象來構造系統,而不是圍繞功能來構造系統。
(3)從程序設計的角度來看,面向對象的程序設計語言必須有描述對象及其相互之間關系的語言成分。這些程序設計語言可以歸納為以下幾類:系統中一切皆為對象;對象是屬性及其操作的封裝體;對象可按其性質劃分為類,對象成為類的實例;實例關系和繼承關系是對象之間的靜態關系;消息傳遞是對象之間動態聯系的唯一形式,也是計算的唯一形式;方法是消息的序列。
面向對象的方法學包括了以下核心概念: 對象(object):即指現實世界中各種各樣的實體。它可以指具體的事物也可以指抽象的事物。類(class):類是具有相似內部狀態和運動規律的實體的集合(或統稱、抽象)。類的概念來自于人們認識自然、認識社會的過程。
消息(Message): 消息是指對象間相互聯系和相互作用的方式。一個消息主要由5部分組成:發送消息的對象、接收消息的對象、消息傳遞辦法、消息內容(參數)、反饋。封裝:對象間的相互聯系和相互作用過程主要通過消息機制得以實現。對象之間并不需要過多的了解對方內部的具體狀態或運動規律。面向對象的類是封裝良好的模塊,類定義將其說明(用戶可見的外部接口)與實現(用戶不可見的內部實現)顯式地分開,其內部實現按其具體定義的作用域提供保護。類是封裝的最基本單位。封裝防止了程序相互依賴性而帶來的變動影響。在類中定義的接收對方消息的方法稱為類的接口。
繼承:類之間的繼承關系是現實世界中遺傳關系的直接模擬,它表示類之間的內在聯系,以及對屬性和操作的共享,即子類可以沿用父類的某些特征。重載:重載是指類的同名方法在給其傳遞不同的參數是可以有不同的運動規律。在對象間相互作用時,即使接收消息對象采用相同的接收辦法,但消息內容的詳細程度不同,接收消息對象內部的運動規律也可能不同。2 關于UML
UML(Unified Modeling Language)是在Booch方法、OOSE方法和OMT方法的基礎上演化而來的基于面向對象技術的標準建模語言。它統一了面向對象建模的基本概念、術語和圖示符號,描述了建模過程中所必須遵循的基本步驟,提供了一整套描述軟件系統模型的概念和圖形表示法,可從不同的視角為系統建模。統一建模語言UML是一種語義豐富、通用、可視化的建模語言和事實上的國際工業標準,易于理解和交流。UML提供的豐富的視圖從多個視角描述系統的不同側面,可以有效運用于軟件的建模、分析與設計。標準建模語言UML的定義包括UML語義和UML表示法兩個部分。UML語義通過其元模型來嚴格地定義。UML表示法定義UML符號的表示法,為開發者或開發工具使用這些圖形符號和文本語法來建模提供標準。這些圖形符號和文字所表達的是應用級的模型,在語義上它是UML元模型的實例。UML的主要內容通常用用例圖、類圖、對象圖、狀態圖、活動圖、構件圖、配置圖、順序圖、協作圖和包圖等l0種圖來描述,它們從不同的角度和層次為系統建模提供支持,完全可以描述系統的方方面面。
與傳統的軟件建模方法相比, UML 有如下一些特點:(1)UML 是一個可視化建模語言, 是一種圖形化的面向對象的設計工具語言,而不是可視化程序設計語言,但用UML描述的模型可與各種編程語言直接相連,把UML 模型映射成編程語言。在不同程序中使用同樣的UML 圖表類型, 因為UML 具有任意程序的獨立性,定義一個標準程序不是一個UML 的目標。
(2)UML 是一種可用于詳細描述的語言,其所建立的模型是精確、無歧義和完整的。同時UML是一種文檔化的語言,對其各建模元素可進行詳細說明,并能生成所建模型的文檔。標準建模語言UML支持面向對象的分析與設計,定義良好、易于表達、功能強大。它的最大用途是利用圖形來描述真實世界各個對象的符合表示,讓所有系統設計者在構建系統需求分析、對象模型化定義到對象設計的整個開發過程完全標準化。3 本課題的研究意義
一個圖書館的圖書資料庫在正常運轉中總是面對大量的讀者信息、書籍信息以及兩者相互作用產生的借書信息、還書信息。圖書館作為一個信息資源的集散地,圖書和用戶借閱資料繁多,包含著很多的信息數據。以前對信息管理的主要方式是基于文本、表格等紙介質的手工處理,對于圖書借閱情況(如借書天數、超過限定借書時間的天數)的統計和核實等往往采用人工檢查,對借閱者的借閱權限以及借閱天數等采用人工計算、手抄進行,數據信息處理工作量大,容易出錯和丟失。因此,建立一個智能化、系統化、信息化的圖書資料庫是十分重要的。使用計算機軟件對圖書進行管理,是計算機應用的一部分。充分利用計算機的功能,實現對讀者管理、書籍管理等自動化控制,將會使圖書資料庫的工作強度大大減弱,可以實現圖書檢索迅速、可靠性高、存儲量大、壽命長、成本低,能最大限度地提高圖書管理的效率,也是圖書管理信息化、正規化管理的必然趨勢。4 基于UML的圖書管理系統的需求分析與設計過程 圖書管理系統的開發和應用主要通過兩個步驟來實現:首先是基于系統功能的需求分析,其次是系統模型的設計和實現。4.1需求分析
需求分析是軟件工程過程的一個重要階段,其中一個主要任務是確定系統的功能需求,采用面向對象方法,基于UML的可視化系統需求分析,因為有用戶的積極參與,既可以加快設計者對于問題的理解,又能夠在系統描述方面減少語義差異,保證分析的正確性。需求分析的目標就是建立需求模型,即從功能需求出發建立用例模型, UML的用例視圖從用戶的需求中提取,以盒圖的方式描述待開發的系統的功能需求。每個用例都指定了客戶的需求即他們需要系統干什么。用例圖為設計活動不僅記錄需求而且還提供了一種挖掘的信息, 它記錄了需求到設計結果之間的映射關系,能夠確保設計結果具有明確的根據或者說具有可維護性,基于UML的軟件開發過程是以用例驅動的。
首先我們進行角色識別,角色識別的任務是找出所有可能與系統發生交互行為的外部實體、對象、系統。它們的行為不受系統控制,但是可以提供輸入給系統。對于一所大學的圖書管理系統,基本的功能是完成圖書的借閱和相關信息的管理,服務的對象有本科生,研究生,教師,及其他學校的學生,還有社會人員,這些人可歸結為一類即讀者。而為幫助讀者順利完成借還書的可以是工作人員,可以是自動借還書機,他們可以歸結為一類即圖書管理人員。因此對于一個圖書管理系統主要有兩類角色,讀者、圖書管理員。
其次,在主要角色的基礎上,可以識別出與角色相應的用例,從而得到系統的用例模型。與讀者相關的過程包括:借書、還書、預定、圖書信息檢索、借閱查詢(如查詢本人借書記錄、還書期限、是否超期)、個人相關信息查詢及修改(如學號、姓名、性別、年級、專業、家庭住址、聯系電話、出生日期、民族、政治面貌、身份證號等)。與圖書管理員相關的過程包括:辦理借書、辦理還書、解除預定、圖書訂購、讀者信息管理(增加/刪除讀者、修改讀者權限及密碼、借閱超期罰款)、圖書信息管理(增加/刪除數目、圖書類別等相關信息的修改、流通情況)。系統管理(系統的登陸、退出、日志維護、系統更新)。以上分析中,與讀者,圖書管理員相關的過程構成了本系統的基本用例。4.2 系統的整體結構
綜上所述一個圖書管理系統的整體結構可以分為三大模塊:圖書管理模塊、讀者管理模塊、系統管理模塊。
(1)圖書管理模塊包括與圖書相關的一些過程,主要有圖書的借出、圖書的歸還、預定、圖書信息檢索、圖書訂購、圖書相關信息管理。
(2)讀者管理模塊主要包括與讀者有聯系相關的過程,主要有增加/刪除讀者、修改讀者權限及密碼、借閱信息查詢、個人信息查詢及修該、借閱超期和丟失罰款。(3)系統管理模塊包括系統的登陸、退出、系統維護、系統更新。綜上我們畫出系統的整體結構,如圖一所示:
圖一 圖書管理系統的整體結構 4.3 圖書管理系統的用例圖
從以上分析中我們不難得出系統的基本用例圖,如圖二所示:
圖二系統的基本用例圖
圖書管理和圖書管理是圖書管理系統的重要組成部分,為此我們按照前文所述將圖書管理模塊和讀者模塊以及系統管理模塊詳細精化得出如下的用例圖,如圖
三、圖
四、圖五所示:
圖三 圖書管理模塊的用例圖
圖四讀者管理用例圖
圖五系統管理模塊的用例圖 4.4 圖書管理系統的行為圖 我們再進行動態建模分析。對于圖書管理系統借書還書是兩個重要的過程,我們先來分析一下借書、還書的一般過程,并由借書的一般過程畫出其順序圖、協作圖以及活動圖。
(1)借書的過程:讀者刷卡進入圖書館,或者先查詢圖書及個人借閱信息,或者直接去挑選圖書,選擇好圖書后進入借書程序,管理員先檢查讀者的借書證件,查驗能否借閱,比如:證件是否無效或書籍是否已經借滿等,即檢驗其借書的合法性和有效性,如果是非法用戶或借書數量范圍外,則該讀者不能借閱圖書。如果滿足借閱要求,則再獲取所借書的標題以進行庫內搜索,獲取書目查詢此書的數量,看是否還有此書,如果沒有則阻止其他借書者可能進行的預訂活動,將此書借出,根據書號將此書的借閱標志位取反以表示此書已借出,并將此書的書目減1。并為此讀者記錄借閱日期,以及歸還日期,在歸還日期內未能歸還和續借的,并為其記錄超借天數及罰款數額。
(2)還書過程:在返還圖書的過程中,管理員首先獲取讀者的借閱信息和被歸還的書籍的信息,如書標題信息,數量等,并一一審核每本書的歸還日期是否超過應歸還日期。在完成階段,將此書的書號登記并設計標志位為已歸還,以便讀者網上預訂和繼續借閱,同時將此類圖書的數量加1,如果讀者超期或丟失所借書籍,則要進行賠償處理。所以我們不難畫出借書一般過程的順序圖,如圖六所示:
圖六借書一般過程的順序圖
有順序圖可得到協作圖,如圖七所示。仔細分析借書過程的細節,可以畫出如圖八所示的活動圖,它表示了復雜算法的過程,尤其是過程中的判斷、并發和同步。
圖七借書一般過程的協作圖
以上我們用多種語言機制分析了讀者的主要相關事件流,下面我們繪制圖書管理員使用系統的狀態圖分析圖書管理員的主要事件流。從以上分析可知,圖書管理員相關的過程包括:辦理借書、辦理還書、解除預定、圖書訂購、讀者信息管理(增加/刪除讀者、修改讀者權限及密碼、借閱超期罰款)、圖書信息管理(增加/刪除數目、圖書類別等相關信息的修改、流通情況)。由此我們可繪制如圖九所示的圖書管理員使用系統的狀態圖:
圖九圖書管理員使用系統的狀態圖 4.5 圖書管理系統的靜態圖 定義并描述了各個類后,我們可以根據實際情況引入包來管理類,本圖書館管理系統可以劃分為四個包:用戶管理:對系統用戶進行管理,為用戶提供信息服務接口,便于對系統進行操作。借閱管理包括借書處理,還書處理和罰款處理等。讀者管理包括對讀者圖書等信息進行維護,主要有讀者信息的增刪,對圖書更新資料進行維護。系統服務:包括系統登錄檢查,安全維護等。系統的包圖如圖十所示:
圖十系統包圖
4.6 圖書管理系統的實現 經過系統分析和設計后,就可以根據設計模型在具體的環境中實現系統,生成系統的源代碼、可執行程序和相應的軟件文檔,建立一個可執行系統。進而需要對系統進行測試和排錯,保證系統符合預定的要求,獲得一個無錯的系統實現。測試結果將確認所完成的系統可以真正使用。參考文獻
[1] 齊治昌.譚慶平.寧洪.軟件工程.北京:高等教育出版社 [2] 張海藩.軟件工程.北京:人民郵電出版社
[3] 董翔.基于UML的圖書管理系統的開發和應用.科技情報開發與經濟2008年第l8卷第l2期
[4] 吳開華.邢養曉.羅德撤.數字圖書館元數據研究[J].中國圖書館學報,2002,(3). [5] 劉治國.構建基于B/S結構的圖書管理系統[J].信息技術,2005(3):72—73. [6] 管斌.袁國忠譯.用例驅動的UML對象建模應用-范例分析.北京:人民郵電出版社 結束語
本文以一個圖書館圖書管理系統開發為背景,針對圖書館對圖書資源進行有效利用和管理的功能需求,采用統一建模語言(UML)對圖書資源進行面向對象的描述,通過利用統一建模語言UML中的各種圖形,分析和設計圖書管理系統,建起了圖書管理的面向對象模型,探討了基于UML的體系結構建模及其實現問題。由建模過程可以看出UML在體系結構建模方面存在很好的優勢,不但從整體上正確描述了該圖書管理系統的體系結構,并且可以充分利用UML面向對象的優勢,從而實現整個軟件系統面向對象的分析、設計與開發,大大縮短開發周期,最終使得項目成功完成,此管理系統節省了管理人員和讀者的大量時間,有利于信息處理效率的提高。鑒于篇幅有限,本文只對主要部分和主要過程做了介紹,限于水平,歡迎各位讀者對本文的缺點、錯誤提出批評。
第二篇:uml圖書管理系統需求分析與設計
圖書館圖書管理系統的需求分析與設計
一、本課題的研究意義
一個圖書館的圖書資料庫在正常運轉中總是面對大量的讀者信息、書籍信息以及兩者相互作用產生的借書信息、還書信息。圖書館作為一個信息資源的集散地,圖書和用戶借閱資料繁多,包含著很多的信息數據。以前對信息管理的主要方式是基于文本、表格等紙介質的手工處理,對于圖書借閱情況(如借書天數、超過限定借書時間的天數)的統計和核實等往往采用人工檢查,對借閱者的借閱權限以及借閱天數等采用人工計算、手抄進行,數據信息處理工作量大,容易出錯和丟失。因此,建立一個智能化、系統化、信息化的圖書資料庫是十分重要的。使用計算機軟件對圖書進行管理,是計算機應用的一部分。充分利用計算機的功能,實現對讀者管理、書籍管理等自動化控制,將會使圖書資料庫的工作強度大大減弱,可以實現圖書檢索迅速、可靠性高、存儲量大、壽命長、成本低,能最大限度地提高圖書管理的效率,也是圖書管理信息化、正規化管理的必然趨勢。
二、圖書館圖書管理系統的需求分析與設計過程
圖書管理系統的開發和應用主要通過兩個步驟來實現:首先是基于系統功能的需求分析,其次是系統模型的設計和實現。
2.1需求分析
需求分析是信息系統設計過程中的一個重要階段,其中一個主要任務是確定系統的功能需求,并采用面向對象方法,即基于UML的可視化系統進行需求分析。需求分析的目標就是建立需求模型,即從功能需求出發建立圖形模型, UML的視圖從用戶的需求中提取,以圖形的方式描述待開發的系統的功能需求。每個圖形都指定了客戶的需求,即他們需要系統干什么。用圖形為設計活動不僅記錄需求而且還提供了一種挖掘的信息, 它記錄了需求到設計結果之間的映射關系,能夠確保設計結果具有明確的根據或者說具有可維護性,基于UML的信息系統設計過程是以建模圖形驅動的。
首先我們進行角色的認識,對于一所大學的圖書管理系統,基本的功能是完成圖書的借閱和相關信息的管理,服務的對象有本科生,研究生,教師,及其他學校的學生,還有社會人員,這些人可歸結為一類即讀者。而為幫助讀者順利完成借還書的可以是工作人員,可以是自動借還書機,他們可以歸結為一類即圖書管理人員。因此對于一個圖書管理系統主要有兩類角色,讀者、圖書管理員。
其次,在主要角色的基礎上,可以識別出與角色相應的用例,從而得到系統的用例模型圖。與讀者相關的過程包括:借書、還書、預借(想借的書已借出,預定要借的書籍)、圖書信息檢索、借閱查詢(如查詢本人借書記錄、還書期限、是否超期)、個人相關信息查詢及修改(如學號、姓名、性別、年級、專業、家庭住址、聯系電話、出生日期、民族、政治面貌、身份證號等)。與圖書管理員相關的過程包括:辦理借書、辦理還書、刪除預借對象、圖書訂購、讀者信息管理(增加/刪除讀者、修改讀者權限及密碼、借閱超期罰款)、圖書信息管理(增加/刪除數目、圖書類別等相關信息的修改、流通情況)。系統管理(系統的登陸、退出、日志維護、系統更新)。以上分析中,與讀者,圖書管理員相關的過程構成了本系統的基本用例。
2.2 系統的整體結構
綜上所述一個圖書館圖書管理系統的整體結構可以分為三大模塊:圖書管理模塊、讀者管理模塊、系統管理模塊。
(1)圖書管理模塊包括與圖書相關的一些過程,主要有圖書的借出、圖書的歸還、預借、圖書信息檢索、圖書訂購、圖書相關信息管理。
(2)讀者管理模塊主要包括與讀者有聯系相關的過程,主要有增加/刪除讀者、修改讀者權限及密碼、借閱信息查詢、個人信息查詢及修該、借閱超期和丟失罰款。
(3)系統管理模塊包括系統的登陸、退出、系統維護、系統更新。綜上我們畫出系統的整體結構,如圖一所示:
圖一 圖書管理系統的整體結構
2.3 圖書管理系統的用例圖
從以上分析中我們不難得出系統的基本用例圖,如圖二所示:
圖二 系統的基本用例圖
圖書管理和圖書管理是圖書管理系統的重要組成部分,為此我們按照前文所述將圖書管理模塊和讀者模塊以及系統管理模塊詳細精化得出如下的用例圖,如圖
三、圖
四、圖五所示:
圖三 圖書管理模塊的用例圖
圖四 讀者管理用例圖
圖五 系統管理模塊的用例圖
2.4 圖書管理系統的交互圖
協作圖
第三篇:圖書管理系統UML分析與設計
1.系統需求
系統的功能性需求描述如下:
·
圖書管理系統為管理員提供主功能界面。
·
圖書管理系統在啟動時要求管理員輸人口令,只有口令正確,才可以進入系統的主功能界面。
·
管理員負責對圖書管理系統的維護工作,因此系統應賦予管理員對圖書信息、讀者信息和出版社信息進行錄入、修改、查詢和刪除等功能的操作權限。
·
管理員作為讀者的代理實現借書與還書業務。
·
圖書信息、讀者信息和出版社信息保存在對應的數據庫表中。
在上述功能性需求分析的基礎上,可以寫出較為詳細的需求規格說明書,作為進行系統分析、設計和實現的依據。需求分析規格說明書由系統最終用戶提出需求,系統分析人員負責編寫。圖書管理系統需求分析規格說明書如下:
·
這是一個圖書館圖書借閱管理的應用系統;
·
圖書管理系統負責將圖書、雜志借給讀者,前提條件是這些讀者在系統進行了注冊,圖書和雜志也在系統中進行了注冊;
·
圖書館負責新書的購買,當書和雜志已經過時或者破舊不堪時,可以將這些圖書和雜志從圖書館管理系統中刪除;
·
圖書管理員是圖書館的員工,負責與讀者打交道,并且是在系統提供的支持下開展工作;
·
圖書管理系統能夠容易地建立、修改和刪除系統中的信息,包括圖書信息、讀者信息、以及出版社信息等;
·
圖書管理系統能夠在所有流行的平臺環境(windows,uNIx等操作系統)上運行,并具有一個美觀的圖書用戶界面;
·
圖書管理系統容易擴展新功能。
2.分析建模
? Use case diagram 分析
采用下列描述項撰寫用例的腳本。
· 用例名稱——表明用戶的意圖或用例的用途。
· 參與者——與該用例相關的參與者列表。
· 前置條件——一個條件列表,如果其中包含條件,則這些條件必須在訪問用例之前得到滿足。
· 后置條件——一個條件列表,如果其中包含條件,則這些條件將在用例完成以后得到滿足。
· 基本事件流——描述用例中各項活動都正常進行時用例的工作方式。
· 分支事件流——描述用例中某項活動的子活動各項工作都正常進行時用例的工作式。
· 異常事件流——描述用例的變更工作方式,以及出現異常或發生錯誤的情況下所執行的路徑。
圖書管理系統中每個用例的腳本描述如下:
1.系統登錄
用例名稱:系統登錄
參與者:圖書管理員 1.1前置條件 無
1.2后置條件
如果用例成功,參與者可以啟動系統,使用系統提供的功能。反之,系統的狀態不發生變化。
1.3基本事件流
當圖書管理員登錄系統時,用例啟動。
①系統提示用戶輸入用戶名和密碼。
②用戶輸入用戶名和密碼。
③系統驗證輸入的用戶名和密碼,若正確,則用戶登錄到系統中。
1.4異常事件流
如果用戶輸入無效的用戶名/密碼,則系統顯示錯誤信息。用戶可以選擇返回基本事件流的起始點,重新輸入正確的用戶名/密碼;或者取消登錄,用例結束。
2.圖書借閱
用例名稱:借閱圖書
參與者:讀者,圖書管理員 2.1前置條件
在這個用例開始之前,圖書管理員必須登錄到系統;否則,系統的狀態不發生變化。
2.2后置條件
如果這個用例成功實現,則在系統中創建并存儲借閱記錄。2.3基本事件流
當讀者借閱圖書時,用例啟動。
①登錄系統。
②輸人圖書ID和讀者ID。
③檢索讀者ID。
④檢索圖書ID。
⑤根據時間算法確定圖書借出日期和歸還日期。
⑥圖書館將圖書借給讀者。
⑦創建借閱記錄。
⑧存儲借閱記錄。2.4異常事件流
①如果讀者未注冊,則系統顯示提示信息,用例被終止。
②如果要借圖書不存在,系統顯示提示信息,用例被終止。
③如果要借圖書都已借出,則系統提示信息,用例被終止。3.圖書歸還
用例名稱:圖書歸還
參與者:讀者,圖書管理員 3.1前置條件
在這個用例開始之前,圖書管理員必須登錄到系統;否則,系統的狀態不發生變化。
3.2后置條件
如果這個用例成功實現,則系統刪除借閱記錄;否則,系統的狀態不發生變化。3.3基本事件流
當讀者歸還借閱的圖書時,用例被啟動。
①登錄系統。
②輸入圖書ID和讀者ID。③檢索圖書ID。
④檢索讀者ID。
⑤查詢圖書借閱記錄。⑥刪除借閱記錄。3.4異常事件流
①如果歸還圖書不存在,則系統顯示提示信息,用例被終止。②如果借閱記錄不存在,則系統顯示提示信息,用例被終止。4.讀者維護
用例名稱:讀者維護 ‘ 參與者:圖書管理員 ’ 4.1前置條件
在這個用例開始之前,圖書管理員必須登錄到系統;否則,系統的狀態不發生變化。4.2后置條件
如果這個用例成功地實現,則系統添加、修改或檢索讀者信息;否則,系統的狀態不發生變化。
4.3基本事件流
當圖書管理員維護讀者信息時,用例被啟動。①登錄系統。
②如果選擇的活動是“添加讀者信息”,則執行分支事件流4.3.1:添加讀者信息。③如果選擇的活動是“修改讀者信息”,則執行分支事件流4.3.2:修改讀者信息。④如果選擇的活動是“檢索讀者信息”,則執行分支事件流4.3.3:檢索讀者信息。4.3.1分支事件流
①提供讀者的信息,例如,讀者ID,讀者姓名、電話號碼等。②系統存儲讀者信息。4.3.2分支事件流 ①輸入讀者ID。
②查詢并顯示讀者信息。③更新系統中讀者信息。4.3.3分支事件流 ①輸入讀者ID。
②查詢并顯示讀者信息。4.4異常事件流
①如果讀者已經存在,則系統顯示提示信息,用例被終止。②如果查詢不到讀者,則系統顯示提示信息,用例被終止。5.圖書維護
用例名稱:圖書維護 參與者:圖書管理員 5.1前置條件
在這個用例開始之前,圖書管理員必須登錄到系統;否則,系統的狀態不發生變化。5.2后置條件
如果這個用例成功實現,則系統添加、修改或檢索圖書信息;否則,系統的狀態不發生變化。
5.3基本事件流
當圖書管理員維護圖書信息時,用例被啟動。①登錄系統。
②如果選擇的活動是“添加圖書信息”,則執行分支事件流5.3.1:添加圖書信息。③如果選擇的活動是“修改圖書信息”,則執行分支事件流5.3.2:修改圖書信息。④如果選擇的活動是“檢索圖書信息”,則執行分支事件流5.3.3:檢索圖書信息。5.3.1分支事件流
①提供圖書的信息,例如,圖書ID,圖書名稱、編著者、出版社、價格、出版年份籌 ②系統存儲圖書信息。5.3.2分支事件流 ①輸人圖書ID。
②查詢并顯示圖書信息。⑨更新系統中圖書信息。5.3.3分支事件流 ①輸入圖書ID。
②查詢并顯示圖書信息。5.4異常事件流
①如果該圖書已經存在,則系統顯示提示信息,用例被終止。②如果查詢不到該圖書,則系統顯示提示信息,用例被終止。
系統總體功能結構
? 根據用例圖定義分析包以及分析包(子系統)之間的關系。
圖書管理系統分析包詳細結構
? 定義類、用例實現(序列圖)、類關系圖(1)系統登錄
類圖:
系統登錄分析類圖
用例實現:
登錄系統成功順序圖
登錄系統失敗順序圖
(2)登錄圖書信息
類圖:
登錄圖書信息分析類圖
用例實現:
登錄圖書信息順序圖
(3)修改圖書信息
類圖:
修改圖書信息分析類圖
用例實現:
修改圖書信息順序圖
(4)檢索圖書信息
類圖:
檢索圖書信息分析類圖
用例實現:
檢索圖書信息順序圖
(5)借閱圖書 類圖:
借閱圖書分析類圖
用例實現:
借閱圖書順序圖
(6)歸還圖書
類圖:
歸還圖書分析類圖
用例實現:
歸還圖書順序圖
(7)借出圖書一覽表
類圖:
借出圖書一覽表分析類圖
用例實現:
借出圖書一覽表順序圖
(8)類關系圖
系統實體類(業務類)之間的關系
(9)類的具體定義
1.圖書表類
編號:A—l一0l
類名:圖書表
職責:存放圖書館所能處理的所有圖書的基本信息
屬性:圖書代號,圖書名稱,編著者,ISBN代碼,出版社代碼,出版年份,頁數,價格,購入日期,過期日期,書架代碼,備注
說明:該類存放所有圖書類的公用信息,它是“圖書借閱表”的父類。圖書也有身份,可以通過不同的ISBN相區別。在圖書管理系統中,圖書也有相關的行為,圖書因為使用期限等可以被銷毀,所以圖書表也是系統中的一個對象。
2.登錄圖書界面類
編號:A一1—02
類名:登錄圖書界面
職責:提供輸入所有圖書信息的界面
屬性:圖書代號,圖書名稱,編著者,ISBN代碼,出版社代碼,出版年份,頁數,價格,購入日期,過期日期,書架代碼,備注
說明:該類的所有屬性是非持久性的,但它為用戶保存永久性的圖書屬性提供了一個臨時的輸入接口。
3.登錄圖書信息控制類
編號:A—l—03
類名:登錄圖書信息控制類
職責:實現登錄圖書界面類與圖書表類所提供信息的交互。
屬性:圖書代號,圖書名稱,編著者,ISBN代碼,出版社代碼,出版年份,頁數,價 格,購人日期,過期日期,書架代碼,備注
說明:該類的所有屬性是非持久性的,但它為用戶保存永久性的圖書屬性提供了一 個臨時的輸人接口。
4.出版社表類
編號:B—l—01
類名:出版社表
職責:存放圖書表所使用的所有圖書的出版單位
屬性:出版社代碼,出版社名稱
說明:該類與出版社表之間存在著單向關聯的關系。
5.讀者表類
編號:C一1一Ol
類名:讀者表
職責:存放圖書館的所有讀者的基本信息
屬性:讀者代碼,讀者名,聯絡電話
說明:該類類描述了物理借閱者的信息,代表了系統中存儲的物理借閱者的信息,即物理借閱者在系統中的賬戶。同時,讀者表又是圖書借閱表的組成成分之一。
6.圖書借閱表類
編號:D—l—01
類名:圖書借閱表
職責:存放圖書館所能處理的所有圖書的基本信息
屬性:圖書代號,讀者代號,借書日期,還書日期,說明:該類描述了從圖書館借閱圖書的借閱記錄。一個該類的對象對應一個借閱者和一本圖書。該類的對象的存在表示借閱者借閱了借閱記錄中記錄的物理圖書。當圖書被歸還時,要刪除借閱記錄(對象)。
? 形成系統分析規約(注意規約可能會有活動圖、狀態圖等)
3.系統設計
設計模型的主要工作: 1).軟件平臺設計
軟件平臺是系統開發和運行的環境。圖書管理系統的開發和運行環境如下:
· 操作系統——操作系統是計算機系統中最重要的系統軟件。圖書管理系統可以運行在Windows 95/98/2000/NT/Windows XP等桌面操作系統上。
· 支撐軟件——支撐軟件是協助人們開發和維護軟件的工具和環境軟件。數據庫系統、集成開發環境等都屬于支撐型軟件,例如,Delphi、Oracle、Java等。圖書管理系統使用的DBMS是Access 2003,數據庫中間件是JDBC。
· CASE平臺——采用CASE開發環境可保證系統開發質量,提高開發效率,保證文檔的一致性。圖書管理系統的分析、設計j實現和部署模型是在Rose 2003建模環境下創建的,清晰地表達了在不同的開發階段的系統模型。2).結構設計
結構設計是把軟件分解成為多個子系統,并確定出由各子系統及其接口構成的軟件結構。子系統是對軟件分解的一種中間形式,也是組織和描述軟件的一種方法。由多個子系統構成系統軟件,每一個子系統又包括多個用例設計、設計類和接口。結構設計具體要做的工作是將系統劃分成相對獨立、功能相對完整的子系統(包),將系統模型中的元素劃分到不同的包中,說明在什么地方定義包,各個包之間的依賴性和主要通信機制。從而得到盡可能簡單和清晰的結構,各部分之間的依賴盡可能的少,并盡量減少雙向的依賴關系。3).詳細設計與界面設計
詳細設計是對軟件結構中確定出的各個子系統內部的設計,需要分析和確定每一個子系統中的用例設計、設計類和接口。詳細設計還要描述每個類的細節,并用動態模型描述類的實例在具體環境中的行為。
界面設計是對人和外部系統與系統之間交互界面的設計,包括輸入界面、輸出界面和輸入/輸出界面的設計。另外,界面設計還涉及到人機交互方式、人機交互流程、輸入輸出設備和媒體等內容。4).數據庫設計
數據庫是系統存儲和管理數據的主要技術手段,數據庫設計的任務是根據給定的系統應用需求和系統環境,設計出合理的數據庫結構。數據庫設計可分為概念設計、邏輯設計和物理設計3個階段。用UML進行數據庫設計的主要思想,是利用UML的擴展機制定義一些版型,用于表示與數據庫相關的一些概念。Rose 2003提供了對數據庫設計的支持,所設計的模型可以直接生成具體數據庫中的表、觸發器、存儲過程等。
? 系統結構設計
系統框架視圖
· 用戶界面包(User Interface Package)——用于描述整個用戶界面使用的類,這些類提供的操作允許用戶瀏覽系統中的數據,允許用戶輸入新數據。用戶界面類基于Java AWT包設計,AWT包是Java語言中用于編寫用戶界面應用程序的一個標準庫。用戶界面包與業務模型包相互協作,調用業務模型包中類實例的方法對圖書信息進行檢索和插入操作。
。業務模型包(Business Model Package)——包含分析階段主要的類(借閱圖書類、歸還圖書類、圖書類、讀者類、出版社類)。在設計階段將進一步細化這些類,從而完整地定義它們的操作,并為它們增加永久性存儲支持。業務模型包與數據庫包相互協作,訪問數據庫中的數據。· 數據庫包(Database Package)——為業務模型包中的類提供數據存取服務,以便這些類能夠實現數據的永久性存儲功能。
。組件包(Utility Package)——包含一些可以被系統中其他包所使用的服務。
? 界面設計
? 詳細設計
圖書信息管理詳細設計:
1.設計類圖
“圖書信息管理’’是一個用例,在“圖書信息管理”用例所提取的3個概念類的基礎上,可以確定該用例有3個設計類:登錄圖書信息(LoginBook)、修改圖書信息(UpdateBook)、檢索圖書信息(SelectRook)。如圖13.2所示為“圖書信息管理”用例的設計類圖。
“圖書信息管理”用例設計類圖
·
BpFrame類——屬于用戶界面包,定義系統檢索與修改界面的框架。
·
BpSelectFrame類——屬于用戶界面包,繼承BpFrame類,定義檢索界面框架。
·
BpUpdateFrame類——屬于用戶界面包,繼承BpSelectFrame類,定義系統修改界面框架。
·
SelectBook類——屬于用戶界面包,繼承BpSelectFrame類,與DbChoice類相關聯,顯示圖書信息檢索界面。
·
LoginBook類——屬于業務模型包,繼承BpUpdateFrame類,與DbChoice類相關聯,實現圖書信息登錄功能。
·
UpdateBook類——屬于業務模型包,繼承BpUpdateFrame類,與DbChoice類相關聯,實現圖書信息修改功能。
·
DbChoice類——屬于組件包,定義了用于數據庫操作的實例變量和實例方法。
2.順序圖
為實現用例的功能,每個用例要實現的功能要通過用例中各個類的對象的操作的相互協作完成,這就要在順序圖或協作圖中反映各個對象之間的消息調用過程。如圖13.3所示為添加的圖書ID不重復的情況下“登錄圖書信息”用例的順序圖。
“登錄圖書信息”順序圖
3.屬性和方法設計
用例設計中識別出了大量的設計類,接下來要詳細地設計所識別出來的每一個設計類,即設計類的屬性和方法。屬性設計應該注意的問題是:一要補充屬性分析時沒有考慮到的屬性,確定屬性的全部內容,其中包括屬性名、可視性、范圍、類型、初始值;二要盡量采用系統采用的程序設計語言的語法規范描述屬性。
方法設計包括數據結構設計、算法設計和流程設計。方法設計要注意的是:一要立足于所采用的程序設計語言;二所選用的程序設計語言應該能夠提供豐富的數據結構;三要根據所實現的功能確定算法設計;四是可以用程序流程圖或活動圖來描述流程設計的結果。
如圖所示為添加了屬性和方法“圖書信息管理”用例的設計類圖。
添加屬性和方法后的“圖書信息管理”類圖
LoginBook類的屬性和方法設計如下:
·
sql屬性——定義執行插人操作的SQL命令字符串。
·
chpublish_id屬性——定義出版社ID。
·
LoginBook()方法——類的構造方法。①調用DbChoice類的對象實例,以實現加載JDBC驅動程序,創建數據庫連接等功能;②提供添加圖書信息界面。
·
cheekInsea()方法——①檢查各輸入項的輸人格式是否正確;②檢查圖書ID是否重復。
·
makelnsertStmt()方法——定義執行插人操作的SQL命令字符串。
·
afterlnsert()方法——清空登錄圖書界面的各輸入項。
SelectBook類的屬性和方法設計如下:
·
sql屬性——定義執行插入操作的SQL命令字符串。
·
chpublish_id屬性——定義出版社ID。
·
SelectBook()方法——類的構造方法。①調用DbChoice類的對象實例,以實現加載JDBC驅動程序,創建數據庫連接等功能;②提供檢索圖書界面。
·
checkSelect()方法——檢查是否輸入要檢索的圖書ID。
·
makeSelectStmt()方法——定義執行檢索操作的SQL命令字符串。
·
setSelectedData()方法——顯示檢索圖書的結果。
·
clear()方法——清空圖書檢索界面各檢索項。
UpdateBook類的屬性和方法設計如下:
·
sql屬性——定義執行插入操作的SQL命令字符串。
·
chpublish_id屬性——定義出版社ID。
·
UpdateBook()方法——類的構造方法。①調用DbChoice類的對象實例,以實現加載JDBC驅動程序,創建數據庫連接等功能;②提供檢索圖書界面;③提供修改圖書功能。
·
checkSelect()方法——檢查是否輸人要檢索的圖書ID。
·
makeSelectStmt()方法——定義執行檢索操作的SQL命令字符串。
·
setSelectedData()方法——顯示檢索圖書的結果。
·
clear()方法——清空圖書修改界面各修改項。
·
checkUpdate()方法——檢查各修改項的修改格式是否正確。
·
makeUpdateStmt()方法——定義執行修改操作的SQL命令字符串。
讀者信息管理詳細設計: 1.設計類圖
“讀者信息管理”是一個用例,在“讀者信息管理”用例確定了3個概念類:添加讀者信息、修改讀者信息、檢索讀者信息。但是,該用例的功能相對比較簡單。可以用1個設計類Borrow實現這3個概念類的功能。如圖所示為“讀者信息管理”用例的設計類圖。
圖13.5 “讀者信息管理”用例設計類圖
· Borow類——屬于業務模型包,繼承BpupdateFrame類,實現讀者信息添加修改和檢索功能。
2.順序圖
如圖13.6所示為添加的讀者ID不重復的情況下“添加讀者信息”用例的順序圖。
“添加讀者信息”順序圖
通過分析如圖所示的順序圖,可以得到下圖所示為“讀者信息管理”用例的設計類圖。
圖優化后的“讀者信息管理”用例設計類圖
3.屬性和方法設計
如下圖所示為添加了屬性和方法“讀者信息管理”用例的設計類圖。
添加屬性和方法后的“讀者信息管理”類圖
Borrow類的屬性和方法設計如下:
· sql屬性——定義執行插入操作的SQL命令字符串。
· Borrow()方法——類的構造方法。①調用DbChoice類的對象實例,以實現加載JDBC驅動程序,創建數據庫連接等功能;②提供添加、修改和檢索讀者信
息界面。
· checkSelect()方法——檢查是否輸入要檢索的讀者ID。
· makeSeleetStmt()方法——定義執行檢索操作的SQL命令字符串。
· setSelectedData()方法——顯示檢索讀者的結果。
· ehecklnsert()方法——檢查是否可執行插入操作。
· makeInsertStmt()方法——定義執行插入操作的SQL命令字符串。
· afterlnsert()方法——清空各輸入項。
· checkUpdate()方法——檢查是否可執行修改操作。
· makeUpdateStmt()方法——定義執行修改操作的SQL命令字符串。
· checkData()方法——檢查各輸入項的輸人格式是否正確。
· clear()方法——清空各文本框。
出版社信息管理詳細設計: 1.設計類圖
“出版社信息管理”是一個用例,可以用1個設計類Publish實現添加出版社信息、修改出版社信息、檢索出版社信息3個概念類。如圖13.9所示為“出版社信息管理”用例的設計類圖。
圖13.9 “出版社信息管理”用例設計類圖
· Publish類——屬于業務模型包,繼承BpUpdateFrame類,實現出版社信息添加、修改和檢索功能。
2.順序圖
如圖13.10所示為添加的出版社ID不重復情況下“添加出版社信息”用例的順序圖。
圖13.10 “添加出版社信息”順序圖
3.屬性和方法設計
如圖13.1l所示為添加了屬性和方法“出版社信息管理”用例的設計類圖。
圖13.11 添加屬性和方法后的“出版社信息管理”類圖
Publish類的屬性和方法設計如下:
· sql屬性——定義執行插入操作的SQL命令字符串。
· Publish()方法——類的構造方法。①調用DbChoice類的對象實例,以實現加載JDBC驅動程序,創建數據庫連接等功能;②提供添加、修改和檢索出版社信息界面。
· checkSelect()方法——檢查是否輸入要檢索的出版社ID。
· makeSelectStmt()方法——定義執行檢索操作的SQL命令字符串。· setSelectedData()方法——顯示檢索出版社的結果。· checklnsert()方法——檢查是否可執行插入操作。
· makeInsertStmt()方法——定義執行插入操作的SQL命令字符串。· afterInsert()方法——清空各輸人項。
· checkUpdate()方法——檢查是否可執行修改操作。
· makeUpdateStmt()方法——定義執行修改操作的SQL命令字符串。· checkData()方法——檢查各輸入項的輸人格式是否正確。· clear()方法——清空各文本框。
圖書借還信息管理詳細設計: 1.設計類圖
“圖書借還信息管理”是一個用例,在“圖書信息管理”用例所提取的4個概念類的基礎上,可以確定該用例有4個設計類:借閱圖書(BorrowBook)、歸還圖書(RetumBook)、借出圖書一覽表(BorrowBookList)和未按期歸還圖書一覽表(OverdueList)。如圖所示為“圖書借還信息管理”用例的設計類圖。
圖“圖書借還信息管理”用例設計類圖
· BorrowBook類——屬于業務模型包,繼承BpUpdateFrame類,與DbChoice類相關聯,實現圖書借閱功能。
· ReturnBook類——屬于業務模型包,繼承BpUpdateFrame類,與DbChoice類相關聯,實現圖書歸還功能。
· BorrowBookList類——屬于業務模型包,繼承BpSelectFrame類,與DbChoice類相關聯,顯示借出圖書清單一覽表。
· OverdueList類——屬于業務模型包,繼承BpSelectFrame類,與DbChoice類相關聯,顯示未按期歸還圖書與讀者清單一覽表。
2.順序圖
如圖所示為讀者ID與圖書ID都存在情況下的“借閱圖書”用例的順序圖。
“登錄圖書信息”順序圖
3.屬性和方法設計
如圖所示為添加了屬性和方法“圖書借還信息管理”用例的設計類圖。
添加屬性和方法后的“圖書借還信息管理”類圖
BorrowBook類的屬性和方法設計如下:
· sql屬性——定義執行插入操作的SQL命令字符串。
· BorrowBook()方法——類的構造方法。①調用DbChoice類的對象實例,以實現加載JDBC驅動程序,創建數據庫連接等功能;②提供添加圖書信息界面。· checklnsert()方法——①檢查各輸入項的輸入格式是否正確;②檢查借閱圖書ID是否存在。
· makeInsertStmt()方法——定義執行插入操作的SQL命令字符串。
· afterInsert()方法——清空借閱圖書界面的各輸入項。
· checkSelect()方法——檢查是否輸入讀者ID和圖書ID。
· makeSelectStmt()方法——顯示檢索結果。
· checkDelete()方法——檢查是否可執行刪除操作。
· makeDeleteStmt()方法——定義執行刪除操作的SQL命令字符串。
· afterDelete()方法——清空刪除操作后的各輸入項。
· clear()方法——清空所有的文本框。ReturnBook類的屬性和方法設計如下:
· sql屬性——定義執行插人操作的SQL命令字符串。
· RetumBook()方法——類的構造方法。①調用DbChoice類的對象實例,以實現加載JDBC驅動程序,創建數據庫連接等功能;②提供圖書歸還界面。
· checkUpdate()方法——檢查各修改項的修改格式是否正確。
· makeUpdateStmt()方法——定義執行修改操作的SQL命令字符串。· afterUpdate()方法——清空所有的文本框。BorrowBookList類的屬性和方法設計如下:
· sql屬性——定義執行插入操作的SQL命令字符串。
· BorrowBookList()方法——類的構造方法。①調用DbChoice類的對象實例,以實現加載JDBC驅動程序,創建數據庫連接等功能;②提供實現“借出圖書一覽表”功能的界面。
· makeSelectStmt()方法——定義執行檢索操作的SQL命令字符串。
· setSelectedData()方法——顯示檢索結果。OverdueList類的屬性和方法設計如下:
· sql屬性——定義執行插入操作的SQL命令字符串。
· xOverdueList()方法——類的構造方法。①調用DbChoice類的對象實例,以實現加載JDBC驅動程序,創建數據庫連接等功能;②提供實現“未按期歸還圖書一覽表”功能的界面。
· makeSelectStmt()方法——定義執行檢索操作的SQL命令字符串。
· setSelectedData()方法——顯示檢索結果。
組件包設計:
組件包包含被所有其他包使用的通用組件,圖書管理系統的組件包由Const、DbChoice、BpUtil三個類組成,這三個類定義了系統所有其他類所使用的公共常量與公共方法。另外,IconCanvas(加載系統界面所使用的圖標)、MsgDialog(信息顯示對話框)、SQLExceptionDialog(顯示數據庫異常信息對話框)3個類也為系統所有其他類所公共使用。在此與組件包中的類一起進行說明。1.Const類
Const類定義了系統所使用的公共名稱等常量,其類圖如圖所示。
Const類的類圖
2.BpUtil類
BpUtil類定義了系統使用的公共方法,其類圖如圖所示。
BpUtil類的類圖
BpUtil類的方法設計如下:
· repeateString()方法——返回指定個數的字符串對象。
· varchar2text()方法——返回按照指定長度調整的字符串對象。
· setComp()方法——在組件上按照CridBagConstraints布局配置Panel。· checkWaming()方法——檢查數據庫連接操作是否出現異常。· isNumeric()方法——驗證字符串能否轉換為數值。
· getToday()方法——以YYYY/MM/DD的格式返回今日的日期。
· getToday()方法——返回以今日為基點的指定為YYYY/MM/DD格式的日期。· isYMD()方法——驗證能否識別YYYY/MM/DD格式的字符串。· GB2312Unicode()方法——GB2312轉換為Unicode。· UnicodeGB2312()方法——Unicode轉換為GB2312。
· getRowCount()方法——求數據表中滿足條件的記錄數。
· convYMD()方法——Java.util.Date類型數據轉換為YYYY/MM/DD格式。
3.DbChoice類
DbChoice類定義了用于數據庫操作的實例變量與實例方法,其類圖如圖所 示。
DbChoice類的類圖
DbChoice類的屬性和方法設計如下:
· con屬性——定義用于數據庫連接的實例變量。· query屬性——定義用于SELECT語句的實例變量。· displayCol屬性——定義用于檢索結果的列數。
· valueCol屬性——定義方法getSelectedVal()返回值的列數。
· vItem屬性——定義用于保存方法getSelectedVal()返回值的Vector · DbChoice()方法——構造方法,用于初始化實例變量。· setQueryData()方法——執行檢索操作。· getSelectedVal()方法——返回檢索結果。· setValueCol()方法——設置列的值。· getValueCol()方法——返回列的值。
· setDisplayCol()方法——設置顯示列的值。· getDisplayCol()方法——返回顯示列的值。
· setDisplayhem()方法——設置顯示項的列的值。4.IconCanvas類
IconCanvas類用于完成加載系統界面所使用圖標的功能,其類圖如圖所示。
IconCanvas類的類圖
IconCanvas類的方法設計如下:
· IconCanvas()方法——構造方法,用于完成加載圖像文件的功能。· paint()方法——用于完成顯示圖像文件的功能。5.MsgDialog類
MsgDialog類用于完成顯示系統界面所使用的信息對話框功能,其類圖如圖13.19所 示。
MsgDialog類的類圖
MsgDialog類的屬性和方法設計如下:
· MsgDialog()方法——構造方法,用于生成信息顯示區域,定義信息對話框的標題、布局管理器等功能。
· actionPerformed()方法——用于處理發生的事件。
6.SQLExceptionDialog類
當發生數據庫異常時,SQLExceptionDialog類定義了用于顯示數據庫異常信息對話框,其類圖如圖所示。
SQLExceptionDialog類的類圖
SQLExceptionDialog類的屬性和方法設計如下:
· SQLExceptionDialog()方法——構造方法,用于定義發生的SQL異常。· actionPerformed()方法——用于處理發生的事件。· setMessage()、方法——用于顯示發生的異常信息。系統管理詳細設計:
系統管理由Bookplate和LoginDialog兩個類組成,Bookplate類用于顯示系統主功能界面,LoginDialog類用于顯示用戶登錄對話框界面。Bookplate類與LoginDialog類之間有單向關聯關系,即Bookplate類中定義的實例變量dialog可以調用LoginDialog類的構造函數,以實現系統登錄界面的顯示,描述兩者之間關系的類圖如圖所示。
“系統管理”用例設計類圖
Bookplate類的方法設計如下:
· main()方法——系統執行的入口點,用于顯示系統主功能界面。
· Bookplate()——構造方法,用于設置系統框架(Frame)、標題、菜單、按鈕布局、標簽等系統組件。
· aetionPerformed()——當用鼠標左鍵點擊各功能按鈕時,分別調用各個子功能系統,同時實現生成、顯示和隱藏對應的框架的功能。LoginDialog類的方法設計如下:
· LoginDialog()方法——構造方法,用于設置用戶登錄對話框界面的標題、顯示信息區域、設置標簽和文本域、生成按鈕等功能。
· actionPerformed()——當用鼠標左鍵點擊功能按鈕時,處理所觸發的事件。· getStatus()——返回按鈕的狀態值。· getUserID()——返回用戶ID。· getPassword()——返回用戶口令。
? 數據庫設計(表略)
? 完成設計規約
第四篇:基于UML的圖書管理系統的分析與設計
基于UML的圖書管理系統的需求分析與設計
摘要:本文對面向對象的概念、UML產生的背景及其基本內容進行了闡述,在對圖書館圖書管理系統進行功能描述和需求分析的基礎上,結合軟件工程和面向對象需求分析,設計了基于UML的用例圖、包圖和順序圖,狀態圖等語言機制的圖書館圖書管理系統模型。關鍵詞: UML;建模語言;面向對象;需求分析;圖書管理系統 1關于面向對象
面向對象是一種的程序設計方法,或者說它是一種程序設計類型,其基本思想是使用對象,類,繼承,封裝,消息等基本概念來進行程序設計。它是從現實世界中客觀存在的事物(即對象)出發來構造軟件系統,并在系統構造中盡可能運用人類的自然思維方式,強調直接以問題域(現實世界)中的事物為中心來思考問題,認識問題,并根據這些事物的本質特點,把它們抽象地表示為系統中的對象,作為系統的基本構成單位(而不是用一些與現實世界中的事物相關比較遠,并且沒有對應關系的其它概念來構造系統)。這可以使系統直接地映射問題域,保持問題域中事物及其相互關系的本來面貌。它可以有不同層次的理解:
(1)從世界觀的角度可以認為:面向對象的基本哲學是認為世界是由各種各樣具有自己的運動規律和內部狀態的對象所組成的;不同對象之間的相互作用和通訊構成了完整的現實世界。因此,人們應當按照現實世界這個本來面貌來理解世界,直接通過對象及其相互關系來反映世界。這樣建立起來的系統才能符合現實世界的本來面目。
(2)從方法學的角度可以認為:面向對象的方法是面向對象的世界觀在開發方法中的直接運用。它強調系統的結構應該直接與現實世界的結構相對應,應該圍繞現實世界中的對象來構造系統,而不是圍繞功能來構造系統。
(3)從程序設計的角度來看,面向對象的程序設計語言必須有描述對象及其相互之間關系的語言成分。這些程序設計語言可以歸納為以下幾類:系統中一切皆為對象;對象是屬性及其操作的封裝體;對象可按其性質劃分為類,對象成為類的實例;實例關系和繼承關系是對象之間的靜態關系;消息傳遞是對象之間動態聯系的唯一形式,也是計算的唯一形式;方法是消息的序列。
面向對象的方法學包括了以下核心概念:
對象(object):即指現實世界中各種各樣的實體。它可以指具體的事物也可以指抽象的事物。
類(class):類是具有相似內部狀態和運動規律的實體的集合(或統稱、抽象)。類的概念來自于人們認識自然、認識社會的過程。
消息(Message): 消息是指對象間相互聯系和相互作用的方式。一個消息主要由5部分組成:發送消息的對象、接收消息的對象、消息傳遞辦法、消息內容(參數)、反饋。
封裝:對象間的相互聯系和相互作用過程主要通過消息機制得以實現。對象之間并不需要過多的了解對方內部的具體狀態或運動規律。面向對象的類是封裝良好的模塊,類定義將其說明(用戶可見的外部接口)與實現(用戶不可見的內部實現)顯式地分開,其內部實現按其具體定義的作用域提供保護。類是封裝的最基本單位。封裝防止了程序相互依賴性而帶來的變動影響。在類中定義的接收對方消息的方法稱為類的接口。
繼承:類之間的繼承關系是現實世界中遺傳關系的直接模擬,它表示類之間的內在聯系,以及對屬性和操作的共享,即子類可以沿用父類的某些特征。
重載:重載是指類的同名方法在給其傳遞不同的參數是可以有不同的運動規律。在對象間相互作用時,即使接收消息對象采用相同的接收辦法,但消息內容的詳細程度不同,接收消息對象內部的運動規律也可能不同。關于UML UML(Unified Modeling Language)是在Booch方法、OOSE方法和OMT方法的基礎上演化而來的基于面向對象技術的標準建模語言。它統一了面向對象建模的基本概念、術語和圖示符號,描述了建模過程中所必須遵循的基本步驟,提供了一整套描述軟件系統模型的概念和圖形表示法,可從不同的視角為系統建模。統一建模語言UML是一種語義豐富、通用、可視化的建模語言和事實上的國際工業標準,易于理解和交流。UML提供的豐富的視圖從多個視角描述系統的不同側面,可以有效運用于軟件的建模、分析與設計。標準建模語言UML的定義包括UML語義和UML表示法兩個部分。UML語義通過其元模型來嚴格地定義。UML表示法定義UML符號的表示法,為開發者或開發工具使用這些圖形符號和文本語法來建模提供標準。這些圖形符號和文字所表達的是應用級的模型,在語義上它是UML元模型的實例。UML的主要內容通常用用例圖、類圖、對象圖、狀態圖、活動圖、構件圖、配置圖、順序圖、協作圖和包圖等l0種圖來描述,它們從不同的角度和層次為系統建模提供支持,完全可以 描述系統的方方面面。
與傳統的軟件建模方法相比, UML 有如下一些特點:(1)UML 是一個可視化建模語言, 是一種圖形化的面向對象的設計工具語言,而不是可視化程序設計語言,但用UML描述的模型可與各種編程語言直接相連,把UML 模型映射成編程語言。在不同程序中使用同樣的UML 圖表類型, 因為UML 具有任意程序的獨立性,定義一個標準程序不是一個UML 的目標。
(2)UML 是一種可用于詳細描述的語言,其所建立的模型是精確、無歧義和完整的。同時UML是一種文檔化的語言,對其各建模元素可進行詳細說明,并能生成所建模型的文檔。標準建模語言UML支持面向對象的分析與設計,定義良好、易于表達、功能強大。它的最大用途是利用圖形來描述真實世界各個對象的符合表示,讓所有系統設計者在構建系統需求分析、對象模型化定義到對象設計的整個開發過程完全標準化。3 本課題的研究意義
一個圖書館的圖書資料庫在正常運轉中總是面對大量的讀者信息、書籍信息以及兩者相互作用產生的借書信息、還書信息。圖書館作為一個信息資源的集散地,圖書和用戶借閱資料繁多,包含著很多的信息數據。以前對信息管理的主要方式是基于文本、表格等紙介質的手工處理,對于圖書借閱情況(如借書天數、超過限定借書時間的天數)的統計和核實等往往采用人工檢查,對借閱者的借閱權限以及借閱天數等采用人工計算、手抄進行,數據信息處理工作量大,容易出錯和丟失。因此,建立一個智能化、系統化、信息化的圖書資料庫是十分重要的。使用計算機軟件對圖書進行管理,是計算機應用的一部分。充分利用計算機的功能,實現對讀者管理、書籍管理等自動化控制,將會使圖書資料庫的工作強度大大減弱,可以實現圖書檢索迅速、可靠性高、存儲量大、壽命長、成本低,能最大限度地提高圖書管理的效率,也是圖書管理信息化、正規化管理的必然趨勢。4 基于UML的圖書管理系統的需求分析與設計過程
圖書管理系統的開發和應用主要通過兩個步驟來實現:首先是基于系統功能的需求分析,其次是系統模型的設計和實現。
4.1需求分析
需求分析是軟件工程過程的一個重要階段,其中一個主要任務是確定系統的功能需求,采用面向對象方法,基于UML的可視化系統需求分析,因為有用戶的積極參與,既可以加快設計者對于問題的理解,又能夠在系統描述方面減少語義差異,保證分析的正確性。需求分析的目標就是建立需求模型,即從功能需求出發建立用例模型, UML的用例視圖從用戶的需求中提取,以盒圖的方式描述待開發的系統的功能需求。每個用例都指定了客戶的需求即他們需要系統干什么。用例圖為設計活動不僅記 錄需求而且還提供了一種挖掘的信息, 它記錄了需求到設計結果之間的映射關系,能夠確保設計結果具有明確的根據或者說具有可維護性,基于UML的軟件開發過程是以用例驅動的。
首先我們進行角色識別,角色識別的任務是找出所有可能與系統發生交互行為的外部實體、對象、系統。它們的行為不受系統控制,但是可以提供輸入給系統。對于一所大學的圖書管理系統,基本的功能是完成圖書的借閱和相關信息的管理,服務的對象有本科生,研究生,教師,及其他學校的學生,還有社會人員,這些人可歸結為一類即讀者。而為幫助讀者順利完成借還書的可以是工作人員,可以是自動借還書機,他們可以歸結為一類即圖書管理人員。因此對于一個圖書管理系統主要有兩類角色,讀者、圖書管理員。
其次,在主要角色的基礎上,可以識別出與角色相應的用例,從而得到系統的用例模型。與讀者相關的過程包括:借書、還書、預定、圖書信息檢索、借閱查詢(如查詢本人借書記錄、還書期限、是否超期)、個人相關信息查詢及修改(如學號、姓名、性別、年級、專業、家庭住址、聯系電話、出生日期、民族、政治面貌、身份證號等)。與圖書管理員相關的過程包括:辦理借書、辦理還書、解除預定、圖書訂購、讀者信息管理(增加/刪除讀者、修改讀者權限及密碼、借閱超期罰款)、圖書信息管理(增加/刪除數目、圖書類別等相關信息的修改、流通情況)。系統管理(系統的登陸、退出、日志維護、系統更新)。以上分析中,與讀者,圖書管理員相關的過程構成了本系統的基本用例。
4.2 系統的整體結構
綜上所述一個圖書管理系統的整體結構可以分為三大模塊:圖書管理模塊、讀者管理模塊、系統管理模塊。
(1)圖書管理模塊包括與圖書相關的一些過程,主要有圖書的借出、圖書的歸還、預定、圖書信息檢索、圖書訂購、圖書相關信息管理。
(2)讀者管理模塊主要包括與讀者有聯系相關的過程,主要有增加/刪除讀者、修改讀者權限及密碼、借閱信息查詢、個人信息查詢及修該、借閱超期和丟失罰款。
(3)系統管理模塊包括系統的登陸、退出、系統維護、系統更新。綜上我們畫出系統的整體結構,如圖一所示:
圖書管理系統圖書管理讀者管理圖一 圖書管理系統的整體結構
系統管理 4.3 圖書管理系統的用例圖
從以上分析中我們不難得出系統的基本用例圖,如圖二所示:
借書/還書預定/解除預定圖書檢索圖書信息管理圖書訂購借閱信息查詢個人信息查詢/修改讀者信息管理 讀者借閱超期罰款 圖書管理員系統管理圖二 系統的基本用例圖
圖書管理和圖書管理是圖書管理系統的重要組成部分,為此我們按照前文所述將圖書管理模塊和讀者模塊以及系統管理模塊詳細精化得出如下的用例圖,如圖
三、圖
四、圖五所示:
按年代查詢圖書借入借出管理出版社查詢圖書購入作者查詢圖書查詢書名查詢圖書管理模糊查詢圖書管理員圖書信息管理類別查詢信息刪除信息添加
圖三 圖書管理模塊的用例圖
信息修改增加/刪除讀者修改權限個人信息查詢/修改圖書管理員讀者管理讀者借閱信息查詢讀者辦理掛失圖四 讀者管理用例圖
超期/丟失罰款
登陸/退出軟件更新系統管理系統更新 管理員系統維護硬件更新日志維護 圖五 系統管理模塊的用例圖
4.4 圖書管理系統的行為圖
我們再進行動態建模分析。對于圖書管理系統借書還書是兩個重要的過程,我們先來分析一下借書、還書的一般過程,并由借書的一般過程畫出其順序圖、協作圖以及活動圖。
(1)借書的過程:讀者刷卡進入圖書館,或者先查詢圖書及個人借閱信息,或者直接去挑選圖書,選擇好圖書后進入借書程序,管理員先檢查讀者的借書證件,查驗能否借閱,比如:證件是否無效或書籍是否已經借滿等,即檢驗其借書的合法性和有效性,如果是非法用戶或借書數量范圍外,則該讀者不能借閱圖書。如果滿足借閱要求,則再獲取所借書的標題以進行庫內搜索,獲取書目查詢此書的數量,看是否還有此書,如果沒有則阻止其他借書者可能進行的預訂活動,將此書借出,根據書號將此書的借閱標志位取反以表示此書已借出,并將此書的書目減1。并為此讀者記錄借閱日期,以及歸還日期,在歸還日期內未能歸還和續借的,并為其記錄超借天數及罰款數額。
(2)還書過程:在返還圖書的過程中,管理員首先獲取讀者的借閱信息和被歸還的書籍的信息,如書標題信息,數量等,并一一審核每本書的歸還日期是否超過應歸還日期。在完成階段,將此書的書號登記并設計標志位為已歸還,以便讀者網上預訂和繼續借閱,同時將此類圖書的數量加1,如果讀者超期或丟失所借書籍,則要進行賠償處理。
所以我們不難畫出借書一般過程的順序圖,如圖六所示:
圖書管理員讀者信息圖書信息修改圖書借出刷卡進入并選書核對讀者信息 圖書掃描并消磁修改讀者借閱信息圖六 借書一般過程的順序圖
有順序圖可得到協作圖,如圖七所示。仔細分析借書過程的細節,可以畫出如圖八所示的活動圖,它表示了復雜算法的過程,尤其是過程中的判斷、并發和同步。
刷卡進入 讀者挑選圖書圖書管理員 核對信息圖書信息修改圖書掃描 消磁讀者借閱信息 修改讀者信息圖書借出
圖七 借書一般過程的協作圖
讀者 管理系統N禁止入內刷卡是否為本館服務對象Y輸入卡號/密碼選擇圖書N卡號密碼正確?Y個人信息查詢/修改Y借閱信息查詢圖書檢索刷條形碼顯示讀者相關信息能否借閱N確定借書NY刷圖書條碼更改改讀者及圖書的借閱信息退出是否借閱完畢YN圖八 借書過程活動圖
以上我們用多種語言機制分析了讀者的主要相關事件流,下面我們繪制圖書管理員使用系統的狀態圖分析圖書管理員的主要事件流。從以上分析可知,圖書管理員相關的過程包括:辦理借書、辦理還書、解除預定、圖書訂購、讀者信息管理(增加/刪除讀者、修改讀者權限及密碼、借閱超期罰款)、圖書信息管理(增加/刪除數目、圖書類別等相關信息的修改、流通情況)。由此我們可繪制如圖九所示的圖書管理員使用系統的狀態圖:
登陸關閉辦理借書修改圖書信息辦理還書增加數目圖書預留取消增加加讀者解除預定刪除讀者查詢數目存儲信息修改讀者權限查詢讀者信息圖九圖書管理員使用系統的狀態圖
4.5 圖書管理系統的靜態圖
定義并描述了各個類后,我們可以根據實際情況引入包來管理類,本圖書館管理系統可以劃分為四個包:用戶管理:對系統用戶進行管理,為用戶提供信息服務接口,便于對系統進行操作。借閱管理包括借書處理,還書處理和罰款處理等。讀者管理包括對讀者圖書等信息進行維護,主要有讀者信息的增刪,對圖書更新資料進行維護。系統服務:包括系統登錄檢查,安全維護等。系統的包圖如圖十所示:
用戶管理借閱管理讀者及圖書管理系統服務 圖十 系統包圖 4.6 圖書管理系統的實現
經過系統分析和設計后,就可以根據設計模型在具體的環境中實現系統,生成系統的源代碼、可執行程序和相應的軟件文檔,建立一個可執行系統。進而需要對系統進行測試和排錯,保證系統符合預定的要求,獲得一個無錯的系統實現。測試結果將確認所完成的系統可以真正使用。參考文獻
[1] 齊治昌.譚慶平.寧洪.軟件工程.北京:高等教育出版社 [2] 張海藩.軟件工程.北京:人民郵電出版社
[3] 董翔.基于UML的圖書管理系統的開發和應用.科技情報開發與經濟2008年第l8卷第l2期 [4] 吳開華.邢養曉.羅德撤
.數字圖書館元數據研究[J].中國圖書館學報,2002,(3).
[5] 劉治國.構建基于B/S結構的圖書管理系統[J].信息技術,2005(3):72—73. [6] 管斌.袁國忠 譯.用例驅動的UML對象建模應用-范例分析.北京:人民郵電出版社 結束語
本文以一個圖書館圖書管理系統開發為背景,針對圖書館對圖書資源進行有效利用和管理的功能需求,采用統一建模語言(UML)對圖書資源進行面向對象的描述,通過利用統一建模語言UML中的各種圖形,分析和設計圖書管理系統,建起了圖書管理的面向對象模型,探討了基于UML的體系結構建模及其實現問題。由建模過程可以看出UML在體系結構建模方面存在很好的優勢,不但從整體上正確描述了該圖書管理系統的體系結構,并且可以充分利用UML面向對象的優勢,從而實現整個軟件系統面向對象的分析、設計與開發,大大縮短開發周期,最終使得項目成功完成,此管理系統節省了管理人員和讀者的大量時間,有利于信息處理效率的提高。鑒于篇幅有限,本文只對主要部分和主要過程做了介紹,限于水平,歡迎各位讀者對本文的缺點、錯誤提出批評。
第五篇:圖書管理系統需求分析
云南工商學院09信息管理1班
圖書管理系統需求分析
班級:09信息管理1班
組員: 唐學悅,段敏,楊文燕,胡勇毅,余科輯,林春宇,李波
任務分配情況:
云南工商學院09信息管理1班
目錄 系統需求概述...............................................................................................................................3 1.1 圖書管理系統功能概述....................................................................................................3 1.2 系統主要業務流程分析....................................................................................................3 1.3 系統功能模塊分析............................................................................................................3 1.4 建立用例模型....................................................................................................................4 1.4.1 讀者用例圖.............................................................................................................4 1.4.2 圖書管理員用例圖.................................................................................................4 1.4.3 系統管理員用例圖.................................................................................................5 1.5 詳述用例............................................................................................................................5 2 系統分析.......................................................................................................................................6 2.1 類圖....................................................................................................................................6 3 系統設計.......................................................................................................................................8 3.1 用例動態模型設計............................................................................................................8 3.1.1 實現“讀者查詢個人借閱信息”用例的動態模型.................................................8 3.1.2 實現“查詢圖書信息”用例的動態模型.................................................................9 3.1.3 實現“借閱圖書”用例的動態模型.........................................................................9 3.2 類圖設計..........................................................................................................................11 3.3 物理架構設計..................................................................................................................12 3.3.1 組件圖...................................................................................................................12 3.3.2 配置圖...................................................................................................................13 2
云南工商學院09信息管理1班
1.系統需求概述
1.1 圖書管理系統功能概述
圖書管理主要是借書、還書以及其他一些附帶操作(例如,超期罰款、催還圖書等)的處理。一個簡單的圖書管理系統應提供如下功能:
·借書處理:完成讀者借書的流程處理。·還書處理:完成讀者還書的流程處理。
·信息查詢:包括圖書信息查詢和讀者借閱情況查詢。·圖書管理:包括輸入新書記錄和刪除舊書記錄。
1.2 系統主要業務流程分析
與系統功能相對應,系統主要有4個流程:結束流程、還書流程、圖書查詢、圖書資源管理。各流程的主要過程描述如下:
·借書流程:讀者借閱所需的圖書,借出后圖書記錄中的借閱標志被置為false(不能再借),借書文件中增加一個借書記錄。
·還書流程:讀者歸還所借的圖書,還書后圖書記錄中的借閱標志被置為true(可被外借),在借書文件中刪除一個借書記錄。
·圖書查詢:讀者和工作人員可以進行圖書信息查詢,輸入圖書的編號或書名,可從圖書對象列表中查找相應的記錄。
·圖書管理:首先由工作人員在“錄入新書資料”和“刪除舊書資料”兩個選項中選擇。若是“錄入新書資料”,則由工作人員輸入新書資料,將新書添加為對象列表的新紀錄。若是“刪除舊書資料”,則查找需要刪除的圖書,將其從圖書對象列表中刪除。
1.3 系統功能模塊分析
滿足上述需求的系統主要包括以下幾個系統模塊:
·基本業務處理模塊:主要用于實現圖書管理員對讀者借閱圖書和歸還圖書的處理。
·信息查詢模塊:重要用于實現讀者對圖書信息和自身借閱信息的查詢。
云南工商學院09信息管理1班
·系統維護模塊:主要用于實現系統管理員對讀者信息、圖書管理員信息、圖書信息、和數據庫的管理。
1.4 建立用例模型
根據功能需求構造用例模型,主要任務是識別系統中的所有參與者,并對每個參與者找出其用例,建立用例模型。
系統主要的參與者為“讀者”、“圖書管理員”、和“系統管理員”。各個參與者的用例圖如下:
1.4.1 讀者用例圖
<
圖1-1 讀者用例圖
1.4.2 圖書管理員用例圖
<
圖1-2 圖書管理員用例圖
云南工商學院09信息管理1班
1.4.3 系統管理員用例圖
添加書目添加讀者刪除書目刪除讀者系統管理員查詢圖書查詢讀者
圖1-3 系統管理員用例圖
1.5 詳述用例
在識別了參與者和主要用例并創建了用例圖之后,如果有必要,還可以按順序詳述每個用例,包括用例如何開始、結束以及如何與參與者進行交互。
表1-1 讀者查找個人借閱信息用例
用例:讀者查找個人借閱信息(用例名稱)(唯一標識符)(涉及用例的參與者)(用例開始時,系統必須滿足的條件)ID:1參與者:
1、讀者前提條件: 讀者已登錄到系統事件流:
1、讀者選擇查找個人借閱信息界面
2、讀者輸入圖書證編號
3、系統按圖書證編號查找讀者借閱信息結果:系統向讀者顯示讀者借閱信息,該用例結束(用例中的實際步驟)(用例結束時,系統的狀態)
云南工商學院09信息管理1班
表1-2 讀者查找圖書信息用例
用例:讀者查找圖書信息(用例名稱)(唯一標識符)(涉及用例的參與者)ID:2參與者:
1、讀者(用例開始時,系統必須滿足的條件)前提條件: 讀者已經啟動圖書管理系統,并已知書名或書號事件流:
1、讀者選擇查找圖書信息界面
2、讀者輸入書名或書號
3、系統按書名或書號查找圖書信息結果:系統向讀者顯示圖書信息,該用例結束(用例中的實際步驟)(用例結束時,系統的狀態)系統分析
2.1 類圖
在定義系統需求后,下一步就是確定系統中存在的對象類。系統中對象類的識別可以使用名詞/動詞分析法來進行,即文本中的名詞和名詞短語暗示類或類的屬性,動詞和動詞短語暗示職責或者類的操作。
通過用例圖的分析可知,在圖書管理系統中可以確定的主要對象類包括 “讀者”,“圖書”、“圖書管理人員”和“系統管理員”。其中“讀者”和“圖書”通過借閱關系可以構成一個新類“借閱記錄”。
另外,分析用例圖可知,用例“身份驗證”和“圖書資料查詢”是對象類“讀者”和“工作人員”共同擁有的,并且用例“身份驗證”是除用例“圖書資料查詢”之外其余用例執行的前提,因此可以將“身份驗證”與“圖書資料查詢”定義為接口類中的操作(接口類是不含屬性且操作函數沒有具體實現的抽象類,接口類通過一個實現聯系獲得其它對象類的支持,這些對象類實現接口類中定義的全部操作)。其余用例則抽象為與該用例交互的參與者所屬對象類的操作。因此,最后可獲得的對象類圖為:
云南工商學院09信息管理1班
系統管理員-name-password1*讀者-name-number-password+借書()+還書()+借閱情況查詢()***<
圖1-4 系統對象類圖
除了定義上述用于系統數據信息存儲管理和業務邏輯控制的類之外,在用圖形用戶界面開發系統時,我們還可以定義一些相應的用戶界面類:
(1)MainWindow類—MainWindow是圖書管理員與系統交互的主界面,系統的主 界面具有菜單,當用戶選擇不同的菜單項時,MainWindow對象調用相應的方法完成功能操作。
(2)BorrowDialog類—BorrowDialog是進行借書操作時需要的對話框。(3)ReturnDialog類—ReturnDialog是進行還書操作時需要的對話框。(4)QueryDialog類—QueryDialog是查詢某借閱者的借閱信息或圖書庫存信息的對話框。
(5)MaintenanceWindow類—MaintenanceWindow是系統管理員對系統進行維護的主界面,它也提供菜單項。
ReturnDialogBorrowDialogMainWindowQueryDialogMaintenanceDialog 圖1-5圖書管理系統的用戶界面類
云南工商學院09信息管理1班 系統設計
系統設計的主要工作是用例實現—設計。即對每個用例進行動態建模,包括建立序列圖、協作圖等,描述如何通過類對象的協作來實現用例中的功能。隨著動態建模的深入,會發現原來建立的類存在缺陷或不夠完整,需要對分析中得到的類圖進行不斷的修正和調整。所以,還應該通過動態建模來修正和完善類圖。
3.1 用例動態模型設計
3.1.1 實現“讀者查詢個人借閱信息”用例的動態模型
:MainWindow:QueryDialog:BorrowBookBorrower1:queryLoan2:createDialog3:queryLoanInfo4:getBook5:消息查詢6:返回借閱信息7:顯示借閱信息
圖1-6 讀者查詢個人借閱信息序列圖
1:queryLoan():MainWindowerBorrower6:顯示借yLoanInfo()閱信息5:返回借閱信息:Borrower-Book4:getBook():QueryDialog2:createDialog()3:qu
圖1-7 讀者查詢個人借閱信息協作圖
云南工商學院09信息管理1班
3.1.2 實現“查詢圖書信息”用例的動態模型
:MainWindow:QueryDialog:BorrowBookBorrower1:queryLoan2:createDialog3:queryLoanInfo4:findBook5:圖書信息查詢6:返回圖書信息7:顯示圖書信息 圖1-8 讀者查詢圖書序列圖
1:queryLoan():MainWindowerBorrower6:顯示圖yLoanInfo()書信息5:返回圖書信息:Borrower-Book4:findBook():QueryDialog2:createDialog()3:qu
圖1-9 讀者查詢圖書協作圖
3.1.3 實現“借閱圖書”用例的動態模型
云南工商學院09信息管理1班
:MainWindow:BorrowDialog:QueryDialogBorrower1:queryLoan2:createDialog4:查詢圖書庫存5:返回圖書是否可借6:修改讀者的借閱信息及庫存信息7:修改成功8:顯示借書成功
圖1-10 讀者借閱圖書序列圖
2:createDialog()oan():MainWindow:BorrowDialogry1:queL息6:顯示借書成功存庫信書借存圖可庫詢否及查是息功:4書信成圖閱改修Borrower回借:7返者:讀5改修:6:QueryDialog
圖1-11 讀者借閱圖書協作圖
云南工商學院09信息管理1班
3.1.4 實現“歸還圖書”用例的動態模型
:MainWindow:ReturnDialog:QueryDialogBorrower1:queryLoan2:createDialog3:修改讀者的借閱信息及庫存信息4:修改成功5:顯示還書成功
圖1-12 讀者歸還圖書序列圖
1:queryLoan():MainWindowBorrower6:顯示還書成功4:修改成功:QueryDialog3:修改讀者的借閱信息及庫存信息:ReturnDialog2:createDialog()
圖1-13 讀者歸還圖書協作圖
3.2 類圖設計
進一步擴充和細化分析階段定義的類,包括定義新的類來處理用戶的需求。隨著動態建模的深入,也會發現原來建立的類存在缺陷或不夠完整,需要對分析中得到的類圖進行不斷的修正和調整。所以,還應該通過動態建模來修正和完善類圖。
云南工商學院09信息管理1班
系統管理員-name:string-password:string+AddBook()+QueryBook()+AddBorrower()+QueryBorrower()借書記錄-borrower:string-book:string-date:Date+newLoan()+getBorrower()+getBook()11*讀者-name:string-number:string-password:string+Borrow()+Return()+QueryLoan()***<
圖1-14 設計類圖
3.3 物理架構設計
物理架構設計就是用UML圖形描述系統軟件和硬件的大致結構,包括畫出組件圖和配置圖。
3.3.1 組件圖
組件圖:表示構成軟件系統的各物理組件及其相互之間的聯系。它能明確表示軟件系統各部分的功能職責。圖書管理系統的組件圖如下所示,其中包含“借/還書處理”、“信息查詢”、“圖書資源管理”和“身份驗證”等組件。
云南工商學院09信息管理1班
圖書管理系統借/還處理信息查詢圖書資源管理身份驗證圖書信息借閱信息
圖1-15 系統組件圖
3.3.2 配置圖
圖書管理系統是一個基于網絡和數據庫的應用系統,可以采用B/S結構,系統配置圖下圖所示:
數據庫服務器圖書信息借閱信息讀者客戶端借/還書處理工作人員客戶端公共客戶端身份驗證圖書資源管理借閱信息圖書資料查詢 圖1-16 系統配置圖