王玉筠
摘 要:對(duì)UML的主要功能進(jìn)行了詳細(xì)的介紹,同時(shí)分析了基于UML圖書(shū)管理系統(tǒng)的開(kāi)發(fā)要點(diǎn),包括模型的設(shè)計(jì)和實(shí)現(xiàn)過(guò)程,然后對(duì)圖書(shū)管理系統(tǒng)的應(yīng)用進(jìn)行了簡(jiǎn)要的介紹。
關(guān)鍵詞:UML;圖書(shū)管理系統(tǒng); 建模設(shè)計(jì);開(kāi)發(fā)應(yīng)用
一、UML概述
所謂的UML,英文全稱為The Unified Modeling Language,也就是同意建模語(yǔ)言,是一種用于編制系統(tǒng)藍(lán)圖的標(biāo)準(zhǔn)化語(yǔ)言,常用于復(fù)雜系統(tǒng)建立可視化系統(tǒng)模型。
1.靜態(tài)建模。UML提供了諸如類圖、例圖以及實(shí)施圖和組件圖等眾多圖來(lái)進(jìn)行圖書(shū)管理系統(tǒng)的靜態(tài)結(jié)構(gòu)建模。類圖(Class Diagram)主要用于對(duì)系統(tǒng)中類之間的關(guān)系進(jìn)行描述;例圖(Use Diagram)主要用于對(duì)系統(tǒng)的需求進(jìn)行分析;實(shí)施圖(Deployment Diagram)用于對(duì)節(jié)點(diǎn)處理和節(jié)點(diǎn)活動(dòng)的配置;組件圖(Component Diagram)用于組件以及組件之間關(guān)系的顯示。2.動(dòng)態(tài)建模。UML用于動(dòng)態(tài)建模的圖主要是協(xié)作圖、順序圖、狀態(tài)圖以及活動(dòng)圖來(lái)對(duì)系統(tǒng)的動(dòng)態(tài)進(jìn)行建模。協(xié)作圖(Collaboration Diagram)是從空間上對(duì)系統(tǒng)中對(duì)象之間消息的發(fā)送和接受進(jìn)行描述,順序圖(Sequence Diagram)則是從時(shí)間上進(jìn)行描述,狀態(tài)圖(State Diagram)則是用于對(duì)對(duì)象狀態(tài)變化進(jìn)行建模的;活動(dòng)圖(Activity Diagram)是按照活動(dòng)控制流程制作的流程圖。3.正向工程。將模型轉(zhuǎn)化成代碼被稱為正向工程,可以實(shí)現(xiàn)模型向具體語(yǔ)言的映射。正向工程中的元素測(cè)試可以借助況圖來(lái)實(shí)現(xiàn),而類圖可以將模型形成具體的代碼。4.逆向工程。與正向工程相反,逆向工程是實(shí)現(xiàn)代碼向圖形化模型的轉(zhuǎn)化,是把代碼轉(zhuǎn)化成模型的過(guò)程。逆向工程主要功能是保證系統(tǒng)同模型的一致性,使得模型能夠準(zhǔn)確而真實(shí)地反映出系統(tǒng)現(xiàn)狀。
二、基于UML圖書(shū)管理系統(tǒng)的開(kāi)發(fā)
基于UML的圖書(shū)管理系統(tǒng)開(kāi)發(fā),主要的兩個(gè)步驟時(shí)建模和實(shí)現(xiàn),建模主要通過(guò)兩個(gè)步驟實(shí)現(xiàn),一個(gè)是需求分析,然后就是系統(tǒng)模型的設(shè)計(jì)(主要是設(shè)計(jì)例圖、交互框圖和合作框圖)。以下就借助Rational 來(lái)對(duì)建模過(guò)程進(jìn)行統(tǒng)一的描述,其中的圖形是利用Rationa-Rose工具進(jìn)行繪制的。
1.需求分析。圖書(shū)管理系統(tǒng)中的主要角色是由兩個(gè),一個(gè)是圖書(shū)管理員,另一個(gè)則是結(jié)束這,其中圖書(shū)管理員就是此系統(tǒng)的用戶,而借書(shū)者則是客戶,這兩者的聯(lián)系都設(shè)計(jì)到了書(shū)記。其中圖書(shū)管理員實(shí)現(xiàn)借書(shū)者的功能,如果使用例示圖就可以表述為:借出書(shū)目(Lend Process);預(yù)訂( Make Reservation)和刪除預(yù)訂(Remove Reservation);增加數(shù)目(Add Book);刪除書(shū)目(Remove Book);增加標(biāo)題(Add Title)和更新標(biāo)題(Update Title);增加借書(shū)者(Add Borrower)和更新借書(shū)者(Update Borrower)。
(1)例圖設(shè)計(jì)。根據(jù)上述分析,我們可以將需求劃分為三個(gè)子模塊:管理子系統(tǒng)(Management Subsystem)、借書(shū)子系統(tǒng)(Lend Subsystem)和購(gòu)書(shū)子系統(tǒng)(Purchase Subsystem)。其中管理子系統(tǒng)包括對(duì)圖書(shū)的書(shū)名增添以及更新、增加和更新借書(shū)者信息這四個(gè)主要過(guò)程;借書(shū)子系統(tǒng)包括對(duì)書(shū)目的返回、預(yù)定和刪除預(yù)定這四個(gè)子操作;購(gòu)書(shū)子系統(tǒng)則包括了增加和刪除書(shū)目?jī)蓚€(gè)過(guò)程。因此圖書(shū)管理系統(tǒng)的主要構(gòu)成可以表述為圖1。
在圖書(shū)管理系統(tǒng)中角色主要由管理員、借書(shū)者組成,兩者是通過(guò)書(shū)聯(lián)系一起,即借書(shū)和還書(shū)兩個(gè)操作,同時(shí)在管理者和書(shū)籍之間也存在著管理員返還、購(gòu)置和借出書(shū)籍等過(guò)程。(2)合作框圖和交互框圖設(shè)計(jì)。在進(jìn)行借書(shū)此操作時(shí),管理員首先需要對(duì)讀者的節(jié)約證件進(jìn)行檢查,保證讀者是擁有有效證件并且所借最大書(shū)籍?dāng)?shù)目是否借滿,在以上條件均滿足的條件下,系統(tǒng)才會(huì)依照搜索的條件對(duì)圖書(shū)館中的圖書(shū)進(jìn)行搜索,獲得書(shū)籍的數(shù)目,如果還存在未借出的書(shū)籍,就將此書(shū)借出并且對(duì)書(shū)籍的數(shù)目減一,同時(shí)對(duì)書(shū)號(hào)包含的借閱標(biāo)志位取反表示此書(shū)已經(jīng)借出。同樣,在進(jìn)行還書(shū)過(guò)程中也可以按照將整個(gè)過(guò)程分為準(zhǔn)備工作和完成工作,準(zhǔn)備階段是管理員了解書(shū)籍信息并按照每本書(shū)的信息檢查歸還日期是否超過(guò)了理應(yīng)歸還的日期。完成階段就是將此書(shū)書(shū)號(hào)等級(jí)并且將標(biāo)志位歸還為零,同時(shí)將此書(shū)的數(shù)量加一。(3)模型實(shí)現(xiàn)。實(shí)現(xiàn)圖的主要用途就是將現(xiàn)有的系統(tǒng)模型轉(zhuǎn)化為具體的代碼,此過(guò)程需要使用到逆向工程,目前眾多的UML建模工具都是可以提供這種轉(zhuǎn)化或者映射的,例如:Rational Rose就能夠成功實(shí)現(xiàn)模型想JAVA,VC++和VB等語(yǔ)言的轉(zhuǎn)化。存在于UML中的許多類都是可以在正向工程匯總使用,這些類在系統(tǒng)中都是存在一個(gè)類似圖的。每一個(gè)順序圖對(duì)象都是可以借助一個(gè)類實(shí)現(xiàn),對(duì)象則抽取其中的某個(gè)具體功能。然后將這種類映射到具體的語(yǔ)言就能夠成功實(shí)現(xiàn)代碼了。在這個(gè)系統(tǒng)中,我們自定義了一個(gè)基類用于表示角色,這個(gè)基類借助繼承就能夠創(chuàng)建借書(shū)者、書(shū)籍和管理者的具體對(duì)象了并且加入對(duì)象的特殊屬性,同時(shí),借書(shū)者這個(gè)類同書(shū)籍信息和讀者信息兩個(gè)類有著緊密的聚合關(guān)系,書(shū)籍類則與書(shū)籍的詳細(xì)信息、價(jià)格和登記等有聚合關(guān)系,通過(guò)此種劃分,部分類中的屬性和相關(guān)的方法就已經(jīng)可以定義了。
2.系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)。系統(tǒng)模型的設(shè)計(jì)完成之后就要上機(jī)進(jìn)行編程設(shè)計(jì)了,本系統(tǒng)可以使用JAVA加上Oracle數(shù)據(jù)訪問(wèn)技術(shù)實(shí)現(xiàn)的。在此系統(tǒng)中,設(shè)計(jì)了抽象的架構(gòu)視圖幫助開(kāi)發(fā)者實(shí)現(xiàn)具體的路標(biāo),并且對(duì)于任務(wù)的分配和具體技能提出了明確的要求,在基礎(chǔ)上設(shè)計(jì)了組件圖,它主要顯示在軟件組件中各代碼本身的結(jié)構(gòu),對(duì)于各組件的關(guān)聯(lián),包括源代碼,編譯代碼等提供了幫助,為此設(shè)計(jì)了圖2的組件圖為具體系統(tǒng)在web上實(shí)現(xiàn)提供了幫助。
三、小 結(jié)
對(duì)于一個(gè)圖書(shū)館而言,圖書(shū)管理系統(tǒng)對(duì)于圖書(shū)的借閱和歸還整理都起到了巨大的幫助作用。同時(shí)數(shù)字圖書(shū)館的開(kāi)發(fā)建設(shè)工作也是一件很復(fù)雜的軟件設(shè)計(jì)項(xiàng)目,需要依賴數(shù)據(jù)庫(kù)管理知識(shí)以及具體的編程語(yǔ)言和應(yīng)用軟件提供幫助。圖書(shū)管理系統(tǒng)是數(shù)字圖書(shū)館建設(shè)過(guò)程中一個(gè)重要的模塊,也是對(duì)大型軟件系統(tǒng)的一種嘗試,借助UML的強(qiáng)大功能來(lái)設(shè)計(jì)圖書(shū)管理系統(tǒng)能夠較為簡(jiǎn)單地實(shí)現(xiàn)模型向代碼的映射并且保證整個(gè)系統(tǒng)的安全性和可靠性,是一種值得嘗試的制作圖書(shū)管理系統(tǒng)的方法。
參考文獻(xiàn):
[1]. 劉豐.冷英男. 基于UML的一個(gè)應(yīng)用軟件建模實(shí)例[J]. 計(jì)算機(jī)與現(xiàn)代化. 2004(10).132-134
[2]. 李興鵬. 基于UML學(xué)生管理信息系統(tǒng)的分析與設(shè)計(jì)[J]. 北京郵電大學(xué).2008:101-121.
[3]. 段艷超. 基于UML建模技術(shù)的學(xué)生成績(jī)管理系統(tǒng)的設(shè)計(jì)[J]. 硅谷.2008(7): 73-75