王躍鵬,張春海
(中國海洋大學 信息科學與工程學院,山東 青島 266100)
基于QFD和DSM的軟件需求變更影響分析方法與應用
王躍鵬,張春海
(中國海洋大學 信息科學與工程學院,山東 青島 266100)
軟件需求變更是導致軟件項目失敗的主要因素。之前學者們在分析軟件體系結(jié)構(gòu)的變更風險時,體系結(jié)構(gòu)間依賴值的獲取主要是依靠經(jīng)驗預估,而不是基于模塊的進一步劃分和相關(guān)耦合參數(shù)的關(guān)聯(lián)推導。針對這一問題,提出利用DSM和QFD模型對組件進一步細劃分成粒度更小的關(guān)鍵設計參數(shù)(類或?qū)ο?,分析參數(shù)間的依賴程度,推導出模塊間的關(guān)聯(lián)度,接著對模塊開發(fā)順序進行重組,從而在一定程度上控制需求變更風險。最后,通過將某公司集裝箱管理系統(tǒng)進行模塊切分和重組對所提方法的可行性和正確性進行了驗證。
軟件需求變更;DSM;QFD;變更傳播;信息反饋
近幾十年來,軟件產(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)是反應系統(tǒng)聯(lián)系和耦合的重要載體。每當某些需求變化時,與之關(guān)聯(lián)的組件就會受到影響,與被影響組件間接相關(guān)聯(lián)的組件又會受到傳播效應,這就形成了一種變更傳播風險,從而在整個軟件體系結(jié)構(gòu)中都有可能產(chǎn)生“漣漪”效應。Cooper等專家基于依賴控制和數(shù)據(jù)依賴的模型圖對軟件需求變更影響進行了研究和分析[3]。楊鶴標和陳震則利用面向?qū)ο蟪绦蛟O計的理論模型,利用系統(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)系[5-6];而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]。
QFD矩陣表示質(zhì)量功能展開,又叫質(zhì)量屋,主要表示需求空間與體系結(jié)構(gòu)間的映射關(guān)聯(lián)關(guān)系。QFD作為一種設計階段的映射方法,著重于系統(tǒng)需求與軟件體系結(jié)構(gòu)間的匹配和映射。
如圖1所示,矩陣的行表示某需求由哪些組件實現(xiàn),矩陣的列表示該組件(模塊)的變動所影響到的所有需求。因此,構(gòu)建出需求與軟件體系結(jié)構(gòu)之間的 QFD 關(guān)系映射,可以分析出當一個或多個需求發(fā)生變更時會直接影響到的組件。
圖1 QFD質(zhì)量屋
研究過程和實施步驟如下:
(1)通過對用戶需求分類和評估,最終由用戶確定每個需求的重要度,即權(quán)重值。其中用戶需求重要度的確定采用了粗糙集理論[8]。
(2)構(gòu)造需求和模塊對應的QFD映射矩陣,根據(jù)模塊所影響的功能點歸納出每個模塊(組件)的重要度:
(1)
其中,Q(χ)代表組件χ的重要度;ki表示需求的重要度權(quán)值;m是依賴值。
(3)模塊(組件)都是由一個或多個設計參數(shù)(類或?qū)ο?組成的,構(gòu)造出組件-參數(shù)QFD矩陣,根據(jù)模塊對設計參數(shù)的依賴程度和模塊的重要度權(quán)值推出模塊間的自相關(guān)性,即軟件體系結(jié)構(gòu)DSM矩陣。
(2)
其中,K是關(guān)鍵設計參數(shù)的個數(shù),Ij→i表示設計參數(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ù)P之間的依賴關(guān)系越強,即設計參數(shù)P的變化會引起組件i較大程度的變化,反之,則表示對組件i的影響較弱[9]。
(4)上面得到的DSM矩陣只反映出了模塊間的直接影響,然而模塊間可能會存在著間接影響,例如A→B , B→C , 那么A對C也是有著傳播影響的,即模塊間的變更傳播所造成的影響。由此構(gòu)造出完整的DSM相關(guān)性矩陣,反映出軟件體系結(jié)構(gòu)的累積變更影響。
(3)
其中Ri,j(m)表示m階傳播影響[10]。
(5)通過模塊重組減少反饋信息,降低模塊變更的頻率和影響范圍,從而控制變更風險。
本文結(jié)合青島某公司集裝箱物流管理系統(tǒng)來驗證該方法控制項目風險的可行性。該信息化系統(tǒng)主要包含以下幾個需求:(1)財務管理,包括付款管理、財務審核、賬務管理等;(2)客戶信息管理模塊;(3)訂單模塊;(4)停港靠港信息錄入和導出;(5)統(tǒng)計查詢,包括各類詳細數(shù)據(jù)的查詢、計算、導出和預估;(6)系統(tǒng)設置,包括用戶角色管理、 權(quán)限管理、密碼修改等;(7)信息導入導出模塊。
(1)通過與客戶不斷地深入溝通和交流,對需求進行分類和歸納,最終由客戶確定每種需求的優(yōu)先級或重要程度,如圖2所示。
圖2 項目需求及其重要度
(2)構(gòu)造出需求-組件的QFD矩陣,如圖3所示,然后再根據(jù)組件所影響的需求個數(shù)和每種需求的重要度推算出組件的重要度或權(quán)重值,如圖4所示。
圖3 需求-組件QFD矩陣
圖4 各組件重要度權(quán)值
(3)將組件進一步拆分成粒度更小的類或?qū)ο蟛?gòu)造出組件-參數(shù)QFD矩陣,如圖5所示。由于組件都是由一個或多個設計參數(shù)(類或?qū)ο?組成的,根據(jù)模塊對設計參數(shù)的依賴程度和模塊的重要度權(quán)值推出模塊間的自相關(guān)性,即軟件體系結(jié)構(gòu)DSM矩陣,如圖6所示。
圖5 組件-對象QFD矩陣
圖6 組件DSM矩陣
本文暫時只考慮制約依賴關(guān)系,暫時不考慮其中的非制約依賴關(guān)系。
(4)上面得到的DSM矩陣只反映出了模塊間的直接影響,然而模塊間可能會存在著間接影響,例如A→B, B→C , 那么A對C也是有著傳播影響的。因此,需在上步得到的DSM基礎上計算出累積變更影響矩陣DSM,如圖7所示。
圖7 累計變更影響矩陣
圖7表示組件間的累計變更傳播矩陣,由上文中的公式(3)推出,表中影響值R(i,j)≤0.02的并沒有計算在內(nèi),這種影響值微乎其微,可忽略不計。
(5)需求變更始終都會存在,真正的需求變更風險體現(xiàn)在:當某需求變動之后會影響相應的模塊組件,形成一種強烈的反饋和返工,反饋會帶來很大的成本投入和失敗風險,因此合理調(diào)整模塊的開發(fā)順序,通過模塊重組減少反饋(設計迭代),降低模塊變更時的反饋和傳播風險,從而控制變更風險。圖8所示為模塊重組后的DSM矩陣。
圖8 模塊重組后的DSM矩陣
(6)最后利用仿真方法來評估模型改善后的效率和影響[11-13],在做仿真時,各功能的學習率取值0.7~0.8,分別將優(yōu)化前后的重組順序執(zhí)行300次仿真計算,結(jié)果如圖9~圖10所示。結(jié)果顯示,與優(yōu)化前相比,優(yōu)化后項目開發(fā)總成本的均值和離散范圍進一步縮小,這表明本文提出的優(yōu)化模型有助于縮短項目周期、控制成本,并降低項目失敗風險。
圖9 優(yōu)化前仿真結(jié)果
圖10 優(yōu)化后仿真結(jié)果
本文在現(xiàn)有風險分析模型的基礎上,將需求和系統(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.
[2] BOEHM B W.Making a difference in the software century[J].Computer,2008,41(3):32-38.
[3] 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:42-58.
[4] 楊鶴標,陳震.面向?qū)ο蟠a變更影響分析模型的研究[J]. 計算機工程與設計,2010,13(19):4232-4234.
[5] 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 overlapping-based design structure matrix for measuring interaction strength and clustering analysis in product development project[J]. IEEE Transactions on Engineering Management,2014,61(1):159-170.
[7] 付赟.基于DSM的軟件需求變更傳播風險分析[J].計算機工程與應用,2012, 48(29):22-28.
[8] 宋欣,郭偉,劉建琴.QFD中用戶需求到技術(shù)特性的映射方法[J].天津大學學報,2010,43(2):174-180.
[9] 楊青,劉志林,唐爾玲. 基于DSM和QFD分析功能變更對研發(fā)項目的影響[J]. 技術(shù)與創(chuàng)新管理,2015,4(7):57-65.
[10] 付赟. 軟件需求變更影響建模與風險管理研究[D].天津:天津大學,2011.
[11] 楊青,呂杰峰.基于DSM返工風險評價矩陣的項目優(yōu)化與仿真[J].系統(tǒng)工程理論與實踐,2010,30(9):1665-1671.
[12] 楊青,黃建美.基于活動重疊的DSM項目時間計算及排序優(yōu)化[J].系統(tǒng)工程理論與實踐,2011,31(3):496-503.
[13] Yang Qing,Zhang Xiaofeng,Yao Tao.An overlapping-based process model for managing schedule and cost risk in product development[J].Concurrent Engineering:Research and Applications,2012, 20(1):3-17.
The method and application of software requirements change impact based on QFD and DSM
Wang Yuepeng,Zhang Chunhai
(College of Information Science and Engineering,Ocean University of China,Qingdao 266100,China)
:The main factor lead to software project failure is software requirements change. Previous scholars on the analysis of change risk of the software architecture, the denpendence of the system structure is mainly rely on experience which depend on the value of forecast, rather than based on the further partitioning of the module and the correlation derivation of the relevant coupling parameters. In order to solve this problem, this paper puts forward a method that using DSM and QFD model to further divide the components into smaller granularity of key design parameters (class or object). The degree of dependency between the parameters is used to derive the degree of correlation between the modules, then the module development sequence is reorganized to a certain extent to control the risk of change in demand. Finally, the correctness and feasibility of the proposed method is verified through the segmentation and reorganization of a container management system.
software requirements change;DSM;QFD;change propagation;information feedback
TP311
A
10.19358/j.issn.1674- 7720.2017.09.022
王躍鵬,張春海.基于QFD和DSM的軟件需求變更影響分析方法與應用[J].微型機與應用,2017,36(9):74-77.
2016-12-09)
王躍鵬(1991-),男,碩士研究生,主要研究方向:軟件工程,數(shù)據(jù)庫理論及應用等。
張春海(1963-),男,教授,碩士生導師,主要研究方向: 軟件工程,數(shù)據(jù)庫理論及應用。