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