摘 要:介紹了軍事軟件系統(tǒng)需求分析的特點(diǎn)和用例分析技術(shù)易于軟件開(kāi)發(fā)人員與用戶之間開(kāi)展溝通與交流的優(yōu)勢(shì),闡明了用例分析技術(shù)有助于提高軍事軟件需求分析的效率和質(zhì)量,探討了用例分析技術(shù)的建模步驟,從而描述了一種使用用例分析技術(shù)開(kāi)展軍事軟件需求建模的有效的實(shí)現(xiàn)方法。
關(guān)鍵詞:需求分析;用例分析技術(shù);用例模型;參與者
中圖分類(lèi)號(hào):TP311.5 文獻(xiàn)標(biāo)識(shí)碼:B
文章編號(hào):1004373X(2008)0304803
Application of Use Case Technique in Military Requirement Analysis
WANG Mingqiang,QIAO Bo
(Institute of Command Automation,PLA University of Science and Technology,Nanjing,210007,China)
Abstract:This thesis gives a detail account of the characteristic of the requirement analysis in military software and the superiority of use case technique in the communion between the software developer and the user.It expounds that use case analysis technology contributes to improve the efficiency and the quality of requirement analysis in military software,and it probes into the steps of use case analysis technology modeling,describes an effective method by use case technique about requirement analysis in military software.
Keywords:requirement analysis;use case analysis technology;use case modeling;actor
1 引 言
需求分析是軟件開(kāi)發(fā)過(guò)程中一個(gè)十分重要的環(huán)節(jié)。需求分析的結(jié)果決定了軟件系統(tǒng)能否符合用戶的要求,也奠定了軟件工程和項(xiàng)目管理的基礎(chǔ)。在軍事軟件需求分析階段,軟件開(kāi)發(fā)人員和軍事人員都習(xí)慣于從自己的角度考慮問(wèn)題,用自己的專(zhuān)業(yè)術(shù)語(yǔ)進(jìn)行溝通,這就使得雙方在軟件需求方面容易產(chǎn)生誤解,影響需求分析結(jié)果的正確性。因此,采用什么技術(shù)進(jìn)行需求分析設(shè)計(jì),對(duì)軍事軟件需求分析的效率高低和分析結(jié)果的正確與否有著直接的影響。
用例分析技術(shù)是面向?qū)ο蟮男枨蠓治黾夹g(shù)。用例分析技術(shù)比傳統(tǒng)的需求分析技術(shù)更易于被用戶所理解,是開(kāi)發(fā)人員和用戶之間針對(duì)系統(tǒng)需求進(jìn)行溝通的一個(gè)有效手段。使用用例分析技術(shù)能夠提高需求分析的效率,增強(qiáng)分析過(guò)程的科學(xué)性,是軍事軟件需求分析的重要途徑。
2 需求分析的概念和任務(wù)
需求是計(jì)算機(jī)應(yīng)用系統(tǒng)必須為其用戶所做的事,是系統(tǒng)必須提供的具體功能、特性、質(zhì)量,以體現(xiàn)系統(tǒng)存在價(jià)值。需求分析一般分為需求獲取、分析建模、需求描述3個(gè)步驟。軟件需求分析的任務(wù)是確定系統(tǒng)必須完成哪些工作,也就是對(duì)目標(biāo)系統(tǒng)提出完整、準(zhǔn)確、清晰、具體的要求。他所做的工作是深入描述軟件的功能和性能,確定軟件設(shè)計(jì)的邊界和軟件同其他元素的接口,定義軟件的其他有效性要求。
3 軍事需求分析的特點(diǎn)
軍事軟件系統(tǒng)的用戶需求是一個(gè)十分復(fù)雜的問(wèn)題,系統(tǒng)的成敗首先在于他能否滿足作戰(zhàn)環(huán)境和使用軟件系統(tǒng)的指揮員和參謀人員的作戰(zhàn)需求。滿足用戶需求是軟件系統(tǒng)必須具備的能力,良好的需求描述方法是系統(tǒng)開(kāi)發(fā)的關(guān)鍵。而在軍用軟件系統(tǒng)需求分析中存在兩個(gè)重要問(wèn)題:
需求描述問(wèn)題一方面,指揮人員由于缺乏使用系統(tǒng)的實(shí)踐經(jīng)驗(yàn),很難把系統(tǒng)需求說(shuō)得很清楚;另一方面,研制人員對(duì)作戰(zhàn)指揮的需求缺乏實(shí)際體會(huì),而且相當(dāng)一部分系統(tǒng)開(kāi)發(fā)的技術(shù)人員為非軍事人員,對(duì)軍用軟件的特殊需要和指揮流程、指揮結(jié)構(gòu)不夠明確。
需求管理問(wèn)題一方面,在系統(tǒng)建設(shè)過(guò)程中,需求變更會(huì)從需求層次起,影響后續(xù)的所有工作直至設(shè)計(jì)實(shí)現(xiàn)和檢驗(yàn),需求描述不能滿足需求重用的需要;另一方面,需求描述通用性不強(qiáng),由于多種原因引起的系統(tǒng)設(shè)計(jì)人員或技術(shù)骨干人員的變更,使系統(tǒng)研制的連續(xù)性受到破壞,新進(jìn)入項(xiàng)目研發(fā)成員對(duì)原需求描述方法掌握需要時(shí)間,影響效率。
本文主要目的是針對(duì)軍事軟件系統(tǒng)需求在需求描述和需求管理方面存在的問(wèn)題,通過(guò)運(yùn)用科學(xué)、規(guī)范化的描述方法,來(lái)直觀形象地反映系統(tǒng)需求,力求建立系統(tǒng)分析和軟件設(shè)計(jì)階段之間的橋梁,使需求描述具有互操作性并使之符合軍事軟件系統(tǒng)的功能和結(jié)構(gòu)要求。
4 用例分析技術(shù)
用例分析技術(shù)是一項(xiàng)源于實(shí)踐的需求分析技術(shù)。他通過(guò)用例的參與者和用例以及用例之間的關(guān)系來(lái)描繪系統(tǒng)外在可見(jiàn)的需求,他從外部用戶和外部系統(tǒng)的角度,分析和考察系統(tǒng)的行為,把需求與設(shè)計(jì)完全分離開(kāi)來(lái),并通過(guò)參與者與系統(tǒng)之間的交互關(guān)系描述系統(tǒng)對(duì)外提供的功能特性。這正好滿足了用戶的需求,因?yàn)樗麄儾⒉徽嫦肓私庀到y(tǒng)的內(nèi)部結(jié)構(gòu)和設(shè)計(jì),他們所關(guān)心的是系統(tǒng)能提供什么樣的服務(wù)。所以,用例分析技術(shù)為解決現(xiàn)代軟件需求問(wèn)題提供了一個(gè)有效的解決方案。首先,他描述了待開(kāi)發(fā)系統(tǒng)的功能需求;其次,他將系統(tǒng)看作黑盒,從外部參與者的角度理解系統(tǒng);第三,他驅(qū)動(dòng)了需求分析之后的各階段的開(kāi)發(fā)工作。不僅在開(kāi)發(fā)過(guò)程中保證了系統(tǒng)所有功能的實(shí)現(xiàn),而且被用于驗(yàn)證和檢測(cè)所開(kāi)發(fā)的系統(tǒng),從而影響到開(kāi)發(fā)工作的各個(gè)階段。因此用例分析技術(shù)適合軍事軟件系統(tǒng)需求分析的需要,用例模型在軍事需求分析中的作用如圖1所示。
圖1 用例模型在需求分析中的作用
4.1 用例的概念
用例是系統(tǒng)外在可見(jiàn)的需求,定義參與者如何使用系統(tǒng)。每一個(gè)用例描述的是用戶需要系統(tǒng)完成的某一個(gè)完整的功能,所有的用例共同描述從用戶角度看到的系統(tǒng)的完整功能。用例主要有3方面的含義:
(1) 用例通常是由最終用戶或外部環(huán)境發(fā)起的。用例的發(fā)起者被稱為參與者。參與者是同系統(tǒng)交互的所有事物,例如:人、其他的軟件、硬件設(shè)備等。
(2) 每個(gè)用例只描述單獨(dú)的任務(wù),而不能描述多個(gè)任務(wù)。
(3) 用例必須產(chǎn)生一個(gè)對(duì)用戶有意義的結(jié)果。
4.2 用例建模
用例建模就是通過(guò)分析用戶的功能性需求,從而得到用例模型的工作過(guò)程。用例建模的主要步驟為:
(1) 確定參與者。
(2) 確定用例。
(3) 撰寫(xiě)用例規(guī)約。
4.3 UML中的用例圖
用例圖是9種UML圖之一,他用于描述參與者和用例之間、一個(gè)用例和另一個(gè)用例之間的關(guān)系。用例圖的表示法很直觀,如圖2所示。用例用一個(gè)橢圓表示,他的名字可以放在橢圓里也可放在橢圓下面。參與者用一個(gè)人形的符號(hào)表示,參與者的名字放在參與者圖標(biāo)的下方。參與者和用例之間或用例和用例之間的關(guān)聯(lián)均用直線表示。
圖2 用例圖
參與者和用例之間或用例和用例之間的基本關(guān)聯(lián)有3種:包含、擴(kuò)展和泛化。
包含一個(gè)用例中重用另一個(gè)用例的關(guān)系,在用例圖中使用帶箭頭的虛線表示,箭頭指向被包含的用例,同時(shí)在線上加上用雙尖括號(hào)擴(kuò)起的“include”。
擴(kuò)展表示一個(gè)特殊用例擴(kuò)展原有的用例。他的表示與包含相似,不同的是箭頭指向原用例且用“extend”標(biāo)識(shí)。
泛化指一個(gè)用例繼承了另一個(gè)用例,參與者之間也可能有泛化關(guān)系。泛化可用實(shí)線加上空心箭頭表示,箭頭指向父用例或父參與者。
5 軍事系統(tǒng)用例建模方法
5.1 確定參與者
在軍事軟件需求分析中,應(yīng)該由軍事專(zhuān)家、軍事系統(tǒng)使用人員、建模專(zhuān)家、建模工程師四類(lèi)角色參與。軍事專(zhuān)家具備豐富的軍事知識(shí),熟悉軍事體系結(jié)構(gòu)和軍事軟件應(yīng)用背景,對(duì)系統(tǒng)設(shè)計(jì)的總體有效性和正確性進(jìn)行驗(yàn)證;軍事系統(tǒng)使用人員熟悉軍事軟件具體應(yīng)用的作戰(zhàn)指揮環(huán)境和具體指揮應(yīng)用要求,提出系統(tǒng)具體的細(xì)節(jié);建模專(zhuān)家應(yīng)熟悉系統(tǒng)開(kāi)發(fā)方法,并且有豐富的建模經(jīng)驗(yàn),能針對(duì)軍事系統(tǒng)的特點(diǎn),提出需求分析的指導(dǎo)原則、實(shí)施方案、需求建模的文檔規(guī)范,并對(duì)需求分析及建模的進(jìn)度實(shí)施必要的控制;建模工程師應(yīng)熟悉具體建模方法和豐富的建模領(lǐng)域知識(shí),同時(shí)具備技術(shù)實(shí)現(xiàn)領(lǐng)域知識(shí),能夠和技術(shù)實(shí)現(xiàn)人員良好的溝通,在建模專(zhuān)家的指導(dǎo)下充分挖掘需求、并提出一些初步的方案,形成最終的需求分析文檔。在需求分析過(guò)程中,由于建模專(zhuān)家、建模工程師同軍事人員的知識(shí)領(lǐng)域的差異,他們?cè)谕粋€(gè)問(wèn)題上常常有兩種完全不同的理解。所以最終的用例模型是軍事人員與軟件工程人員之間反復(fù)交互的結(jié)果,也是軍事人員和技術(shù)實(shí)現(xiàn)人員交流的橋梁。
5.2 確定基本用例模型
這個(gè)階段主要任務(wù)是由軍事專(zhuān)家、軍事系統(tǒng)使用人員同建模人員進(jìn)行充分的溝通,以清晰的方式表述客戶的需求。為便于軍事人員對(duì)需求分析結(jié)果正確性的確認(rèn),在這個(gè)階段對(duì)模型的描述主要采用自然語(yǔ)言和圖形為主。首先使用業(yè)務(wù)流程圖對(duì)業(yè)務(wù)流程進(jìn)行建模。業(yè)務(wù)流程圖是需求分析中經(jīng)常使用的一種非結(jié)構(gòu)化工具,由于業(yè)務(wù)流程圖是使用人員業(yè)務(wù)的再現(xiàn),所以軍事人員能夠清晰正確地理解并利用他充分表達(dá)自己的意見(jiàn),和建模人員形成一致的認(rèn)識(shí)。業(yè)務(wù)流程圖直觀和易于理解的優(yōu)點(diǎn)在需求分析過(guò)程中具有顯而易見(jiàn)的優(yōu)勢(shì),軍事人員可以向建模人員清楚地表達(dá)業(yè)務(wù)流程圖主要描述的作戰(zhàn)指揮方式、指揮流程、指揮手段、指揮機(jī)構(gòu)組成、指揮人員編制等軍事需求。我們可以得到一個(gè)清晰的、能同時(shí)被建模人員和軍事人員正確理解的基本模型,這個(gè)模型是構(gòu)造用例模型的基礎(chǔ)。
5.3 細(xì)化用例模型
基本用例描述了系統(tǒng)外部的參與者要實(shí)現(xiàn)的目標(biāo),只反映用戶需求而不干涉系統(tǒng)應(yīng)提供具體功能細(xì)節(jié),為獲得這些功能細(xì)節(jié),以便于軟件構(gòu)架的建立和將來(lái)的設(shè)計(jì)和實(shí)現(xiàn)工作,就要將用例細(xì)化。在需求模型建立后,系統(tǒng)分析員就可以以需求模型和用例圖作為起始點(diǎn)詳細(xì)描述每個(gè)用例,并將每個(gè)用例逐步描述細(xì)化為精確動(dòng)作序列的分析模型。
細(xì)化每個(gè)用例的主要任務(wù)是詳細(xì)描述其事件流。事件流是描述參與者執(zhí)行用例過(guò)程中發(fā)生的各種交互的序列,包括用例如何開(kāi)始、結(jié)束以及如何與參與者進(jìn)行交互。事件通常會(huì)形成兩種路徑: 一種是參與者順利達(dá)成目標(biāo)的基本路徑稱為基本流,另一種是反映可選或異常情況行為的備選路徑,稱之為備選流。
基本流描述的是該用例最正常的一種場(chǎng)景,在基本流中系統(tǒng)執(zhí)行一系列活動(dòng)步驟來(lái)響應(yīng)參與者提出的服務(wù)請(qǐng)求?;玖鞯拿枋龈袷綖椋?/p>
(1) 每一個(gè)步驟都需要用數(shù)字編號(hào)清楚地標(biāo)明步驟的先后順序。
(2) 用一句簡(jiǎn)短的標(biāo)題來(lái)概括每一步驟的主要內(nèi)容,這樣可以通過(guò)瀏覽標(biāo)題來(lái)了解用例的主要步驟。
(3) 當(dāng)整個(gè)用例模型基本穩(wěn)定之后,再針對(duì)每一步驟詳細(xì)描述參與者和系統(tǒng)之間所發(fā)生的交互。每一步驟都需要從正反兩個(gè)方面來(lái)描述,既參與者向系統(tǒng)提交了什么信息和系統(tǒng)對(duì)此的響應(yīng)。
備選流負(fù)責(zé)描述用例執(zhí)行過(guò)程中異常的或偶爾發(fā)生的一些情況,備選流和基本流的組合應(yīng)該能夠覆蓋該用例所有可能發(fā)生的場(chǎng)景。在描述備選流時(shí),應(yīng)該包括以下幾個(gè)要素:
(1) 起點(diǎn):該備選流從事件流的哪一步開(kāi)始;
(2) 條件:在什么條件下會(huì)觸發(fā)該備選流;
(3) 動(dòng)作:系統(tǒng)在該備選流下會(huì)采取哪些動(dòng)作;
(4) 恢復(fù):該備選流結(jié)束之后,該用例應(yīng)如何繼續(xù)執(zhí)行。
參與者要完成用例,必須通過(guò)整條基本路徑,而備選路徑則不一定會(huì)通過(guò)。需要時(shí)可先確定用例的基本路徑和關(guān)鍵的備選路徑,在以后的迭代中再增加其他的備選路徑。此外,在細(xì)化用例時(shí)還應(yīng)指出用例的前提條件和后置條件。前提條件指調(diào)用用例時(shí)必須滿足的條件,后置條件指用例結(jié)束時(shí)必須滿足的條件。
細(xì)化后的用例描述內(nèi)容:
參與者:與系統(tǒng)發(fā)生交互的人或其他系統(tǒng);
用例名:表明主角通過(guò)他的交互能達(dá)到什么目的;
簡(jiǎn)明描述:簡(jiǎn)要說(shuō)明系統(tǒng)實(shí)現(xiàn)的功能和方式;
事件流程:是用例的核心,對(duì)參與者的操作以及系統(tǒng)的響應(yīng)的文本描述。
備選事件流:系統(tǒng)對(duì)非主事件流狀態(tài)下,對(duì)參與者操作的響應(yīng)。
前置條件:用例開(kāi)始之前需要滿足的系統(tǒng)狀態(tài)和環(huán)境條件;
后置條件:用例結(jié)束后系統(tǒng)可能處于的狀態(tài);
特殊需求:主要定義可靠性、可用性、性能等非功能需求。
5.4 建立測(cè)試模型
“用例技術(shù)的最大好處就是他構(gòu)建了一組可用來(lái)驅(qū)動(dòng)測(cè)試過(guò)程的資產(chǎn)”。用例可以直接派生測(cè)試用例的開(kāi)發(fā),用例的場(chǎng)景為單個(gè)測(cè)試用例創(chuàng)建模板,增加數(shù)據(jù)值將完成測(cè)試用例,最后測(cè)試非功能性要求來(lái)完成對(duì)軟件的測(cè)試。測(cè)試用例的過(guò)程為:
(1) 確定用例的場(chǎng)景;
(2) 對(duì)每個(gè)場(chǎng)景,確定一個(gè)或多個(gè)測(cè)試用例;
(3) 對(duì)每個(gè)測(cè)試用例,確定讓他執(zhí)行的條件;
(4) 增加數(shù)據(jù)值來(lái)完成測(cè)試用例。
圖3 跟蹤用例到測(cè)試用例
圖4 跟蹤用例到測(cè)試用例場(chǎng)景
6 結(jié) 語(yǔ)
用例模型用于需求分析階段,描述待開(kāi)發(fā)系統(tǒng)的功能需求,驅(qū)動(dòng)需求分析之后各階段的開(kāi)發(fā)工作。用例分析技術(shù)運(yùn)用文字和標(biāo)準(zhǔn)的圖形來(lái)描述用戶需求,易于開(kāi)發(fā)人員和客戶之間交流、溝通和理解并精確地定義軟件需求,保證開(kāi)發(fā)人員和客戶之間對(duì)需求理解的一致性。因此,用例分析技術(shù)有助于提高軍事系統(tǒng)需求分析的效率和質(zhì)量,在整個(gè)軟件項(xiàng)目開(kāi)發(fā)過(guò)程中起著非常重要的作用。
參考文獻(xiàn)
[1]Dean Leffingwell,Don Widrig.Managing Software Requirements:A Use Case Approach[M].Second Edition.Dean Leffingwell,2004.
[2]Suzanne Robertson,James Robertson.Mastering the Requirements Process[M].Addison Wesley,2003.
[3]Daryl Kulak,Eamonn Guiney.Use Cases Requirements in Context[M].Second Edition.Addison Wesley,2004.
[4]王建軍.UML建模:實(shí)例分析[J].微計(jì)算機(jī)信息,2002(5):66—68.
[5]王晶,雷光秀.一種構(gòu)造用例模型的方法研究[J].新疆石油天然氣,2005,23(4):158—159.
作者簡(jiǎn)介 王明強(qiáng) 男,1979年出生,黑龍江雙鴨山人,碩士研究生。主要研究方向?yàn)橹笓]自動(dòng)化理論、軟件工程。
喬波 男,1979年出生,河南濟(jì)源人,碩士研究生。主要研究方向?yàn)橛?jì)算機(jī)應(yīng)用。
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文。