摘要:探討了基于UML進(jìn)行面向?qū)ο蟮南到y(tǒng)分析及設(shè)計(jì)方法;提出了一種實(shí)用的基于UML的需求分析及其建模方法;討論了需求分析及其建模的過(guò)程概念,并以倉(cāng)儲(chǔ)管理系統(tǒng)的開發(fā)作為案例示范。
關(guān)鍵詞:UML;倉(cāng)儲(chǔ)管理;RUP
中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2008)34-1639-02
Object-oriented UML Modeling Study
DONG Ji-yang, JIANG Bo
(Dalian Maritime University, Dalian 116026, China)
Abstract: Based on UML for object-oriented systems analysis and design methods.A practical needs of the UML-based analysis and modeling,Discussed the needs analysis and modeling of the concept of the process, and warehouse management system as a model case.
Key words: UML; warehouse management; RUP
1 引言
UML是一種編制系統(tǒng)藍(lán)圖的標(biāo)準(zhǔn)化語(yǔ)言,可以實(shí)現(xiàn)大型復(fù)雜系統(tǒng)各種成分描述的可視化、說(shuō)明并構(gòu)造系統(tǒng)模型,以及建立各種所需的文檔,它是一種定義良好、易于表達(dá)、功能強(qiáng)大且普遍適用的建模語(yǔ)言。UML的發(fā)展對(duì)軟件工程的發(fā)展做出了杰出的貢獻(xiàn)。
UML支持從需求分析開始的軟件開發(fā)的全過(guò)程。UML通過(guò)三類圖形建立系統(tǒng)模型:用例(Use Case)圖、靜態(tài)結(jié)構(gòu)圖(對(duì)象類圖、對(duì)象圖、組件圖、配置圖)和動(dòng)態(tài)行為圖(順序圖、協(xié)同圖、狀態(tài)圖、活動(dòng)圖),這些圖可以從不同的抽象角度實(shí)現(xiàn)系統(tǒng)的可視化。
2 UML的特點(diǎn)
1) 面向?qū)ο?,UML支持面向?qū)ο蠹夹g(shù)的主要概念,提供了一批基本的模型元素的表示圖形和方法,能簡(jiǎn)潔明了地表達(dá)面向?qū)ο蟮母鞣N概念。
2) 可視化,表示能力強(qiáng)。通過(guò)UML的模型圖能清晰地表示系統(tǒng)的邏輯模型和實(shí)現(xiàn)模型??捎糜诟鞣N復(fù)雜系統(tǒng)的建模。
3) 獨(dú)立于過(guò)程。UML是系統(tǒng)建模語(yǔ)言,獨(dú)立于開發(fā)過(guò)程。
4) 獨(dú)立于程序設(shè)計(jì)語(yǔ)言。用UML建立的軟件系統(tǒng)模型可以用Java、VC++、.NET等任何一種面向?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)。
3 UML的面向?qū)ο蠓治鲈O(shè)計(jì)過(guò)程
運(yùn)用UML進(jìn)行面向?qū)ο蟮南到y(tǒng)分析設(shè)計(jì),其過(guò)程通常由以下3個(gè)部份組成:
1) 識(shí)別系統(tǒng)的用例和角色
首先對(duì)項(xiàng)目進(jìn)行需求調(diào)研,依據(jù)項(xiàng)目的業(yè)務(wù)流程圖和數(shù)據(jù)流程圖以及項(xiàng)目中涉及的各級(jí)操作人員,通過(guò)分析,識(shí)別出系統(tǒng)中的所有用例和角色;接著分析系統(tǒng)中各角色和用例間的聯(lián)系,再使用UML建模工具畫出系統(tǒng)的用例圖,同時(shí),勾畫系統(tǒng)的概念層模型,借助UML建模工具描述概念層類圖和活動(dòng)圖。
2) 進(jìn)行系統(tǒng)分析,并抽取類
系統(tǒng)分析的任務(wù)是找出系統(tǒng)的所有需求并加以描述,同時(shí)建立特定領(lǐng)域模型。建立域模型有助于開發(fā)人員考察用例,從中抽取出類,并描述類之間的關(guān)系。
3) 系統(tǒng)設(shè)計(jì),并設(shè)計(jì)類及其行為設(shè)計(jì)階段由結(jié)構(gòu)設(shè)計(jì)和詳細(xì)設(shè)計(jì)組成。
①結(jié)構(gòu)設(shè)計(jì)是高層設(shè)計(jì),其任務(wù)是定義包(子系統(tǒng)),包括包間的依賴關(guān)系和主要通信機(jī)制。包有利于描述系統(tǒng)的邏輯組成部分以及各部分之間的依賴關(guān)系。
②詳細(xì)設(shè)計(jì)就是要細(xì)化包的內(nèi)容,清晰描述所有的類,同時(shí)使用UML的動(dòng)態(tài)模型描述在特定環(huán)境下這些類的實(shí)例的行為。
4 UMl面向?qū)ο蠓治鲈O(shè)計(jì)在倉(cāng)儲(chǔ)管理系統(tǒng)中的應(yīng)用
UML是一種建模語(yǔ)言,是系統(tǒng)開發(fā)的一個(gè)組成部分,本身并沒(méi)有關(guān)于開發(fā)過(guò)程概念的定義和表示符號(hào)。UML的創(chuàng)始者Booch 、Jacobson和Rumbaugh在Rational公司的支持下綜合了多種系統(tǒng)開發(fā)過(guò)程的長(zhǎng)處,提出新的面向?qū)ο蟮拈_發(fā)過(guò)程,稱為Rational統(tǒng)一過(guò)程(Rational Unified Process,RUP)。RUP過(guò)程的核心工作流包括:業(yè)務(wù)建模、需求分析、系統(tǒng)分析與設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試和系統(tǒng)配置。下面通過(guò)UML來(lái)分析并構(gòu)造倉(cāng)儲(chǔ)管理模型,并結(jié)合Rational統(tǒng)一過(guò)程加以描述,圖形用Microsoft Visio工具繪制。
4.1 倉(cāng)儲(chǔ)管理系統(tǒng)概述
倉(cāng)儲(chǔ)管理系統(tǒng),致力于構(gòu)筑一個(gè)倉(cāng)儲(chǔ)資源數(shù)字化、網(wǎng)絡(luò)化的集成環(huán)境。倉(cāng)儲(chǔ)管理系統(tǒng)實(shí)質(zhì)上是一個(gè)通過(guò)系統(tǒng)應(yīng)用程序操縱的數(shù)據(jù)庫(kù)系統(tǒng),在該系統(tǒng)中,配置有倉(cāng)儲(chǔ)數(shù)據(jù)采集和倉(cāng)儲(chǔ)信息的網(wǎng)絡(luò)化研究平臺(tái),用戶可以非常有效地利用系統(tǒng)內(nèi)部分布的各種數(shù)據(jù)、信息等資源。
本系統(tǒng)劃分為數(shù)據(jù)管理、入庫(kù)管理、庫(kù)存管理、出庫(kù)管理、系統(tǒng)管理五個(gè)功能模塊。各模塊通過(guò)對(duì)系統(tǒng)數(shù)據(jù)庫(kù)的操作,主要處理倉(cāng)儲(chǔ)部常規(guī)業(yè)務(wù),實(shí)現(xiàn)對(duì)常規(guī)業(yè)務(wù)的各項(xiàng)信息進(jìn)行系統(tǒng)化管理的功能,并為企業(yè)物流決策提供信息服務(wù)。在網(wǎng)絡(luò)環(huán)境下,用戶可按規(guī)定權(quán)限對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行管理和共享。
4.2 倉(cāng)儲(chǔ)管理系統(tǒng)的用例和角色
業(yè)務(wù)建模和需求分析的目的是對(duì)倉(cāng)儲(chǔ)管理系統(tǒng)進(jìn)行評(píng)估,采集和分析系統(tǒng)的需求,理解系統(tǒng)要解決的問(wèn)題,重點(diǎn)是充分考慮系統(tǒng)的實(shí)用性。結(jié)果可以用一個(gè)Use Case模型表達(dá)(圖1),模型中的活動(dòng)者代表外部與系統(tǒng)交互的角色,描述參與者與系統(tǒng)之間的一次交互作用,列出系統(tǒng)中的用例和參與者并顯示參與者與執(zhí)行的對(duì)象。表達(dá)了系統(tǒng)的功能和所提供的服務(wù)。
4.3 倉(cāng)儲(chǔ)管理系統(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ì)模型包含了Use Case的實(shí)現(xiàn),可以表現(xiàn)對(duì)象是如何相互通信和運(yùn)作來(lái)實(shí)現(xiàn)Use Case流的。對(duì)于系統(tǒng)的靜態(tài)結(jié)構(gòu)??梢酝ㄟ^(guò)對(duì)象類圖、對(duì)象圖、組件圖和配置圖來(lái)描述,對(duì)于系統(tǒng)的動(dòng)態(tài)行為,可以通過(guò)順序圖、協(xié)同圖、狀態(tài)圖、活動(dòng)圖描繪。這些圖再加上支持說(shuō)明文檔就構(gòu)成一個(gè)完整的設(shè)計(jì)模型。
1) 靜態(tài)結(jié)構(gòu)的分析設(shè)計(jì)
倉(cāng)儲(chǔ)管理系統(tǒng)中擁有大量信息資源,其數(shù)據(jù)量大UML對(duì)倉(cāng)儲(chǔ)管理系統(tǒng)的分析和設(shè)計(jì)需要處理大量的類、接口、組件、節(jié)點(diǎn)和圖,將語(yǔ)義相近并趨向一起變化的元素組織起來(lái)加入同一包,這樣能更好的理解整個(gè)模型。本系統(tǒng)可以看成人員信息,實(shí)務(wù)信息和接口三塊分別控制不同的應(yīng)用。靜態(tài)模型顯示了類、接口、協(xié)作以及他們之間的關(guān)系。在詳細(xì)設(shè)計(jì)階段可以對(duì)系統(tǒng)的包圖中的所有類進(jìn)行細(xì)化,繪制具體的對(duì)象類圖、和對(duì)象圖等。
2) 動(dòng)態(tài)結(jié)構(gòu)的分析與設(shè)計(jì)
倉(cāng)儲(chǔ)管理系統(tǒng)提供的各種服務(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)系和過(guò)程行為,可以通過(guò)繪制順序圖和協(xié)同圖來(lái)幫助觀察和理解。 一個(gè)對(duì)象在雙生存期間所經(jīng)歷的狀態(tài)序列。對(duì)于把握對(duì)象的行為和狀態(tài)的遷移變化是非常重要的,可以通過(guò)狀態(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è)Use Case的行為。狀態(tài)圖與活動(dòng)圖的區(qū)別是:狀態(tài)圖描述的是對(duì)象類響應(yīng)事件的外部行為。活動(dòng)圖描述的是響應(yīng)內(nèi)部處理的對(duì)象類的行為。
4.4 開放式學(xué)籍管理系統(tǒng)的實(shí)現(xiàn)、測(cè)試和系統(tǒng)配置
經(jīng)過(guò)系統(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)送行測(cè)試和排錯(cuò),保證系統(tǒng)符合預(yù)定的要求。獲得一個(gè)無(wú)錯(cuò)的系統(tǒng)實(shí)現(xiàn),調(diào)試的結(jié)果將確認(rèn)所完成的系統(tǒng)可以真正使用。最后系統(tǒng)配置的任務(wù)是在真實(shí)的使用運(yùn)行環(huán)境中配置,調(diào)試系統(tǒng),解決系統(tǒng)正式使用前可能存在的任何問(wèn)題。
5 小結(jié)
UML可以從多個(gè)方面描述系統(tǒng)的功能,將UML應(yīng)用與倉(cāng)儲(chǔ)管理系統(tǒng)的建模,優(yōu)化了開發(fā)過(guò)程。在倉(cāng)儲(chǔ)管理系統(tǒng)開發(fā)的各個(gè)階段,通過(guò)建立不同的模型,從不同的視角,以不同的詳略程度對(duì)系統(tǒng)進(jìn)行描述并使用UML為系統(tǒng)建模,利用面向?qū)ο蟮姆椒▽?shí)現(xiàn)了系統(tǒng)軟件從需求分析、建模開發(fā)到配置的全過(guò)程。
參考文獻(xiàn):
[1] 林烈清.ASP.NET2.0倉(cāng)儲(chǔ)管理系統(tǒng)開發(fā)案例解析[M].北京:機(jī)械工業(yè)出版社,2008.
[2] 曹晨.基于UML的倉(cāng)儲(chǔ)管理系統(tǒng)的分析與設(shè)計(jì)[J].電子工程師,2006,32(6):66-68.
[3] 劉振安.面向?qū)ο蠹夹g(shù)與UML[M].北京:機(jī)械工業(yè)出版社,2007.
[4] 李洪奎.倉(cāng)儲(chǔ)管理[M].北京:機(jī)械工業(yè)出版社,2007.