邱會魯?shù)?/p>
摘要:針對需求獲取中需求范圍確定、需求溝通及理解、需求定義等方面存在的問題,對需求獲取方法進行了新的探索,提出了一種基于業(yè)務(wù)驅(qū)動的需求獲取方法,其中包括支撐業(yè)務(wù)驅(qū)動過程的業(yè)務(wù)-需求映射模型,維度-需求體系應(yīng)用和業(yè)務(wù)驅(qū)動需求,采用了層次分析法、質(zhì)量功能部署、業(yè)務(wù)分解結(jié)構(gòu)和統(tǒng)一建模語言UML等技術(shù)。應(yīng)用結(jié)果表明,該方法具有可操作性,能夠有效提高需求獲取工作效率和質(zhì)量。
關(guān)鍵詞:需求獲?。粯I(yè)務(wù)驅(qū)動;業(yè)務(wù)-需求映射模型;維度-需求體系;層次分析法;質(zhì)量功能部署
DOIDOI:10.11907/rjdk.143673
中圖分類號:TP301
文獻標(biāo)識碼:A 文章編號文章編號:16727800(2015)001000404
作者簡介作者簡介:邱會魯(1990-),男,山東曲阜人,山東科技大學(xué)信息科學(xué)與工程學(xué)院碩士研究生,研究方向為軟件工程。
0 引言
需求獲取是軟件開發(fā)的基礎(chǔ),對后續(xù)的分析設(shè)計及開發(fā)實施有重大影響,同時也決定著客戶對需求完整性、正確性的認可度。Standish Group的研究表明,至少有1/3以上的項目是因為與需求獲取、需求建檔和需求管理相關(guān)的原因而陷入困境[1]。目前,需求獲取仍是一個需要關(guān)注和深入研究的領(lǐng)域。
文獻[2]中提出了與需求獲取息息相關(guān)的3個至關(guān)重要的因素:①應(yīng)搜集什么信息;②要求解決的問題列表;③用戶對解系統(tǒng)行為或結(jié)構(gòu)施加的約束。與這些因素相關(guān)的需求范圍確定、需求溝通與理解和需求定義等存在諸多困難。針對需求獲取的問題和難點,一些研究提出了基于領(lǐng)域知識和本體論的需求獲取方法[35],以及基于情景與基于用例驅(qū)動的需求獲取方法[67]等,但對于如何從業(yè)務(wù)角度驅(qū)動軟件需求獲取過程的研究還比較少,本文提出的基于業(yè)務(wù)驅(qū)動的需求獲取方法源于對需求層次化[8]及RUP業(yè)務(wù)建模的思考。需求獲取具有層次化的特點,而且各層次之間存在緊密的關(guān)聯(lián)。首先要有業(yè)務(wù)需求,業(yè)務(wù)不正確或不清楚,后續(xù)工作會受到很大影響;其次是用戶需求,用戶需求需要與具體的業(yè)務(wù)需求保持一致;最后是軟件需求,涉及軟件功能性和非功能性需求。這種思路提供了解決需求獲取的主線,即業(yè)務(wù)驅(qū)動需求獲取過程。
1 業(yè)務(wù)-需求映射模型
業(yè)務(wù)-需求映射模型由業(yè)務(wù)域和軟件域組成,兩個域之間存在選擇性的映射關(guān)系。所謂選擇性是指根據(jù)軟件功能需求與用戶需求進行業(yè)務(wù)篩選,此模型主要給系統(tǒng)分析人員提供界定軟件產(chǎn)品范圍依據(jù)。業(yè)務(wù)-需求映射模型如圖1所示。
圖1 業(yè)務(wù)-需求映射模型
1.1 業(yè)務(wù)-需求映射數(shù)據(jù)結(jié)構(gòu)
根據(jù)業(yè)務(wù)-需求映射模型的特點,可以將需求數(shù)據(jù)抽象為以下基本結(jié)構(gòu):
(1)集合B、S、F與NF,B={x|x為業(yè)務(wù)需求}, F={yF|yF為軟件功能需求},NF={yNF| yNF為軟件非功能性需求},S={y|y∈F 或y∈NF}。
(2)序偶
1.2 業(yè)務(wù)-需求映射過程與規(guī)則
基于業(yè)務(wù)驅(qū)動的需求獲取主要包括兩方面映射:①用戶需求與約束到軟件的非功能性需求映射,這個過程通過質(zhì)量功能展開技術(shù)QFD(Quality Function Deployment)進行選擇映射;②業(yè)務(wù)需求到軟件功能的映射,這個過程主要是通過層次分析法AHP(Analytic Hierarchy Process)標(biāo)識業(yè)務(wù)需求優(yōu)先級,并對其進行業(yè)務(wù)模型構(gòu)建,通過用例轉(zhuǎn)換方式轉(zhuǎn)換為系統(tǒng)用例,并將其它相關(guān)業(yè)務(wù)模型轉(zhuǎn)換為系統(tǒng)功能性描述。下面對兩種映射進行介紹:
(1)用戶及約束與軟件非功能需求的映射。①標(biāo)識與描述用戶需求及約束條件;②對用戶需求及約束進行重要度分析;③標(biāo)識涉及的非功能性需求;④應(yīng)用QFD關(guān)系矩陣;⑤整理出軟件非功能需求。
(2)業(yè)務(wù)需求映射。①標(biāo)識業(yè)務(wù)域需求;②利用AHP方法標(biāo)識出業(yè)務(wù)需求優(yōu)先級;③構(gòu)建業(yè)務(wù)模型;④應(yīng)用業(yè)務(wù)與軟件功能映射規(guī)則;⑤整理出軟件功能需求。
針對上述映射(1),通過建立QFD過程,對相關(guān)用戶需求和約束條件進行映射,這種方法可以有效提高用戶和軟件項目內(nèi)部橫向和縱向溝通的有效性。而映射(2)各步驟制定了如表1所示的映射規(guī)則,映射規(guī)則從業(yè)務(wù)需求域元素入手,與軟件需求元素進行關(guān)聯(lián),建立用戶可以對照理解的系統(tǒng)概貌。
1.3 QFD與AHP應(yīng)用
在映射(1)中主要采用廣義的QFD技術(shù),它是一種采用矩陣的形式量化評估目的和手段相互關(guān)系的分析工具,本文在傳統(tǒng)關(guān)系矩陣的基礎(chǔ)上進行了應(yīng)用,對映射進行評估,確定非功能需求,確立的非功能需求關(guān)系矩陣如圖2所示。
圖2 QFD非功能需求關(guān)系矩陣
用戶與約束需求重要度評估:用戶需求與約束需求重要度分別用UHi(i=1,2,…,m)和CHi(i=1,2,…,n)表示,取值為5個等級:1表示不影響基本需求;2表示不影響主要需求;3表示比較重要;4表示重要的影響;5表示特別重要的影響。關(guān)系矩陣中關(guān)系度URij與CRij評估采用1、3、5、7、9等關(guān)系度等級:1表示該交點多對應(yīng)的非功能需求和用戶需求之間存在微弱的關(guān)系;3表示存在較弱的關(guān)系;5表示存在一般的關(guān)系;7表示存在密切的關(guān)系;9表示非常密切的關(guān)系;必要時采用中間等級,2表示介于1與3之間;4表示介于5與7之間;6表示介于7與0之間;0:表示空白,不存在關(guān)系。加權(quán)后的重要度定義為公式(1):
Hj=∑mi=1UHiURij+∑ni=1CHiCRij(1)
如果第j項非功能性需求與多項用戶需求和約束密切相關(guān),并且這些用戶需求和約束需求比較重要,那么Hj取值就越大,就表示這項非功能性需求越重要。在映射(2)中應(yīng)用AHP方法。AHP方法即層次分析法,它將給定描述的目標(biāo)進行成對比較,分析其相對重要程度,據(jù)此定量地得出各目標(biāo)的權(quán)重,從而確定優(yōu)先級。首先,以B=[bij]m×m表示業(yè)務(wù)需求重要度組成的判斷矩陣:
在問題空間到軟件空間的需求映射中,業(yè)務(wù)需求、用戶及約束需求重要度的引入是十分重要的環(huán)節(jié)。首先,重要度的引入有效避免了需求收集與定義的隨意性,加強了需求收集的管理;其次,可量化的需求為系統(tǒng)分析人員進行軟件功能與非功能需求分析提供了重要的數(shù)據(jù)支持,保證了需求映射轉(zhuǎn)換的可靠性。重要度計算的結(jié)果與定性分析的結(jié)果基本一致,但在各參量計算過程中,從大量的業(yè)務(wù)需求、用戶及約束需求中確定參量的比較規(guī)模十分復(fù)雜,這要求系統(tǒng)分析人員考慮業(yè)務(wù)需求集的劃分、對用戶需求的合理性判定及用戶對約束需求的重視程度等因素,這增加了需求定義的工作量。
2 維度-需求體系
2.1 維度-需求體系表示
維度-需求體系(Dimension Requirements System),以下簡稱為DRS,是依據(jù)維度的思想構(gòu)建一種多視角獲取需求的可視化工具。已有的多維度需求獲取工具研究有三維需求模型[9]和對等多維度需求映射模型[10],前者主要對技術(shù)、過程及人3個維度進行定義與應(yīng)用,發(fā)現(xiàn)和解決沖突,后者主要探討需求及功能維度的關(guān)系,并對兩維度進行夾角定義。在基于業(yè)務(wù)驅(qū)動的需求獲取方法中,DRS為每個維度預(yù)先定義需求工程中的相關(guān)概念,根據(jù)需要建立二維度-需求體系(2-DRS)(見圖3)和三維度-需求體系(3-DRS)(見圖4),DRS主要從業(yè)務(wù)維度入手,展開對業(yè)務(wù)需求、用戶需求和軟件需求的收集和挖掘。
圖3 二維度-需求體系
2.2 維度-需求體系應(yīng)用
維度-需求體系選取業(yè)務(wù)需求a、用戶角色b、用戶需求c、功能需求d及非功能性需求e為關(guān)注維度,首先以業(yè)務(wù)為第一關(guān)注維度,構(gòu)建維度-需求體系進行需求獲取,然后在獲取結(jié)果的基礎(chǔ)上進行不含業(yè)務(wù)維度的維度-需求體系獲取。這樣做的主要目的是按照業(yè)務(wù)驅(qū)動的總體思想進行需求獲取,保證需求獲取的層次性和有效性。
維度-需求體系的應(yīng)用特點:
(1)維度-需求體系提供了一種可視化的需求交流環(huán)境,它可以將用戶與系統(tǒng)分析員各自熟知的領(lǐng)域集合在一起進行展示,方便雙方進行交流。
(2)維度-需求體系具有潛在的分析特性,它的維度點在計算機中存儲為二元組
3 需求獲取方法
基于業(yè)務(wù)驅(qū)動需求獲取方法,要求系統(tǒng)分析人員與用戶通過業(yè)務(wù)誘導(dǎo)方式逐步推進需求獲取過程,通過業(yè)務(wù)分解結(jié)構(gòu)BBS(Business Breakdown Structure)建立業(yè)務(wù)域,在業(yè)務(wù)映射模型基礎(chǔ)上構(gòu)造維度-需求體系,在收集過程中應(yīng)用統(tǒng)一建模語言UML(Unified Modeling Language)建立相關(guān)模型。圖5給出了基于業(yè)務(wù)驅(qū)動的需求獲取過程。
(1)明確需求涉眾。明確需求涉眾是軟件項目開始的首要環(huán)節(jié),也是需求獲取工作能否順利完成的關(guān)鍵要素。理想情況是在軟件需求發(fā)展中有許多參與者參加,但現(xiàn)實并非如此,重要的是,我們認識到這些不同利益者和特定角色的存在,以確保正確的人在正確的時間參與,并且使正確的期望得到實現(xiàn)。
(2)建立業(yè)務(wù)域。建立業(yè)務(wù)域是驅(qū)動整個過程的基礎(chǔ),要明確與業(yè)務(wù)相關(guān)的組織結(jié)構(gòu)、業(yè)務(wù)術(shù)語、業(yè)務(wù)內(nèi)容、業(yè)務(wù)實體、業(yè)務(wù)規(guī)則、業(yè)務(wù)流程和業(yè)務(wù)前景。下面以軟件工程人才實踐教學(xué)平臺項目為研究實例,按照基于業(yè)務(wù)驅(qū)動需求獲取方法流程,其中BBS應(yīng)用實例如圖6所示。
在完成BBS結(jié)構(gòu)收集的同時進行相應(yīng)業(yè)務(wù)記錄,綜合實踐評價業(yè)務(wù)明細記錄舉例如表3所示。
(4)構(gòu)造與應(yīng)用維度-需求體系。根據(jù)業(yè)務(wù)映射模型構(gòu)造維度-需求體系。維度-需求體系作為一種展現(xiàn)與交流的工具,提供了一種多角度需求獲取的方式,幫助用戶和系統(tǒng)分析員在某一維度上進一步收集需求,這個過程可以查缺補漏和消除部分沖突需求。圖9是綜合實踐授課模塊中幾項業(yè)務(wù)與軟件功能的二維度需求體系應(yīng)用示例,它清晰標(biāo)注了相應(yīng)的業(yè)務(wù)與軟件功能,方便用戶理解及與系統(tǒng)分析人員溝通。
(5)需求獲取確認。需求獲取確認是一個分析與評價的過程,對基于業(yè)務(wù)驅(qū)動的過程進行審查,最后與用戶達成共識。要對建模過程中的業(yè)務(wù)用例、業(yè)務(wù)活動圖及業(yè)務(wù)實體類圖等進行建模檢查,對系統(tǒng)建模與文檔進行檢查。