黃藍(lán)會(huì)
?
基于UML進(jìn)行軟件需求分析的研究
黃藍(lán)會(huì)
摘 要:軟件需求分析的好壞關(guān)系軟件設(shè)計(jì)成本的高低,基于UML進(jìn)行軟件建模除了方便軟件開發(fā)人員與用戶溝通,還可以導(dǎo)出軟件系統(tǒng)的邏輯業(yè)務(wù)功能。從寶雞文理學(xué)院游泳館系統(tǒng)這個(gè)真實(shí)案例入手,基于UML建模技術(shù)分析了用例圖、類圖、活動(dòng)圖的使用方法。
關(guān)鍵詞:軟件需求分析;統(tǒng)一建模語言;建模
隨著計(jì)算機(jī)技術(shù)的快速發(fā)展,計(jì)算機(jī)軟件已經(jīng)遍布了多個(gè)行業(yè),電子商務(wù)、工業(yè)控制、金融證券、電力通信等領(lǐng)域紛紛引入了計(jì)算機(jī)軟件來幫助其辦公,另一方面,一些高尖端的技術(shù)領(lǐng)域,如航空航天、國(guó)防軍事等領(lǐng)域,對(duì)軟件的質(zhì)量提出了很高的要求[1]。
軟件開發(fā)的創(chuàng)造性工作主要體現(xiàn)在分析和開發(fā)階段,且分析階段的工作占到了整個(gè)開發(fā)工作量的40%左右,如果分析工作做的不好,可能會(huì)影響軟件質(zhì)量,甚至使系統(tǒng)無法運(yùn)行[2]。開發(fā)人員與用戶在開發(fā)之初對(duì)于系統(tǒng)需求分析的重要性認(rèn)識(shí)不清,雙方交流溝通容易發(fā)生誤解,致使他們對(duì)軟件系統(tǒng)用來做什么理解不準(zhǔn)確、不完整,影響軟件開發(fā)效益[3]。
Standish集團(tuán)公司的研究報(bào)告稱,分別為在美國(guó),每年用于軟件開發(fā)的費(fèi)用在一千多億美元以上,其中,大型公司開發(fā)一個(gè)軟件項(xiàng)目的評(píng)價(jià)成本在232.2萬美元,中等大小的公司為133.1萬美元,小型公司則為43.4萬美元。調(diào)查顯示,31%的項(xiàng)目在完成之前被取消,52.7%的項(xiàng)目實(shí)際所花的成本為預(yù)算成本的 189%[4]。根據(jù)該公司的另一項(xiàng)分析,項(xiàng)目失敗或者嚴(yán)重超支的8個(gè)最重要原因有5個(gè)都與需求有關(guān):需求不完整、缺乏用戶的參與、客戶期望不實(shí)際、需求和需求規(guī)格說明書的變更和提供許多不必要的功能[5]。
軟件需求分析就是要確定軟件必須實(shí)現(xiàn)的功能,通過對(duì)解決的問題進(jìn)行詳細(xì)分析,弄清問題的要求[6]。軟件計(jì)劃開始后首先進(jìn)行需求獲取,可以通過開會(huì)討論、實(shí)地調(diào)查、場(chǎng)景分析等多個(gè)手段獲取用戶的需求信息,然后提煉、分析和審查已收集上來的需求信息,找出真正有用的和遺漏的,剔除存在錯(cuò)誤、含糊或者沖突的,最后進(jìn)行需求建模,需求建模主要是利用某種建模方法建立系統(tǒng)的邏輯模型,幫助開發(fā)人員檢測(cè)軟件需求的一致性、完整性、二義性等問題。
目前比較成熟的需求建模方法有兩個(gè):一個(gè)是結(jié)構(gòu)化分析方法,該方法通過構(gòu)建數(shù)據(jù)流圖和數(shù)據(jù)字典來描述系統(tǒng)需求,主要針對(duì)大型管理系統(tǒng)用于數(shù)據(jù)處理;另一個(gè)就是面向?qū)ο蟮姆椒ǎ赨ML(Unifide Modeling Language)這個(gè)統(tǒng)一建模語言來進(jìn)行以體系結(jié)構(gòu)為中心、用例驅(qū)動(dòng)的迭代式的軟件開發(fā)。
UML的中文含義是統(tǒng)一建模語言,其統(tǒng)一包含如下幾個(gè)方面:UML對(duì)以往面向?qū)ο蠓椒ㄖ械男g(shù)語進(jìn)行了統(tǒng)一清晰的描述;UML在軟件開發(fā)的生命期采用相同的概念,方便進(jìn)行無縫的迭代式開發(fā);UML可以應(yīng)用在不同的編程實(shí)現(xiàn)語言和開發(fā)平臺(tái)系統(tǒng)。
UML使用視圖來劃分系統(tǒng)各個(gè)方面,每一種視圖描述系統(tǒng)某一方面的特性,完整的系統(tǒng)由不同的視圖從不同的角度共同描述,這5個(gè)視圖分別是:用例視圖、邏輯視圖、并發(fā)視圖、組件視圖和部署視圖[7]。用例視圖強(qiáng)調(diào)的是從外部參與者角度需要的功能,描述系統(tǒng)應(yīng)該具有的功能是其他視圖的核心,通過用例圖來描述。邏輯視圖主要關(guān)注系統(tǒng)內(nèi)部,除了通過類、對(duì)象描述系統(tǒng)的靜態(tài)結(jié)構(gòu)外,還要通過活動(dòng)圖、狀態(tài)圖、序列圖來描述系統(tǒng)牛的動(dòng)態(tài)協(xié)作關(guān)系。并發(fā)視圖主要考慮代碼的并發(fā)執(zhí)行以及系統(tǒng)異步事件的處理,主要通過狀態(tài)圖、活動(dòng)圖描述。組件視圖是描述系統(tǒng)的實(shí)現(xiàn)模塊以及他們之間的依賴關(guān)系,主要通過組件圖來描述。部署視圖主要描述節(jié)點(diǎn)上運(yùn)行實(shí)例的部署情況,通過部署圖來描述。本文通過一個(gè)真實(shí)案例網(wǎng)上購書系統(tǒng)來描述UML常用的用例圖、類圖、活動(dòng)圖。
2.1 用例圖
用例圖是UML中最常用的圖,描述了人們希望如何使用一個(gè)系統(tǒng),即用戶希望系統(tǒng)實(shí)現(xiàn)什么功能,以及用戶需要為系統(tǒng)提供哪些信息。用例圖由開發(fā)人員與用戶協(xié)商完成,以每一個(gè)參與系統(tǒng)開發(fā)的人員都可以理解的方式來列舉系統(tǒng)的業(yè)務(wù)需求。用例圖是軟件需求建模的開始,除了可以用于軟件開發(fā)的需求分析階段,也可以用于軟件的系統(tǒng)測(cè)試階段。
用例圖主要由4個(gè)基本部分組成:系統(tǒng)、參與者、用例和關(guān)系。系統(tǒng)在用例圖中是用一個(gè)長(zhǎng)方框來表示一個(gè)系統(tǒng)邊界,是所有用例的集合。參與者是系統(tǒng)外的實(shí)體,代表與系統(tǒng)交互的用戶、設(shè)備或者另一個(gè)系統(tǒng),在用例圖中用人形符號(hào)來表示。用例是系統(tǒng)的一個(gè)功能模塊,描述用戶期望系統(tǒng)所具有的功能,在用例圖中用橢圓表示。關(guān)系存在兩個(gè)地方:一處是參與者與用例間的關(guān)聯(lián)關(guān)系,這個(gè)關(guān)系是雙向的,在用例圖中用實(shí)線表示。還有一處是用例間的關(guān)系,用例間可以存在包含關(guān)系、擴(kuò)展關(guān)系和泛化關(guān)系。在用例圖中包含關(guān)系用實(shí)線和三角箭頭鏈接父用例和子用例,包含關(guān)系用虛線箭頭加《include》字樣,擴(kuò)展關(guān)系用虛線箭頭加《extend》字樣。
本文用寶雞文理學(xué)院游泳館系統(tǒng)作為案例來描述UML各個(gè)圖形。寶雞文理學(xué)院游泳館系統(tǒng)的游泳用戶有四大類,分別是會(huì)員、散客、教師和學(xué)生,會(huì)員分為辦次數(shù)卡會(huì)員(一次性辦10次、20次、50次、100次)和時(shí)間卡會(huì)員(月卡、季卡、年卡),針對(duì)辦理了會(huì)員卡的用戶,游泳不限時(shí),門票銷售是從次數(shù)卡數(shù)量減1,或者判斷時(shí)間卡有無超期來辦理。如果用戶在學(xué)校內(nèi)部人員名單中有記錄,存入了對(duì)應(yīng)的指紋,就屬于學(xué)校內(nèi)部人員,比如教師和學(xué)生,游泳價(jià)錢有折扣,游泳不限時(shí)。散客游泳有時(shí)間限制,超過兩小時(shí)需要付超時(shí)費(fèi)。每次游泳前,前臺(tái)管理員會(huì)發(fā)放一個(gè)手牌,打印一個(gè)入場(chǎng)票據(jù),入場(chǎng)票據(jù)記錄了該用戶的入場(chǎng)時(shí)間、押金數(shù)額和用戶類型,如果是會(huì)員卡用戶,入場(chǎng)票據(jù)會(huì)顯示會(huì)員卡的剩余次數(shù);手牌記錄了入場(chǎng)時(shí)間,通過手牌可以打開存物柜的門,出場(chǎng)時(shí)根據(jù)手牌記錄離場(chǎng)時(shí)間。本系統(tǒng)還有一個(gè)系統(tǒng)管理員、管理票價(jià)和折扣信息,以及營(yíng)業(yè)額的統(tǒng)計(jì),同時(shí)還管理前臺(tái)管理員的人員信息。
系統(tǒng)用例圖如圖1和圖2所示:

圖1 寶雞文理學(xué)院游泳管理系統(tǒng)前臺(tái)管理員用例圖

圖2 寶雞文理學(xué)院游泳管理系統(tǒng)后臺(tái)管理員用例圖
圖1為前臺(tái)管理員這個(gè)參與者對(duì)應(yīng)的用例圖,圖2為后臺(tái)管理員對(duì)應(yīng)的用例圖。
2.2 類圖
類圖是描述類、接口以及他們之間關(guān)系的靜態(tài)模型圖,顯示了各個(gè)類的靜態(tài)結(jié)構(gòu),是面向?qū)ο笙到y(tǒng)建模中最基本的圖之一,狀態(tài)圖、序列圖都是在類圖的基礎(chǔ)上進(jìn)一步描述系統(tǒng)其他方面的特征。
類圖主要包含類和關(guān)系。類有3部分組成:名稱、屬性和操作,分別在類中分欄從上到下的順序表示。類與類之間的關(guān)系有依賴、實(shí)現(xiàn)、泛化3種關(guān)系。
寶雞文理學(xué)院游泳館系統(tǒng)界面圖類圖如圖3所示:

圖3 寶雞文理學(xué)院游泳館系統(tǒng)用戶界面類圖
實(shí)體類圖如圖4所示:

圖4 寶雞文理學(xué)院游泳館系統(tǒng)實(shí)體類圖
2.3 活動(dòng)圖
活動(dòng)圖是UML對(duì)于系統(tǒng)動(dòng)態(tài)行為建模的常用工具,主要描述活動(dòng)的順序,展示一個(gè)活動(dòng)到另一個(gè)活動(dòng)的控制流,其本質(zhì)是一個(gè)流程圖,是內(nèi)部處理驅(qū)動(dòng)的流程。
活動(dòng)圖的基本組成元素是:活動(dòng)、轉(zhuǎn)移、判定、開始狀態(tài)和結(jié)束狀態(tài)。活動(dòng)主要表示工作過程中一個(gè)命令或活動(dòng)的進(jìn)行。轉(zhuǎn)移是指從一個(gè)活動(dòng)到另一個(gè)活動(dòng)的控制流。判定是當(dāng)某個(gè)活動(dòng)有兩個(gè)以上路徑,而這兩個(gè)路徑是互斥的,這時(shí)要根據(jù)不同的條件標(biāo)識(shí)執(zhí)行哪條路徑。
本系統(tǒng)用戶入場(chǎng)門票銷售對(duì)應(yīng)的活動(dòng)圖如圖5所示:

圖5 寶雞文理學(xué)院游泳館系統(tǒng)門票銷售活動(dòng)圖
出場(chǎng)結(jié)賬的活動(dòng)圖如圖6所示:

圖6 寶雞文理學(xué)院游泳館系統(tǒng)出場(chǎng)結(jié)賬活動(dòng)圖
軟件需求分析是軟件設(shè)計(jì)的第一個(gè)階段,需求分析的好壞關(guān)系到整個(gè)軟件的成敗。軟件需求分析經(jīng)歷了需求獲取、需求分析、需求建模和需求驗(yàn)證幾個(gè)環(huán)節(jié),最后寫成軟件需求規(guī)格說明書,而需求規(guī)格說明書中呈現(xiàn)的系統(tǒng)功能通常是用基于UML的圖形描述的。利用UML這種圖形化的形式進(jìn)行需求建模,既統(tǒng)一了標(biāo)準(zhǔn)又容易和客戶進(jìn)行溝通。
參考文獻(xiàn)
[1] 毋國(guó)慶等.軟件需求工程[M].機(jī)械工業(yè)出版社. 2008:1
[2] 姚全珠,王江.基于UML的軟件形式化需求分析與驗(yàn)證[J].計(jì)算機(jī)工程,2010,36(13):30–33
[3] 朱曉晶. 軟件工程需求分析方案的制定研究[J]. 信息通信, 2015,6:165
[4] The Standish Group. Charting the Seas of Information Technologu-chaos[R]. The Standish Group International, 1994
[5] The Standish Group. Report of the Standish Group International[R]. The Standish Group International, 1998
[6] 靳佩瑤.使用用例建模進(jìn)行軟件需求分析研究[J].電腦知識(shí)與技術(shù),2014,10(29):6860-6862
[7] 王菁,趙元慶. UML建模設(shè)計(jì)與分析[M]. 清華大學(xué)出版社,2013:14-15
中圖分類號(hào):TP391.1
文獻(xiàn)標(biāo)志碼:B
文章編號(hào):1007-757X(2016)07-009-03
收稿日期:(2016.01.14)
基金項(xiàng)目:國(guó)家自然科學(xué)基金(61379030);陜西省教育廳專項(xiàng)科研項(xiàng)目(15JK1028)
作者簡(jiǎn)介:黃藍(lán)會(huì)(1980-),女,岳陽人,寶雞文理學(xué)院,計(jì)算機(jī)學(xué)院,講師,碩士,研究方向:物聯(lián)網(wǎng)應(yīng)用,數(shù)據(jù)挖掘,寶雞,721016
Research on Software Requirement Analysis Based on UML
Huang Lanhui
(Department of Computer Science, Baoji University of Arts and Science, Baoji 721016, China)
Abstract:If the Software requirement analysis has done well, then the cost will not be high. UML-based modeling software has two advantages. One advantage is easy for software developers to communicate with users, and the other advantage is the function of the system can be exported. This paper studies the swimming pool system in Baoji University of Arts and Science. UML modeling techniques are used to analyze their usage, including use case diagram, class diagram and activity diagram.
Key words:Software Requirement Analysis; UML; Modeling