摘 要: 針對(duì)目前常用的需求分析方法存在的弊端,提出了一種基于UML的信息系統(tǒng)需求分析模型,該模型提供了一個(gè)基于UML信息系統(tǒng)需求分析框架及其應(yīng)用過(guò)程。實(shí)踐表明,該模型對(duì)信息系統(tǒng)開發(fā)具有較好的適應(yīng)性。
關(guān)鍵詞: 需求分析; 統(tǒng)一建模語(yǔ)言; 管理信息系統(tǒng); 用例圖
需求分析是軟件開發(fā)的關(guān)鍵環(huán)節(jié),需求分析結(jié)果的好壞直接決定軟件開發(fā)的成敗[1],如何選擇一種高效的需求分析方法,直接影響待開發(fā)軟件的質(zhì)量。本文在簡(jiǎn)要介紹UML的基礎(chǔ)上,針對(duì)常用需求分析算法存在的不足,提出了一種基于UML的信息系統(tǒng)需求分析模型,實(shí)踐表明,該模型能有效提高軟件開發(fā)的效率和待開發(fā)軟件的質(zhì)量。
1 UML概述
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ǔ)言[2]。
UML對(duì)軟件工程的發(fā)展做出了杰出的貢獻(xiàn)[3]。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)的可視化[4]?!?br />
UML采用一整套成熟的建模技術(shù),廣泛地適用于各個(gè)應(yīng)用領(lǐng)域。它的各個(gè)模型可以幫助開發(fā)人員更好地理解業(yè)務(wù)流程,建立更可靠、更完善的系統(tǒng)模型。從而使用戶和開發(fā)人員對(duì)問(wèn)題的描述達(dá)到相同的理解,以減少語(yǔ)義差異,保障分析的正確性。
2 常用需求分析方法及其不足
信息系統(tǒng)實(shí)質(zhì)上是實(shí)際業(yè)務(wù)系統(tǒng)的一種計(jì)算機(jī)模型,因此,信息系統(tǒng)的開發(fā)實(shí)質(zhì)上就是要建立業(yè)務(wù)模型與計(jì)算機(jī)模型系統(tǒng)之間的映射關(guān)系[5]。一個(gè)綜合性的信息系統(tǒng)要支持組織內(nèi)各級(jí)多個(gè)部門的管理,結(jié)構(gòu)復(fù)雜、規(guī)模龐大。因此,要想開發(fā)出一套高效的系統(tǒng),首先要進(jìn)行系統(tǒng)的需求分析,根據(jù)需求過(guò)程中工作性質(zhì)的不同,信息系統(tǒng)需求分析可分為問(wèn)題識(shí)別、分析與綜合、編制需求分析文檔、需求評(píng)審四個(gè)階段。
但是,在實(shí)際需求分析過(guò)程中,由于信息系統(tǒng)所涉及的信息量非常龐大,以致在需求定義中常常忽略某個(gè)環(huán)節(jié)或環(huán)節(jié)間的必要聯(lián)系,從而出現(xiàn)產(chǎn)品質(zhì)量低下、開發(fā)周期漫長(zhǎng)或遺漏關(guān)鍵功能等問(wèn)題[6]。
目前比較常用的需求分析方法主要有數(shù)據(jù)流分析法、原型分析法和基于用例的分析法三種。
(1)數(shù)據(jù)流分析法(DFA)
數(shù)據(jù)流分析是建立系統(tǒng)模型的一種主要需求分析方法,它采用分解的策略,將軟件系統(tǒng)抽象為一系列的邏輯加工單元,單元接收輸入數(shù)據(jù)流,加工后使之變換成輸出數(shù)據(jù)流,從而表示出軟件系統(tǒng)的處理內(nèi)容和任務(wù)。但是隨著信息技術(shù)的發(fā)展和企業(yè)業(yè)務(wù)過(guò)程的日益龐大復(fù)雜,信息系統(tǒng)復(fù)雜多變,易出錯(cuò),難維護(hù)。
(2)原型分析法
原型法是指在系統(tǒng)尚不完善時(shí)就呈現(xiàn)給用戶,不斷修改改善,在完善過(guò)程中逐漸了解需求,但原型法也存在如下缺陷[7]:①原型的設(shè)計(jì)和修改工作量大,增加了系統(tǒng)的開發(fā)成本;②由于用戶不關(guān)心或不理解原型的概念和實(shí)現(xiàn),而且存在較大期望,使得與實(shí)際系統(tǒng)差別較大的原型增加了需求分析人員與用戶交流的難度[3]。
(3)基于用例(Use Case)的需求分析法
用例本質(zhì)上是用戶與系統(tǒng)之間為達(dá)到某個(gè)目的而進(jìn)行的某種形式的交互的描述。但是,以用例為中心,從用例開始的需求分析存在如下缺陷:①對(duì)于劃分Use Case的粒度大小、Use Case的分類、Use Case的提取還沒(méi)有一個(gè)特定的標(biāo)準(zhǔn)和較好的方法,完全由需求分析人員憑經(jīng)驗(yàn)來(lái)掌握,這樣很容易造成系統(tǒng)分析的失誤;②對(duì)于大規(guī)模信息系統(tǒng),Use Case的定義、分析、審查需要花費(fèi)大量成本,而且不恰當(dāng)?shù)剡x擇Use Case往往給識(shí)別系統(tǒng)中的對(duì)象帶來(lái)困難,導(dǎo)致系統(tǒng)的對(duì)象結(jié)構(gòu)設(shè)計(jì)不合理,影響系統(tǒng)功能。
3 基于UML的信息系統(tǒng)需求分析模型
針對(duì)上述常用需求分析方法存在的不足,UML作為一種強(qiáng)大的圖形化建模語(yǔ)言,是理想的需求描述和建模分析工具,它對(duì)信息系統(tǒng)的大規(guī)模、復(fù)雜、不斷變化的用戶需求有很強(qiáng)的控制力,為解決人員交流和通信障礙提供了有力的工具[8]。
基于UML的信息系統(tǒng)需求分析模型,不從用例開始進(jìn)行需求分析,而從業(yè)務(wù)流程分析開始,從靜態(tài)和動(dòng)態(tài)兩個(gè)方面對(duì)系統(tǒng)的需求建模,該模型如圖1所示。
(1)相關(guān)人員培訓(xùn):該模型涉及三類人員:領(lǐng)域?qū)<?、用戶代表、需求分析員。通常情況下,領(lǐng)域?qū)<液陀脩舸砣鄙儆?jì)算機(jī)方面的知識(shí),不精通需求分析及建模技術(shù);需求分析員又缺少用戶的業(yè)務(wù)知識(shí),不熟悉其業(yè)務(wù)流程,因此,在需求分析前,對(duì)領(lǐng)域?qū)<液陀脩舸磉M(jìn)行UML知識(shí)的培訓(xùn),使其了解各種視圖的含義;對(duì)需求分析員進(jìn)行業(yè)務(wù)知識(shí)的培訓(xùn),使其對(duì)該領(lǐng)域中的一些基本知識(shí)和常用術(shù)語(yǔ)等有所了解[9]。
(2)初始需求的捕獲:通過(guò)調(diào)研和建立聯(lián)合分析小組等方式,了解用戶的業(yè)務(wù)流程,進(jìn)而獲取用戶對(duì)系統(tǒng)的最初需求,并用UML活動(dòng)圖對(duì)以用戶業(yè)務(wù)流程為核心的初始用戶需求進(jìn)行描述[10]。
(3)用例模型的創(chuàng)建:分析步驟(2)所得活動(dòng)圖中每個(gè)活動(dòng)的參與者,找出該活動(dòng)中與之相對(duì)應(yīng)的動(dòng)作,二者形成一個(gè)用例。通過(guò)確定系統(tǒng)邊界和分析活動(dòng)的轉(zhuǎn)移,刪除多余的用例,合并相同的用例,填補(bǔ)遺漏的用例;采用活動(dòng)圖的泳道技術(shù)對(duì)用例進(jìn)行集成,形成一個(gè)完整的用例模型。
(4)動(dòng)態(tài)模型、靜態(tài)模型的創(chuàng)建:分析步驟(2)所得活動(dòng)圖中每個(gè)活動(dòng)所涉及到的對(duì)象及對(duì)象之間的關(guān)系,根據(jù)活動(dòng)的改變而引起對(duì)象狀態(tài)的變化和對(duì)象的交互,創(chuàng)建相應(yīng)的對(duì)象圖、狀態(tài)圖和交互圖(順序圖、協(xié)作圖);應(yīng)用順序圖對(duì)步驟(2)所得活動(dòng)圖中的每個(gè)活動(dòng)進(jìn)行分析,發(fā)掘新的需求,完善描述初始用戶需求的活動(dòng)圖;通過(guò)順序圖對(duì)步驟(3)所得用例模型中的每個(gè)用例進(jìn)行處理,創(chuàng)建相應(yīng)的類圖。
4 基于UML的信息系統(tǒng)需求分析模型的應(yīng)用
基于UML的信息系統(tǒng)需求分析模型對(duì)MIS系統(tǒng)的開發(fā)具有較好的適應(yīng)性,結(jié)合具體實(shí)踐,本節(jié)以運(yùn)動(dòng)會(huì)信息管理系統(tǒng)的開發(fā)為例,說(shuō)明該模型在MIS系統(tǒng)開發(fā)中的應(yīng)用[11]。
(1)捕獲初始需求:通過(guò)大量調(diào)研,給出該系統(tǒng)的初始需求描述:運(yùn)動(dòng)會(huì)信息管理系統(tǒng)要實(shí)現(xiàn)運(yùn)動(dòng)員報(bào)名、各類人數(shù)統(tǒng)計(jì)、競(jìng)賽日程設(shè)定、初秩序冊(cè)生成、檢錄和成績(jī)處理、新秩序冊(cè)生成、團(tuán)體分統(tǒng)計(jì)、破紀(jì)錄人數(shù)統(tǒng)計(jì)等功能。該系統(tǒng)的活動(dòng)圖模型如圖2所示。
(2)創(chuàng)建用例模型:通過(guò)對(duì)圖2中每個(gè)活動(dòng)的參與者的分析,所獲得運(yùn)動(dòng)會(huì)信息管理系統(tǒng)的完整用例模型如圖3所示。
(3)創(chuàng)建動(dòng)態(tài)模型、靜態(tài)模型:通過(guò)對(duì)圖2中“比賽成績(jī)處理”活動(dòng)所涉及到的對(duì)象、對(duì)象之間的關(guān)系分析,獲取的比賽成績(jī)處理順序圖如圖4所示,其他活動(dòng)順序圖的獲取與此類似。
基于UML的需求分析模型以簡(jiǎn)單的圖形建模語(yǔ)言UML為基礎(chǔ),為人員交流提供了統(tǒng)一的平臺(tái),消除了語(yǔ)言理解分歧;該模型涵蓋了領(lǐng)域知識(shí)學(xué)習(xí)、建模方法培訓(xùn)、系統(tǒng)需求分析構(gòu)造等環(huán)節(jié),并從實(shí)施的角度考慮了角色構(gòu)成及其職責(zé)分配,使各類人員能夠更好地交流與合作,為得到完善的需求分析打下了堅(jiān)實(shí)的基礎(chǔ)。通過(guò)MIS的開發(fā)實(shí)踐表明,該模型不但能縮短軟件開發(fā)的周期,而且減少了軟件開發(fā)的風(fēng)險(xiǎn),有效提高了開發(fā)軟件的質(zhì)量。
參考文獻(xiàn)
[1] 張海潘.軟件工程導(dǎo)論[M].北京:清華大學(xué)出版社, 2009:320-344.
[2] 袁濤,孔蕾蕾.統(tǒng)一建模語(yǔ)言UML[M].北京:清華大學(xué)出版社,2009:46-79.
[3] FOWLER M. The unified modeling language[J]. Computer Science, 2003, 2863(9):325-334.
[4] EVANS A, FRANCE R. The UML as a Formal modeling notation [J].Computer Science, 2004,1618(7):336-348.
[5] 熊筱琴.高校圖書館信息管理系統(tǒng)與設(shè)計(jì)方法研究[J]. 科技情報(bào)開發(fā)與經(jīng)濟(jì),2007(14):7-9.
[6] CHOE J M. The consideration of cultural differences in the design of information systems[J].Information Management, 2004,41(5):669-684.
[7] 王新昊.Web快速開發(fā)技術(shù)淺析[J].科技資訊,2007(14):219-221.
[8] 樸春慧,趙靜,李建斌.基于UML的工程資料管理系統(tǒng)分析與設(shè)計(jì)[J].微計(jì)算機(jī)信息,2008(2-3):13-15.
[9] 汪成亮,張聰,張勤.UM技術(shù)在實(shí)際工程中的應(yīng)用[J].計(jì)算機(jī)工程與應(yīng)用,2002,38(1):121-124.
[10] 施維,宋雨.基于UML的網(wǎng)絡(luò)管理平臺(tái)的分析與設(shè)計(jì)[J].華北電力大學(xué)學(xué)報(bào),2003,30(4):86-89.
[11] 林子禹,鄧靖荒,唐勝群,等.UML在醫(yī)療保險(xiǎn)管理信息系統(tǒng)領(lǐng)域模型設(shè)計(jì)中的應(yīng)用[J].計(jì)算機(jī)工程與應(yīng)用,
2002,38(15):206-208.