王躍鵬,張春海
?。ㄖ袊Q蟠髮W 信息科學與工程學院,山東 青島 266100)
摘要:軟件需求變更是導致軟件項目失敗的主要因素。之前學者們在分析軟件體系結(jié)構(gòu)的變更風險時,體系結(jié)構(gòu)間依賴值的獲取主要是依靠經(jīng)驗預估,而不是基于模塊的進一步劃分和相關(guān)耦合參數(shù)的關(guān)聯(lián)推導。針對這一問題,提出利用DSM和QFD模型對組件進一步細劃分成粒度更小的關(guān)鍵設(shè)計參數(shù)(類或?qū)ο螅?,分析參?shù)間的依賴程度,推導出模塊間的關(guān)聯(lián)度,接著對模塊開發(fā)順序進行重組,從而在一定程度上控制需求變更風險。最后,通過將某公司集裝箱管理系統(tǒng)進行模塊切分和重組對所提方法的可行性和正確性進行了驗證。
關(guān)鍵詞: 軟件需求變更;DSM;QFD;變更傳播;信息反饋
中圖分類號:TP311文獻標識碼:ADOI: 10.19358/j.issn.1674-7720.2017.09.022
引用格式:王躍鵬,張春海.基于QFD和DSM的軟件需求變更影響分析方法與應(yīng)用[J].微型機與應(yīng)用,2017,36(9):74-77.
0引言
近幾十年來,軟件產(chǎn)業(yè)呈現(xiàn)爆發(fā)式增長,需求巨大,并且軟件規(guī)模迅速膨脹,結(jié)構(gòu)復雜,伴隨而來的失敗風險成指數(shù)級增加。然而軟件需求變更在項目系統(tǒng)開發(fā)上面臨著效率、技術(shù)和管理等諸多問題,越來越被專家和學者們看作是項目開發(fā)過程中的重要風險來源之一[1]。目前以用戶體驗至上的開發(fā)流程愈發(fā)導致需求不斷地變更,因而給軟件項目管理帶來了很多不可控的因素[2]。系統(tǒng)的各種需求與開發(fā)過程中的各種組件是相互映射、緊密聯(lián)系的,這就是項目開發(fā)過程中存在巨大風險的主要原因。然而,軟件體系結(jié)構(gòu)是反應(yīng)系統(tǒng)聯(lián)系和耦合的重要載體。每當某些需求變化時,與之關(guān)聯(lián)的組件就會受到影響,與被影響組件間接相關(guān)聯(lián)的組件又會受到傳播效應(yīng),這就形成了一種變更傳播風險,從而在整個軟件體系結(jié)構(gòu)中都有可能產(chǎn)生“漣漪”效應(yīng)。Cooper等專家基于依賴控制和數(shù)據(jù)依賴的模型圖對軟件需求變更影響進行了研究和分析[3]。楊鶴標和陳震則利用面向?qū)ο蟪绦蛟O(shè)計的理論模型,利用系統(tǒng)中函數(shù)間的關(guān)系概念和函數(shù)關(guān)系圖,提出了面向函數(shù)粒度的程序代碼行變更影響分析模型,并且利用靜態(tài)分析和動態(tài)分析相結(jié)合的研究思路對需求變更的傳播范圍和影響程度進行了測試[4]。除此之外,DSM矩陣能夠從本質(zhì)上反映系統(tǒng)內(nèi)部模塊間的關(guān)聯(lián)關(guān)系[56];而QFD矩陣多用來表現(xiàn)外部實體與系統(tǒng)內(nèi)部組件之間的耦合度。以往學者們在分析軟件體系結(jié)構(gòu)的變更風險時,體系結(jié)構(gòu)間的依賴值還主要是靠經(jīng)驗獲取或預測,而不是基于模塊的進一步劃分和相關(guān)參數(shù)耦合關(guān)聯(lián)推導,因此,本文基于專家學者已發(fā)表的需求變更評估模型,嘗試通過對模塊進一步劃分成一個個具體的關(guān)鍵參數(shù)(類或?qū)ο螅?,以及通過參數(shù)的依賴程度推導出模塊間的關(guān)聯(lián)度,最后再通過模塊開發(fā)順序的重組來控制需求變更風險[7]。
1信息傳遞與QFD質(zhì)量功能矩陣
QFD矩陣表示質(zhì)量功能展開,又叫質(zhì)量屋,主要表示需求空間與體系結(jié)構(gòu)間的映射關(guān)聯(lián)關(guān)系。QFD作為一種設(shè)計階段的映射方法,著重于系統(tǒng)需求與軟件體系結(jié)構(gòu)間的匹配和映射。
如圖1所示,矩陣的行表示某需求由哪些組件實現(xiàn),矩陣的列表示該組件(模塊)的變動所影響到的所有需求。因此,構(gòu)建出需求與軟件體系結(jié)構(gòu)之間的 QFD 關(guān)系映射,可以分析出當一個或多個需求發(fā)生變更時會直接影響到的組件。
2基于QFD和DSM的影響分析方法
研究過程和實施步驟如下:
(1)通過對用戶需求分類和評估,最終由用戶確定每個需求的重要度,即權(quán)重值。其中用戶需求重要度的確定采用了粗糙集理論[8]。
(2)構(gòu)造需求和模塊對應(yīng)的QFD映射矩陣,根據(jù)模塊所影響的功能點歸納出每個模塊(組件)的重要度:
Q(χ)=∑ni=1(m×ki)(1)
其中,Q(χ)代表組件χ的重要度; ki表示需求的重要度權(quán)值;m是依賴值。
(3)模塊(組件)都是由一個或多個設(shè)計參數(shù)(類或?qū)ο?組成的,構(gòu)造出組件參數(shù)QFD矩陣,根據(jù)模塊對設(shè)計參數(shù)的依賴程度和模塊的重要度權(quán)值推出模塊間的自相關(guān)性,即軟件體系結(jié)構(gòu)DSM矩陣。
DSM(i,j)=∑nk=1(ωk×Ij→i×QFD(j,k))/∑nk=1(ωk×QFD(i,k))(2)
其中,K是關(guān)鍵設(shè)計參數(shù)的個數(shù), Ij→i表示設(shè)計參數(shù)P對組件i和j有無制約關(guān)系,若無制約關(guān)系,則Ij→i=0,反之,Ij→i=1。
QFD(i,k)是QFD中第i行、k列的值,依賴度QFD(i,k)取值越大, 表示組件i與設(shè)計參數(shù)P之間的依賴關(guān)系越強,即設(shè)計參數(shù)P的變化會引起組件i較大程度的變化,反之,則表示對組件i的影響較弱[9]。
(4)上面得到的DSM矩陣只反映出了模塊間的直接影響,然而模塊間可能會存在著間接影響,例如A→B , B→C , 那么A對C也是有著傳播影響的,即模塊間的變更傳播所造成的影響。由此構(gòu)造出完整的DSM相關(guān)性矩陣,反映出軟件體系結(jié)構(gòu)的累積變更影響。
DSM(i,j)=∑∞m=1Ri,j(m)(3)
其中Ri,j(m)表示m階傳播影響[10]。
(5)通過模塊重組減少反饋信息,降低模塊變更的頻率和影響范圍,從而控制變更風險。
3應(yīng)用舉例
本文結(jié)合青島某公司集裝箱物流管理系統(tǒng)來驗證該方法控制項目風險的可行性。該信息化系統(tǒng)主要包含以下幾個需求:(1)財務(wù)管理,包括付款管理、財務(wù)審核、賬務(wù)管理等;(2)客戶信息管理模塊;(3)訂單模塊;(4)停港靠港信息錄入和導出;(5)統(tǒng)計查詢,包括各類詳細數(shù)據(jù)的查詢、計算、導出和預估;(6)系統(tǒng)設(shè)置,包括用戶角色管理、 權(quán)限管理、密碼修改等;(7)信息導入導出模塊。
(1)通過與客戶不斷地深入溝通和交流,對需求進行分類和歸納,最終由客戶確定每種需求的優(yōu)先級或重要程度,如圖2所示。
(2)構(gòu)造出需求組件的QFD矩陣,如圖3所示,然后再根據(jù)組件所影響的需求個數(shù)和每種需求的重要度推算出組件的重要度或權(quán)重值,如圖4所示。
(3)將組件進一步拆分成粒度更小的類或?qū)ο蟛?gòu)造出組件參數(shù)QFD矩陣,如圖5所示。由于組件都是由一個或多個設(shè)計參數(shù)(類或?qū)ο?組成的,根據(jù)模塊對設(shè)計參數(shù)的依賴程度和模塊的重要度權(quán)值推出模塊間的自相關(guān)性,即軟件體系結(jié)構(gòu)DSM矩陣,如圖6所示。
本文暫時只考慮制約依賴關(guān)系,暫時不考慮其中的非制約依賴關(guān)系。
(4)上面得到的DSM矩陣只反映出了模塊間的直接影響,然而模塊間可能會存在著間接影響,例如A→B, B→C , 那么A對C也是有著傳播影響的。因此,需在上步得到的DSM基礎(chǔ)上計算出累積變更影響矩陣DSM,如圖7所示。
圖7表示組件間的累計變更傳播矩陣,由上文中的公式(3)推出,表中影響值R(i,j)≤0.02的并沒有計算在內(nèi),這種影響值微乎其微,可忽略不計。
(5)需求變更始終都會存在,真正的需求變更風險體現(xiàn)在:當某需求變動之后會影響相應(yīng)的模塊組件,形成一種強烈的反饋和返工,反饋會帶來很大的成本投入和失敗風險,因此合理調(diào)整模塊的開發(fā)順序,通過模塊重組減少反饋(設(shè)計迭代),降低模塊變更時的反饋和傳播風險,從而控制變更風險。圖8所示為模塊重組后的DSM矩陣。
(6)最后利用仿真方法來評估模型改善后的效率和影響[1113],在做仿真時,各功能的學習率取值0.7~0.8,分別將優(yōu)化前后的重組順序執(zhí)行300次仿真計算,結(jié)果如圖9~圖10所示。結(jié)果顯示,與優(yōu)化前相比,優(yōu)化后項目開發(fā)總成本的均值和離散范圍進一步縮小,這表明本文提出的優(yōu)化模型有助于縮短項目周期、控制成本,并降低項目失敗風險?!?/p>
4結(jié)束語
本文在現(xiàn)有風險分析模型的基礎(chǔ)上,將需求和系統(tǒng)組件聯(lián)系起來的同時把組件劃分成粒度更小的更容易把控的類或?qū)ο?,從而根?jù)依賴強度的大小推算出組件間的關(guān)聯(lián)度,然后再根據(jù)依賴順序?qū)⒛K的開發(fā)順序重組從而降低系統(tǒng)迭代和反饋,最后,對優(yōu)化后的模型方法進行仿真評估,結(jié)果表明新方法可進一步準確地預估組件間的聯(lián)系,在一定程度上降低了需求變更所帶來的風險。
參考文獻
[1] NUSEIBEH B,EASTERBROOK S.Requirements engineering:a roadmap[C].Proceedings of the Conference on the Future of Software Engineering,ACM,2000:35-46.
?。?] BOEHM B W.Making a difference in the software century[J].Computer,2008,41(3):32-38.
?。?] COOPER D,CHAN M W,HARDING M,et al.Using dependence graphs to assist manual and automated object orientedsoftware inspections[C].Proceedings of Software Engineering Conference,2006:4258.
[4] 楊鶴標,陳震.面向?qū)ο蟠a變更影響分析模型的研究[J]. 計算機工程與設(shè)計,2010,13(19):4232-4234.
?。?] STEWARD D V.The design structure system: a method for managing the design of complex systems[J]. IEEE Transactions on Engineering Management,1981,28( 3) :71-74.
?。?] YANG Q,YAO T,LU T,et al.An overlappingbased design structure matrix for measuring interaction strength and clustering analysis in product development project[J]. IEEE Transactions on Engineering Management,2014,61(1):159170.
?。?] 付赟.基于DSM的軟件需求變更傳播風險分析[J].計算機工程與應(yīng)用,2012, 48(29):22-28.
?。?] 宋欣,郭偉,劉建琴.QFD中用戶需求到技術(shù)特性的映射方法[J].天津大學學報,2010,43(2):174-180.
?。?] 楊青,劉志林,唐爾玲. 基于DSM和QFD分析功能變更對研發(fā)項目的影響[J]. 技術(shù)與創(chuàng)新管理,2015,4(7):57-65.
?。?0] 付赟. 軟件需求變更影響建模與風險管理研究[D].天津:天津大學,2011.
?。?1] 楊青,呂杰峰.基于DSM返工風險評價矩陣的項目優(yōu)化與仿真[J].系統(tǒng)工程理論與實踐,2010,30(9):1665-1671.
[12] 楊青,黃建美.基于活動重疊的DSM項目時間計算及排序優(yōu)化[J].系統(tǒng)工程理論與實踐,2011,31(3):496-503.
?。?3] Yang Qing,Zhang Xiaofeng,Yao Tao.An overlappingbased process model for managing schedule and cost risk in product development[J].Concurrent Engineering:Research and Applications,2012, 20(1):3-17.