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