黃金晶 李文駿
(1.蘇州工業(yè)職業(yè)技術(shù)學(xué)院信息工程系 江蘇蘇州 215104 2.蘇州大學(xué) 江蘇蘇州 215006)
利用UML的面向?qū)ο蠓治鼋?/p>
黃金晶1李文駿2
(1.蘇州工業(yè)職業(yè)技術(shù)學(xué)院信息工程系 江蘇蘇州 215104 2.蘇州大學(xué) 江蘇蘇州 215006)
介紹了利用UML統(tǒng)一建模語(yǔ)言進(jìn)行面向?qū)ο蠓治鼋5姆椒?,并以一個(gè)呼叫中心系統(tǒng)的開發(fā)為背景,采用UML建模語(yǔ)言,對(duì)該系統(tǒng)進(jìn)行用例建模、類與對(duì)象建模以及動(dòng)態(tài)建模,展示了UML在需求分析建模中的優(yōu)勢(shì)。
UML;結(jié)構(gòu)化分析;面向?qū)ο蠓治?用例建模
隨著面向?qū)ο蠹夹g(shù)的發(fā)展,人們對(duì)面向?qū)ο蠓椒ǖ恼J(rèn)識(shí)也從面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言逐漸過渡到對(duì)面向?qū)ο蠓治雠c設(shè)計(jì)方法的認(rèn)識(shí),出現(xiàn)了多種面向?qū)ο蟮慕7椒?,比如Booch、OMT、OOSE方法。然而,面對(duì)眾多的建模方法,用戶難以選擇,并且沒有統(tǒng)一的標(biāo)準(zhǔn)。因而,在Booch、Rumbaugh和Jacobson三人的共同努力下,推出了UML統(tǒng)一建模語(yǔ)言[1]。經(jīng)過多年的發(fā)展,UML已被OMG(Object Management Group)定為信息技術(shù)的國(guó)際標(biāo)準(zhǔn)。本文主要探討UML在面向?qū)ο蠓治龇椒ㄖ械膽?yīng)用。
UML(unified modeling language,統(tǒng)一建模語(yǔ)言)是一種形式化的建模語(yǔ)言,可以對(duì)具有靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)行為的系統(tǒng)進(jìn)行建模[2]。UML由視圖、圖、模型元素、通用機(jī)制等幾個(gè)部分組成,它與具體的程序設(shè)計(jì)的語(yǔ)言無關(guān),可以適用于不同程序語(yǔ)言要求的項(xiàng)目。進(jìn)行系統(tǒng)建模,只需要定義一定數(shù)量的視圖,每個(gè)視圖由一組圖構(gòu)成,可以表示系統(tǒng)的一個(gè)方面。UML的視圖[3]包括用例視圖、邏輯視圖、構(gòu)件視圖、并發(fā)視圖、部署視圖。
用例視圖從功能角度出發(fā),是系統(tǒng)的外部用戶觀察到系統(tǒng)功能的模型圖,一般以用例圖來表示。與用例視圖相比,邏輯視圖主要關(guān)注系統(tǒng)的內(nèi)部,它主要從系統(tǒng)的靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)行為角度顯示如何實(shí)現(xiàn)系統(tǒng)的功能,靜態(tài)結(jié)構(gòu)可以用類圖和對(duì)象圖描述,動(dòng)態(tài)結(jié)構(gòu)用順序圖、協(xié)作圖、狀態(tài)圖等進(jìn)行描述。構(gòu)件視圖主要顯示代碼組件的組織結(jié)構(gòu),由構(gòu)件圖構(gòu)成。并發(fā)視圖顯示系統(tǒng)的并發(fā)性,可以采用狀態(tài)圖、順序圖、協(xié)作圖、活動(dòng)圖等進(jìn)行描述。部署視圖用來顯示系統(tǒng)的物理部署。
制作一個(gè)軟件需要經(jīng)歷計(jì)劃、分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試、維護(hù)等幾個(gè)階段。而準(zhǔn)確收集用戶的需求,并進(jìn)行合理的分析、整理,建立完整的需求分析模型是開發(fā)一個(gè)項(xiàng)目成敗的關(guān)鍵。倘若錯(cuò)誤地理解了用戶的需求,并按此需求進(jìn)行項(xiàng)目開發(fā),必將造成客戶需求與實(shí)際項(xiàng)目不符,這是開發(fā)者和客戶都不希望發(fā)生的。因而,需求分析是軟件生命周期中一個(gè)重要的階段,采用合適的需求分析技術(shù)可以減少或者避免需求的錯(cuò)誤。當(dāng)前占主導(dǎo)地位的需求分析建模方法有傳統(tǒng)的結(jié)構(gòu)化分析方法(Structured Analysis)和面向?qū)ο蟮姆治龇椒?Object-oriented Analysis)。
結(jié)構(gòu)化分析方法是強(qiáng)調(diào)開發(fā)方法的結(jié)構(gòu)合理性以及所開發(fā)軟件的結(jié)構(gòu)合理性的軟件開發(fā)方法[4]。它主要利用圖形表達(dá)用戶需求,比如通過數(shù)據(jù)流圖、數(shù)據(jù)字典、結(jié)構(gòu)化語(yǔ)言、判定表以及判定樹等對(duì)系統(tǒng)加以描述。
在需求分析階段繪制系統(tǒng)的數(shù)據(jù)流圖(DFD),并輔以數(shù)據(jù)字典加以說明,對(duì)系統(tǒng)數(shù)據(jù)的存儲(chǔ)采用實(shí)體關(guān)系(E-R)圖來描述。然而結(jié)構(gòu)化方法無法適應(yīng)不停變化的需求,難以擴(kuò)充新的功能接口,當(dāng)用戶需求發(fā)生變化時(shí),開發(fā)方往往需要花費(fèi)較大的代價(jià)來支持這個(gè)變化。面向?qū)ο蠓治鰟t由于對(duì)對(duì)象的封裝使得它能彈性地適應(yīng)需求的變化,因而面向?qū)ο蟮姆治龇椒ㄊ艿皆絹碓蕉嗳说那嗖A。
面向?qū)ο蟮姆治龇椒ㄓ泻芏?,本文主要討論利用UML統(tǒng)一建模語(yǔ)言進(jìn)行分析建模。需求分析就是要獲取用戶的需求,建立用例模型是需求獲取的一種較好方法。面向?qū)ο蠓治龇椒ㄒ杂美P蜑楹诵?,配以類圖、對(duì)象圖、狀態(tài)圖、時(shí)序圖、構(gòu)件圖等圖形模型。下文結(jié)合一個(gè)呼叫中心系統(tǒng)利用UML進(jìn)行面向?qū)ο蠓治鼋!?/p>
2.2.1 用例建模
用例建模[5]描述系統(tǒng)具備的基本功能,不考慮具體的實(shí)現(xiàn)細(xì)節(jié),用例建模由用例圖組成,基本組成部分是系統(tǒng)、參與者和用例。一個(gè)系統(tǒng)往往包含若干用例,每個(gè)用例代表一個(gè)功能,參與者是與系統(tǒng)交互的外部實(shí)體。
對(duì)呼叫中心系統(tǒng)進(jìn)行面向?qū)ο蠼?,首先需確定系統(tǒng)的參與者。一般呼叫中心系統(tǒng)的參與者至少有接線員、客戶、管理員三類人員。其次,確定系統(tǒng)的用例。不同的呼叫中心具體的功能不相同,大體上包括呼叫控制、錄放音、質(zhì)檢功能、呼叫重定向等基本功能。圖1顯示了該呼叫中心系統(tǒng)的用例圖。
圖1 用例圖
用例間還存在泛化、包含、擴(kuò)展等關(guān)系。父子用例之間即構(gòu)成泛化關(guān)系。若一個(gè)用例包含其他用例,那么就構(gòu)成包含關(guān)系。比如呼叫控制包括應(yīng)答、呼出、釋放、靜音等功能,如圖2所示。
圖2 包含關(guān)系的用例圖
用例圖只是簡(jiǎn)單地用圖描述系統(tǒng),但為了使用戶對(duì)該系統(tǒng)有更加詳細(xì)的了解,需要寫出用例描述。下面以呼叫控制為例說明用例描述。
用例名稱:呼叫控制
標(biāo)示號(hào):1
前置條件:用例啟動(dòng)前接線員已經(jīng)簽入。
基本流:①接線員應(yīng)答用戶來電;
②接線員接聽完電話后釋放話機(jī);
③接線員在通話中進(jìn)行靜音等操作;
④接線員對(duì)外呼出。
備選流:①接線員忙碌,來電進(jìn)入等待隊(duì)列;
②VIP用戶的特殊處理;
③客戶忙碌主叫等待。
后置條件:用例成功,在系統(tǒng)中建立并存儲(chǔ)通話記錄。
2.2.2 類與對(duì)象建模
類與對(duì)象是面向?qū)ο蠹夹g(shù)的基本元素。類是對(duì)本質(zhì)相同一類事物的抽象。在UML中,類與對(duì)象模型用類圖和對(duì)象圖來表示,屬于靜態(tài)建模的范疇。在UML中,類圖用一個(gè)長(zhǎng)方形表示,垂直地分為三個(gè)區(qū)域,從上到下分別表示類的名字、類的屬性、類的操作。在簡(jiǎn)略的類圖中,下面的兩個(gè)區(qū)域可以省略,只保留類名。正如對(duì)象是類的實(shí)例,對(duì)象圖也是類圖的實(shí)例。
圖3表示的是呼叫中心系統(tǒng)中接線員與坐席兩個(gè)基本類以及它們之間的關(guān)聯(lián)關(guān)系。接線員通過簽入的方法與坐席發(fā)生關(guān)聯(lián),1個(gè)接線員對(duì)應(yīng)與1個(gè)坐席。
圖3 接線員與坐席的類圖
2.2.3 動(dòng)態(tài)建模
動(dòng)態(tài)建模描述系統(tǒng)中的對(duì)象在執(zhí)行期間是如何進(jìn)行動(dòng)態(tài)交互的,可以用時(shí)序圖、狀態(tài)圖、協(xié)作圖等來描述。
順序圖通過描述對(duì)象之間發(fā)送消息的時(shí)間順序顯示對(duì)象之間的動(dòng)態(tài)協(xié)作,重點(diǎn)是對(duì)象間消息傳遞的時(shí)間順序。順序圖有兩個(gè)坐標(biāo)軸,橫坐標(biāo)軸顯示對(duì)象,縱坐標(biāo)軸顯示時(shí)間。呼出是呼叫中心中非常重要的一個(gè)用例,圖4表示的是該用例的順序圖。
狀態(tài)圖是描述一個(gè)實(shí)體可能的狀態(tài)以及引起狀態(tài)轉(zhuǎn)換的事件。因而,狀態(tài)圖是由若干狀態(tài)以及引起狀態(tài)間轉(zhuǎn)換的事件構(gòu)成。通過狀態(tài)圖可以了解一個(gè)實(shí)體在整個(gè)生命周期的運(yùn)動(dòng)軌跡。圖5是呼出實(shí)例的狀態(tài)圖。
圖4 呼出用例順序圖
圖5 呼出用例狀態(tài)圖
本文探討了利用UML進(jìn)行需求分析建模的過程,并將其運(yùn)用于一個(gè)呼叫中心系統(tǒng)。利用UML統(tǒng)一建模語(yǔ)言進(jìn)行需求分析建模,一方面可以幫助項(xiàng)目組成員更好地了解用戶需要,防止開發(fā)組成員由于草率的開發(fā)項(xiàng)目而帶來的不必要的損失;另一方面,由于UML是一個(gè)統(tǒng)一的標(biāo)準(zhǔn),因而采用UML進(jìn)行需求分析將更加規(guī)范化,并大大提高工作效率。
[1]王長(zhǎng)元,趙莉,王淑蓉.軟件工程與建模[M].西安:西安交通大學(xué)出版社,2010:217-218.
[2]劉嘉,童格明,李明,等.基于本體的UML類圖的語(yǔ)義推理[J].計(jì)算機(jī)應(yīng)用與軟件,2011,28(4):212-214.
[3]翟亞紅,楊艷霞.UML建模技術(shù)的研究與應(yīng)用[J].科技創(chuàng)業(yè),2010(4):156-157.
[4]白桂梅.結(jié)構(gòu)化與面向?qū)ο蠓治龇椒ㄖg關(guān)系的研究[J].現(xiàn)代電子技術(shù),2009(20):137-139.
[5]方義秋,冉華鋒,葛君偉.基于用例的面向方面需求建模[J].計(jì)算機(jī)工程,2009(35):4.
Object-oriented Analysis Modeling Based on UML
HUANG Jin-jing1LI Wen-jun2
(1.Information Engineering Department,Suzhou Institute of Industrial Technology,Suzhou 215104 2.Soochow University,Suzhou 215006,China)
This paper introduces the method of object-oriented modeling based on UML.Then under the background of a call center,this paper conducts use case modeling,class and object modeling,dynamic modeling about the system,which shows the advantages of doing requirement analysis by UML.
UML;structured analysis;object-oriented analysis;use case modeling
TP 311.52
A
1672-2434(2011)05-0013-03
2011-05-31
黃金晶(1984-),女,助教,碩士,從事研究方向:數(shù)據(jù)庫(kù)與數(shù)據(jù)挖掘
常州信息職業(yè)技術(shù)學(xué)院學(xué)報(bào)2011年5期