學(xué)習(xí)筆記 UML建模在數(shù)字圖書館中的應(yīng)用
本文和大家重點(diǎn)討論一下UML建模在數(shù)字圖書館中的應(yīng)用,數(shù)字圖書館組織了一系列與平臺(tái)無(wú)關(guān)、面向?qū)ο?、分布式的?shù)字化信息資源并且提供相關(guān)的服務(wù),那么UML建模如何應(yīng)用在數(shù)字圖書館中呢,請(qǐng)看本文詳細(xì)介紹吧。
UML建模在數(shù)字圖書館中的應(yīng)用
1 引言
在信息技術(shù)迅猛發(fā)展及基于Internet網(wǎng)絡(luò)應(yīng)用日益普及的今天,傳統(tǒng)圖書館正在向自動(dòng)化、網(wǎng)絡(luò)化、電子化的數(shù)字化方向發(fā)展,這是目前網(wǎng)絡(luò)信息資源開發(fā)和研究的熱點(diǎn)。數(shù)字圖書館的建設(shè)涉及到信息資源數(shù)字化、多媒體數(shù)據(jù)庫(kù)、分布式網(wǎng)絡(luò)、信息管理系統(tǒng)結(jié)構(gòu)等多方面的問題,需要有效地集成和應(yīng)用最新的信息技術(shù)。如何在宏觀上有效地把握和組織,并運(yùn)用到數(shù)字圖書館的開發(fā)建設(shè)上,是數(shù)字圖書館研究的重點(diǎn)。UML(TheUnifiedModelingLanguage,即統(tǒng)一建模語(yǔ)言)是一種編制系統(tǒng)藍(lán)圖的標(biāo)準(zhǔn)化語(yǔ)言,可以對(duì)復(fù)雜的系統(tǒng)建立可視化的系統(tǒng)模型,目前已經(jīng)被工業(yè)標(biāo)準(zhǔn)化組織OMG(ObjectManagementGroup)接受,一經(jīng)推出便得到許多著名的計(jì)算機(jī)廠商如Microsoft、HP、IBM、Oracle等的支持,在國(guó)際上的應(yīng)用日益廣泛。數(shù)字圖書館的開發(fā)建設(shè)是一個(gè)復(fù)雜的軟件工程,需要集成不同的操作系統(tǒng)、數(shù)據(jù)庫(kù)和應(yīng)用軟件,有眾多不同級(jí)別的用戶、管理員,滿足圖書館從書目查詢、普通和電子書刊借閱到提供網(wǎng)上信息服務(wù)、資源共享等各種需求。用傳統(tǒng)的系統(tǒng)開發(fā)和集成的分析設(shè)計(jì)方法難以保證效率和質(zhì)量,UML的特點(diǎn)及數(shù)字圖書館的要求,決定UML在數(shù)字圖書館中應(yīng)該有很好的應(yīng)用前景。
1.1 UML建模中數(shù)字圖書館的基本特征和模式
數(shù)字圖書館組織了一系列與平臺(tái)無(wú)關(guān)、面向?qū)ο?、分布式的?shù)字化信息資源并且提供相關(guān)的服務(wù),它應(yīng)該具有以下一些特征[2][4]:
?。?)數(shù)字圖書館擁有海量的數(shù)字化資源,其信息度量單位不再是KB、MB,而是GB、TB甚至PB。數(shù)字化的資源又是多種媒體(如文字、圖像、音頻、視頻、虛擬空間等)的,具有多種存儲(chǔ)和壓縮格式。
?。?)數(shù)字化資源并不是孤立的,而是相互關(guān)聯(lián)的動(dòng)態(tài)的。數(shù)字圖書館是數(shù)字化資源的統(tǒng)一,可以通過一定的相關(guān)關(guān)系,由特定的協(xié)議和存取方法來(lái)查找和訪問這些數(shù)字化資源。
(3)數(shù)字圖書館必須為用戶提供統(tǒng)一的訪問手段,能夠讓用戶透明方便地獲取所需的信息而不必關(guān)心這些信息的具體位置。對(duì)數(shù)字資源的檢索應(yīng)該是智能化、交互式的,對(duì)全文、多媒體信息、多語(yǔ)言信息的檢索都可以達(dá)到很好的查全率和查準(zhǔn)率。
(4)數(shù)字圖書館建立在異構(gòu)平臺(tái)上,具有分布、開放的信息結(jié)構(gòu),高速、可靠的網(wǎng)絡(luò)環(huán)境是其運(yùn)行的基礎(chǔ)。它突破了時(shí)間、空間的限制,讓用戶可以在任何地方、任何時(shí)間獲取自己所需的信息。在此基礎(chǔ)上提供的導(dǎo)航式和個(gè)性化的服務(wù),使服務(wù)內(nèi)容更多樣、服務(wù)模式更廣泛,這是對(duì)傳統(tǒng)圖書館服務(wù)功能的突破。
數(shù)字圖書館的模式,可以用圖1簡(jiǎn)單說(shuō)明,用戶通過網(wǎng)絡(luò)和通信系統(tǒng),連接到數(shù)字圖書館的咨詢系統(tǒng),通過這個(gè)統(tǒng)一的訪問界面,用戶可以透明地獲取各種信息資源。
附圖
圖1 數(shù)字圖書館模式
1.2 UML建模概述及特點(diǎn)
UML是一種編制系統(tǒng)藍(lán)圖的標(biāo)準(zhǔn)化語(yǔ)言,可以對(duì)大型復(fù)雜的系統(tǒng)的各種成分可視化、說(shuō)明并構(gòu)造系統(tǒng)模型,以及建立各種所需的文檔。UML通過三類圖形建立系統(tǒng)模型:UseCase圖、靜態(tài)結(jié)構(gòu)圖(對(duì)象類圖、對(duì)象圖、組件圖、配置圖)和動(dòng)態(tài)行為圖(順序圖、協(xié)同圖、狀態(tài)圖、活動(dòng)圖),這些圖可以從不同的抽象角度使系統(tǒng)可視化。UML具有以下特點(diǎn)[1]:
?。?)面向?qū)ο?。UML支持面向?qū)ο蠹夹g(shù)的主要概念,提供了一批基本的模型元素的表示圖形和方法,能簡(jiǎn)潔明了地表達(dá)面向?qū)ο蟮母鞣N概念。
?。?)可視化,表示能力強(qiáng)。通過UML的模型圖能清晰地表示系統(tǒng)的邏輯模型和實(shí)現(xiàn)模型,可用于各種復(fù)雜系統(tǒng)的建模。
?。?)獨(dú)立與過程。UML是系統(tǒng)建模語(yǔ)言,獨(dú)立與開發(fā)過程。
(4)獨(dú)立于程序設(shè)計(jì)語(yǔ)言。用UML建立的軟件系統(tǒng)模型可以用Java、VC++、Smalltalk等任何一種面向?qū)ο蟮某绦蛟O(shè)計(jì)來(lái)實(shí)現(xiàn)。
(5)易于掌握使用。UML圖形結(jié)構(gòu)清晰,建模簡(jiǎn)潔明了,容易掌握使用。
使用UML進(jìn)行系統(tǒng)的分析和設(shè)計(jì),可以加速開發(fā)的進(jìn)程,提高代碼的質(zhì)量,支持動(dòng)態(tài)的業(yè)務(wù)需求。UML適用于各種規(guī)模的系統(tǒng)開發(fā),能促進(jìn)軟件復(fù)用,方便地集成已有的系統(tǒng)并有效處理開發(fā)中的各種風(fēng)險(xiǎn)。#p#
2 UML建模在數(shù)字圖書館中的應(yīng)用
UML是一種建模語(yǔ)言,是系統(tǒng)開發(fā)的一個(gè)組成部分,本身并沒有關(guān)于開發(fā)過程概念的定義和表示符號(hào)。UML的創(chuàng)始者Booch、Jacobson和Rumbaugh在Rational公司的支持下綜合了多種系統(tǒng)開發(fā)過程的長(zhǎng)處,提出新的面向?qū)ο蟮拈_發(fā)過程,稱為Rational統(tǒng)一過程(RationalUnifiedProcess,RUP)。RUP過程的核心工作流包括:業(yè)務(wù)建模、需求分析、系統(tǒng)分析與設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試和系統(tǒng)配置。下面通過UML來(lái)分析并構(gòu)造數(shù)字圖書館模型,并結(jié)合Rational統(tǒng)一過程加以描述,圖形用RationalRose工具軟件繪制。
2.1 數(shù)字圖書館的業(yè)務(wù)建模和需求分析
業(yè)務(wù)建模和需求分析的目的是對(duì)數(shù)字圖書館進(jìn)行評(píng)估,采集和分析系統(tǒng)的需求,理解系統(tǒng)要解決的問題,重點(diǎn)是充分考慮系統(tǒng)的實(shí)用性。結(jié)果可以用一個(gè)UseCase模型表達(dá)(圖2),模型中的活動(dòng)者代表外部與系統(tǒng)交互的單元,包括用戶、圖書館工作人員和外部信息源;UseCase是對(duì)系統(tǒng)需求的描述,表達(dá)了系統(tǒng)的功能和所提供的服務(wù),包括采購(gòu)子系統(tǒng)、編目子系統(tǒng)和流通子系統(tǒng)。對(duì)于數(shù)字圖書館而言,流通子系統(tǒng)還應(yīng)該考慮到普通書刊流通和電子書刊流通的區(qū)別。電子書刊是指內(nèi)容為數(shù)字格式、發(fā)行為電子方式、用計(jì)算機(jī)閱讀和存儲(chǔ)的電子讀物,可以實(shí)現(xiàn)普通書刊所沒有的全文檢索、頁(yè)面批注、摘要、字體縮放等功能。用戶無(wú)論何時(shí)何地,都可以在線借還,這是數(shù)字圖書館服務(wù)功能的一個(gè)重要組成部分,也是對(duì)傳統(tǒng)圖書館服務(wù)功能的延伸和拓展,其中的關(guān)鍵是流通子系統(tǒng)在實(shí)現(xiàn)時(shí)必須能對(duì)電子書刊的版權(quán)、以及可以同時(shí)借閱的用戶數(shù)進(jìn)行保護(hù)和控制。
附圖
圖2 數(shù)字圖書館UseCase模型
圖2中模型元素之間的實(shí)線表示二者存在關(guān)聯(lián)關(guān)系,帶空心箭頭的實(shí)箭線說(shuō)明存在泛化關(guān)系,這里有兩種情況,一種是一般與特殊的關(guān)系,如“流通子系統(tǒng)”與“普通書刊流通”、“電子書刊流通”的關(guān)系;另一種是使用關(guān)聯(lián),表示一個(gè)模型元素需要使用另一個(gè)模型元素,在箭線上標(biāo)有<<Use>>,如“流通子系統(tǒng)”需要使用“編目子系統(tǒng)”生成的書目數(shù)據(jù),圖2是數(shù)字圖書館系統(tǒng)層的UseCase模型,只包含了最基本的UseCase模型,是系統(tǒng)的高層抽象。在開發(fā)過程中,隨著對(duì)系統(tǒng)的認(rèn)識(shí)不斷加深,UseCase模型可以從頂向下不斷精化,演化出更為詳細(xì)的UseCase模型。#p#
2.2 UML建模中數(shù)字圖書館系統(tǒng)分析與設(shè)計(jì)
系統(tǒng)分析與設(shè)計(jì)是研究欲采用的實(shí)現(xiàn)環(huán)境和系統(tǒng)結(jié)構(gòu),結(jié)果是產(chǎn)生一個(gè)對(duì)象模型,即設(shè)計(jì)模型,設(shè)計(jì)模型包含了UseCase的實(shí)現(xiàn),可以表現(xiàn)對(duì)象是如何相互通信和運(yùn)作來(lái)實(shí)現(xiàn)UseCase流的。對(duì)于系統(tǒng)的靜態(tài)結(jié)構(gòu),可以通過對(duì)象類圖、對(duì)象圖、組件圖和配置圖來(lái)描述;對(duì)于系統(tǒng)的動(dòng)態(tài)行為,可以通過順序圖、協(xié)同圖、狀態(tài)圖、活動(dòng)圖描繪。這些圖再加上支持說(shuō)明文檔就構(gòu)成一個(gè)完整的設(shè)計(jì)模型。
(1)UML建模中靜態(tài)結(jié)構(gòu)的分析與設(shè)計(jì)
數(shù)字圖書館擁有大量數(shù)字化信息資源,這些資源是多種媒體、多種格式的,而且還是相互關(guān)聯(lián)的。其數(shù)據(jù)量大,信息長(zhǎng)度不定,非結(jié)構(gòu)化信息與結(jié)構(gòu)化信息并存。傳統(tǒng)的數(shù)據(jù)庫(kù)和信息管理系統(tǒng)在數(shù)據(jù)模型、系統(tǒng)結(jié)構(gòu)、用戶接口等方面都難以實(shí)現(xiàn)對(duì)這些數(shù)字化信息資源的管理和操作,這就決定了數(shù)字圖書館必須采用面向?qū)ο蟮姆椒▉?lái)建立數(shù)據(jù)模型和管理模型,建立面向?qū)ο蟮臄?shù)據(jù)庫(kù),實(shí)現(xiàn)面向?qū)ο蟮男畔⒐芾硐到y(tǒng)。使用UML對(duì)數(shù)字圖書館系統(tǒng)進(jìn)行基于面向?qū)ο蟮姆治龊驮O(shè)計(jì),可以從開發(fā)的第一步開始,從系統(tǒng)的底層就把握住數(shù)字圖書館信息資源的特征,為下一步的具體實(shí)現(xiàn)打好基礎(chǔ)。在為數(shù)字圖書館系統(tǒng)建立模型時(shí)要涉及到處理大量的模型元素,如對(duì)象類、接口、組件、節(jié)點(diǎn)、圖等,可以將語(yǔ)義上相近的模型元素組織在一起,這就是UML的包,包從較高的層次來(lái)組織管理數(shù)字圖書館的系統(tǒng)模型。
在詳細(xì)設(shè)計(jì)階段可以對(duì)包圖中的所有類、對(duì)象從實(shí)現(xiàn)角度再進(jìn)一步進(jìn)行細(xì)化,繪制具體的對(duì)象類圖、對(duì)象圖等。圖3是數(shù)字圖書館系統(tǒng)的包圖,虛箭線說(shuō)明包之間的依賴關(guān)系,如“流通”包依賴于“數(shù)據(jù)庫(kù)”包,要使用“數(shù)據(jù)庫(kù)”包中的類及數(shù)據(jù)。帶空心箭頭的實(shí)箭線說(shuō)明包之間的泛化關(guān)系,這里是一般與特殊的關(guān)系,如“編目”包與“本館編目”包、“聯(lián)合編目”包之間存在泛化關(guān)系。
附圖
圖3 數(shù)字圖書館系統(tǒng)包圖
?。?)UML建模中動(dòng)態(tài)結(jié)構(gòu)的分析與設(shè)計(jì)
數(shù)字圖書館提供的各種服務(wù)都是建立在分布、開放的信息結(jié)構(gòu)之上,依托高速、可靠的網(wǎng)絡(luò)環(huán)境來(lái)完成。每項(xiàng)服務(wù)都可以看成一個(gè)事件流,由若干相關(guān)的對(duì)象交互合作來(lái)完成。對(duì)于這種系統(tǒng)內(nèi)部的協(xié)作關(guān)系和過程行為,可以通過繪制順序圖和協(xié)同圖來(lái)幫助觀察和理解。
一個(gè)對(duì)象在其生存期間所經(jīng)歷的狀態(tài)序列,對(duì)于把握對(duì)象的行為和狀態(tài)的遷移變化是非常重要的,可以通過狀態(tài)圖來(lái)了解一個(gè)對(duì)象的歷史,引起一個(gè)狀態(tài)向另一個(gè)狀態(tài)轉(zhuǎn)移的事件,以及由于狀態(tài)的轉(zhuǎn)移而引發(fā)的動(dòng)作。
此外,描述工作流和并發(fā)處理行為還可以用活動(dòng)圖,表達(dá)從一個(gè)活動(dòng)到另一個(gè)活動(dòng)的控制流。
順序圖和協(xié)同圖適合描述多個(gè)對(duì)象的協(xié)同行為,而狀態(tài)圖適合描述一個(gè)對(duì)象穿越多個(gè)UseCase的行為。狀態(tài)圖與活動(dòng)圖的區(qū)別是,狀態(tài)圖描述的是對(duì)象類響應(yīng)事件的外部行為,活動(dòng)圖描述的是響應(yīng)內(nèi)部處理的對(duì)象類的行為。
附圖
圖4 數(shù)字圖書館電子書刊流通服務(wù)順序圖
圖4是一個(gè)電子書刊流通服務(wù)的順序圖例子,用以說(shuō)明數(shù)字圖書館電子書刊基本流通服務(wù)。用戶向流通子系統(tǒng)的用戶接口登錄,經(jīng)用戶合法性驗(yàn)證后,向流通子系統(tǒng)的電子書刊流通模塊提交服務(wù)請(qǐng)求,電子書刊需要經(jīng)過版權(quán)和復(fù)本的驗(yàn)證,以保證電子書刊的每一個(gè)復(fù)本在同一時(shí)間只允許一個(gè)用戶借閱或閱讀。比如購(gòu)買了一本電子書的五個(gè)復(fù)本,那么就可以有五個(gè)用戶同時(shí)借閱或閱讀這本書,而且必須能夠控制用戶對(duì)電子書刊的任意復(fù)制和打印,以保護(hù)電子書刊出版者的合法權(quán)益。然后就可以完成電子書刊的借、還、預(yù)約、續(xù)借等流通服務(wù),最后退出。
通過順序圖可以清晰地看出用戶、流通子系統(tǒng)的用戶接口和電子書刊流通模塊之間按時(shí)間順序的消息交換,這對(duì)于把握系統(tǒng)的控制流、順序行為和交互行為是非常有益的。建立在分布、網(wǎng)絡(luò)環(huán)境下的數(shù)字圖書館其事件流和控制流是十分復(fù)雜的,需要從層頂?shù)降讓舆M(jìn)行一步步的分解,用多幅能反映動(dòng)態(tài)結(jié)構(gòu)的圖來(lái)分析與說(shuō)明。
2.3 UML建模在數(shù)字圖書館的實(shí)現(xiàn)、測(cè)試和系統(tǒng)配置
經(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)。然后需要對(duì)系統(tǒng)進(jìn)行測(cè)試和排錯(cuò),保證系統(tǒng)符合預(yù)定的要求,獲得一個(gè)無(wú)錯(cuò)的系統(tǒng)實(shí)現(xiàn)。測(cè)試的結(jié)果將確認(rèn)所完成的系統(tǒng)可以真正使用。最后系統(tǒng)配置的任務(wù)是在真實(shí)的使用運(yùn)行環(huán)境中配置、調(diào)試系統(tǒng)、解決系統(tǒng)正式使用前可能存在的任何問題。
3 小結(jié)
數(shù)字圖書館的發(fā)展方興未艾,目前正處于傳統(tǒng)圖書館向數(shù)字圖書館過渡的階段,轉(zhuǎn)變過程中需要應(yīng)用和集成最新的信息技術(shù),以達(dá)到對(duì)網(wǎng)絡(luò)信息資源最有效的利用和共享。傳統(tǒng)的系統(tǒng)分析設(shè)計(jì)的方法難以保證效率和質(zhì)量,將UML應(yīng)用于數(shù)字圖書館建設(shè),可以加速開發(fā)進(jìn)程,提高代碼質(zhì)量,支持動(dòng)態(tài)的業(yè)務(wù)需求,并方便地集成已有的傳統(tǒng)圖書館信息資源。這是UML一個(gè)有著很好前景的應(yīng)用方向。
【編輯推薦】