蔡鑫奇 王 瑞* 石 亮 牟 迪 馬春宇
1. 中國航天系統(tǒng)科學(xué)與工程研究院,北京100048 2. 首都師范大學(xué) 信息工程學(xué)院, 北京100048
變更影響分析(Change Impact Analysis,CIA)[1]指采用特定手段確定或預(yù)測引入某種軟件變更對目標(biāo)軟件系統(tǒng)產(chǎn)生的潛在影響,它是軟件演化與維護的重要內(nèi)容,尤其是對增量式變更的軟件維護。目前對該領(lǐng)域的研究主要集中于軟件需求變更和軟件程序?qū)嶓w變更2方面,經(jīng)過多年的發(fā)展,已形成了不少研究成果。針對變更影響,一些專家學(xué)者相繼提出了不同的分析方法[2-4]并應(yīng)用于軟件調(diào)試與測試分析中。針對早期的需求變更,O′Neal[5]提出一種基于跟蹤性的變更影響分析方法,利用需求跟蹤關(guān)系追溯影響集,確定受影響的元素;Hassine等人[6]利用用例圖(UCM)來構(gòu)建需求層變更集各元素與其他組件的依賴關(guān)系,從而進行影響分析;Shiri等人[7]結(jié)合用例圖(UCM)和形式概念分析(FCA)對需求層進行建模,利用UCM構(gòu)建需求依賴軌跡,用FCA收集這些軌跡信息,從而構(gòu)造依賴關(guān)系,進行影響分析。但這些方法分析的對象限于需求分析階段,無法適用于代碼層的變更分析。而對程序設(shè)計和編碼階段的變更,則主要分為基于跟蹤性分析和基于依賴性分析2類方法[4],這些方法關(guān)注程序代碼中存在的繼承、方法調(diào)用和程序?qū)嶓w間的依賴關(guān)系,并通過計算程序?qū)嶓w關(guān)系建立影響傳播路徑,從而確定影響集。Lehnert[4,8]和孫小兵等人[9]對代碼層上的變更影響分析方法做了總結(jié),這些方法選用了不同的中間表示來計算影響集,但分析的對象限于編碼階段,且未能較好區(qū)分不同實體的受影響程度。Arvanitou[10]在他的博士論文中討論了軟件開發(fā)中不同質(zhì)量度量方法在變更影響分析中的應(yīng)用,但未具體提出一種變更影響的度量。
綜上所述,現(xiàn)有變更影響分析方法多種多樣,從分析階段、類型和層次等不同角度研究了不同變更對軟件構(gòu)件的影響。然而大多數(shù)方法存在著一些問題: 1)分析對象受限,需求分析、設(shè)計和編碼階段分離,不能同時涵蓋所有的軟件構(gòu)件實體;2)研究實體屬性參與變更傳播過程的建模精度不高,分析不全面;3)變更傳播模型對傳播路徑和元素影響程度缺乏定量的描述與度量。
針對以上問題,提出一種基于條件隨機場的分析方法,將概率模型應(yīng)用于變更傳播過程的分析,通過概率描述的方式衡量實體受變更影響的程度。首先引入實體的文本特性,建立詞項圖模型,并對實體依賴關(guān)系進行分類和形式化建模,得到狀態(tài)序列分析所需的判別條件及特征向量,實現(xiàn)詞項圖的詞到向量的轉(zhuǎn)換,生成條件隨機場的詞向量和特征函數(shù),進而計算傳播序列的概率評分,定量描述影響程度。實驗結(jié)果表明:提出的基于條件隨機場的分析方法及設(shè)計的算法能有效地解決上述問題,提出的概率評分指標(biāo)Pscore較好地刻畫了軟件實體及依賴鏈的受影響程度,為軟件更新維護與測試人員提供重要的決策參考信息。
軟件實體是對所有軟件構(gòu)件在結(jié)構(gòu)和內(nèi)容上的一種抽象,如軟件需求文檔、程序代碼各粒度層次的結(jié)構(gòu)(如包、類、方法和變量等)均可看作軟件實體。實際開發(fā)中各種實體在發(fā)生依賴關(guān)系時,均通過以詞作為名稱參與功能模塊的實現(xiàn),因此軟件實體具有顯著的文本特征。
眾多國內(nèi)外學(xué)者對軟件實體依賴關(guān)系提出了不同的分類標(biāo)準(zhǔn),對此Lehnert[8]在他的文章中作了總結(jié)。這些方法都很好地描述了不同依賴關(guān)系的特點,但是大多數(shù)局限于軟件開發(fā)過程的某一階段,未能覆蓋需求分析、設(shè)計和編碼階段全過程。因此,本文在前人對依賴關(guān)系分類的研究基礎(chǔ)上,提出一種新的分類方案,如表1將依賴關(guān)系分為5種并進行形式化建模,采用判別函數(shù)對依賴關(guān)系進行特征向量化。
在變更傳播過程中,只有轉(zhuǎn)移特征向量取值為1的依賴能夠?qū)ψ兏鼈鞑プ龀鲇行ж暙I。由上述5種依賴關(guān)系的定義和特征化表達可知,5種依賴中的演化依賴是不參與變更傳播過程的,因此在研究變更傳播過程時只考慮其余4種依賴對應(yīng)的轉(zhuǎn)移特征的影響,具體將在3.2節(jié)介紹,此外,這4種依賴關(guān)系從作用的軟件實體層次或粒度來看,一致性依賴、使用依賴、細(xì)化依賴及結(jié)構(gòu)依賴層次與粒度依次降低,對變更傳播的影響程度也依次降低。
圖(Graph)是計算機科學(xué)中的一個非常重要的概念,已廣泛應(yīng)用于信息領(lǐng)域,它用圖形化的語言表示一組物體之間的關(guān)系。詞項圖(Graph of Terms)是一種以詞為基本元素的圖,它描述了文本信息實體間的關(guān)系及實體屬性,一般以1個三元組G=(V,E,C)(節(jié)點集V,邊集E,關(guān)聯(lián)函數(shù)C)表示詞項圖,包含節(jié)點(Node)和邊(Edge)。詞項圖常被應(yīng)用于信息檢索(IR)領(lǐng)域,如Napoletano等人[11]利用詞項圖進行文本分類,王明文等人[12]利用詞項圖進行文本信息檢索的研究。借鑒這種文本信息圖結(jié)構(gòu),結(jié)合軟件實體的結(jié)構(gòu)特性,以詞項圖作為軟件實體的載體,構(gòu)建軟件實體及其依賴關(guān)系,具有良好的可視化效果。
表1 5種依賴關(guān)系
本文基于詞項圖設(shè)計一種軟件實體詞項依賴圖(Terms Graph of Entity Dependency,下文簡稱詞項圖TG),以描述軟件構(gòu)件之間的依賴關(guān)系,這種依賴圖是有向無環(huán)圖,所以存在著多種傳播路徑,有關(guān)傳播過程的分析將在3.2節(jié)詳細(xì)介紹。
作為整個軟件變更影響分析過程的重要輸入,軟件實體建模(包括抽取與集成)是不可或缺的一步,本文基于詞項圖的基本概念提出了一種軟件實體集成框架,如圖1所示。假設(shè)從軟件開發(fā)過程中獲取到了需求文檔的某項需求ri與某粒度下的程序?qū)嶓wei(如面向?qū)ο笳Z言下的class),則分別形成實體群R={ri|i=1,…,m}和E={ei|i=1,…,n}。在軟件開發(fā)全周期過程中會產(chǎn)生2部分主要的軟件實體群:1)利用UML等輔助工具分析得到的軟件需求文檔;2)來自各種IDE開發(fā)的程序源碼。按詞項圖的定義,將提取的異構(gòu)軟件實體映射成圖數(shù)據(jù)表示,并嵌入詞項圖模型,存于模型庫中。
建模過程主要包含2個階段:1)對軟件實體及依賴關(guān)系的提取,通常用UML表示;2)數(shù)據(jù)轉(zhuǎn)換,將軟件構(gòu)件以特征詞的形式映射成節(jié)點,并附帶屬性,如節(jié)點中心性,將依賴關(guān)系映射為有向邊,形成詞項依賴圖。
圖1 軟件實體集成框架
本文對建模過程形成的詞項圖模型設(shè)計了如式(1)所示的數(shù)據(jù)結(jié)構(gòu),用于圖模型庫數(shù)據(jù)存儲。
Template=E[+/-]DepE′
(1)
其中:E和E′分別為始實體和終實體;Dep為依賴關(guān)系,“+”表示正向依賴(E→E′),“-”表示反向依賴(E′→E)。本文稱這種數(shù)據(jù)結(jié)構(gòu)為依賴元(Dependency Meta),屬于圖數(shù)據(jù),可用矩陣存儲。
條件隨機場(Conditional Random Fields,CRF)是Lafferty等人[13]于2001年提出的一種判別式概率模型,該模型可將結(jié)構(gòu)化輸出(SO)的分布表示成一個高維輸入向量(HdIV)的函數(shù)[14],其中HdIV通常是包含節(jié)點特征或局部特征的序列,而SO的分布則是具有條件依賴的概率分布,這使得解決具有狀態(tài)轉(zhuǎn)移的序列問題成為可能,且CRF在許多自然語言處理任務(wù)如分詞[15]、命名實體識別等[16]上具有顯著的優(yōu)勢。
這里給出數(shù)學(xué)定義:假設(shè)有隨機變量X與Y,P(Y|X)是給定X的條件下Y的條件概率分布,若隨機變量Y構(gòu)成一個馬爾科夫隨機場,則稱條件概率分布P(Y|X)是條件隨機場。當(dāng)X和Y有相同的結(jié)構(gòu),即:X=(X1,X2,…,XN) ,Y=(Y1,Y2,…,YN),這種情況下稱作線性鏈條件隨機場(linear-CRF)。式(2)給出了linear-CRF的參數(shù)化形式,即在給定線性隨機變量序列X的條件下線性隨機變量序列Y的條件概率分布,其中sk(yi,x,i)與tl(yi-1,yi,x,i)為特征函數(shù),參數(shù)λk和μl為特征函數(shù)相應(yīng)的權(quán)重系數(shù),Z(x)為規(guī)范化因子,具有式(3)的形式。
(2)
(3)
變更傳播過程的分析是變更影響分析的關(guān)鍵內(nèi)容。圖2是由相關(guān)聯(lián)的依賴元序列化構(gòu)成的一條線性鏈,表示軟件實體依賴鏈,長度為L(如L=4,即鏈上有N=5個實體節(jié)點,依次為Ei-2,Ei-1,Ei,Ei+1,Ei+2)。假定實體節(jié)點Ei-2為發(fā)生變更的起始位點(變更影響傳播的起點),記為Start;實體節(jié)點Ei+2為變更影響的終止位點(變更影響傳播的終點),記為Stop。此外,為簡化描述,將未發(fā)生變更且未受變更影響的狀態(tài)設(shè)為S0=0,發(fā)生變更或受到變更影響的狀態(tài)為S1=1。在上述規(guī)定下,只有當(dāng)傳播鏈上所有節(jié)點的狀態(tài)均為1時,變更才能從Start傳播至Stop,此時鏈上所有實體屬于影響集。
圖3 基于線性鏈條件隨機場的變更傳播模型
Sutton等人[14]將條件隨機場理解成結(jié)構(gòu)化數(shù)據(jù)生成模型的一種判別模擬,筆者基于此,以條件隨機場模擬變更傳播影響過程。如圖3,假設(shè)存在一個liner-CRF,用于描述變更傳播過程,其傳播鏈的實體依賴序列為X:x1,x2,…,xN,對應(yīng)的傳播狀態(tài)序列為Y:y1,y2,…,yN,變更傳播及影響的范圍可用影響集EIS表達,而影響程度是變更測試人員更加關(guān)心的內(nèi)容,這里以依賴鏈的liner-CRF條件概率作為衡量影響程度的指標(biāo),具有式(4)所示的參數(shù)化形式,其中k=1,2,…,K1,l=1,2,…,K2,i=1,2,…,N。模型構(gòu)建中涉及2個特征函數(shù)及其權(quán)重的設(shè)置,具體如下:
(4)
1)狀態(tài)特征函數(shù)(State Character Function,SCF)
sk(yi,x,i)是定義在實體集ES(Ei∈ES)上的特征函數(shù),其取值只與當(dāng)前實體節(jié)點的狀態(tài)有關(guān),用以刻畫實體自身的屬性,故稱狀態(tài)特征函數(shù)。這里假設(shè)模型含有K1個SCF及其對應(yīng)的權(quán)重系數(shù)。
詞項圖中與軟件實體直接相鄰的實體節(jié)點個數(shù)會影響變更傳播過程,具體而言:某實體的鄰節(jié)點越多,則其受變更漣漪影響更大。這里用網(wǎng)絡(luò)節(jié)點的中心性來度量實體節(jié)點的這種屬性,定義為節(jié)點入度(in-degree)與出度(out-degree)之和:
CenV(Xi)=indegree(Xi)+outdegree(Xi)。
這里用節(jié)點中心性表征軟件實體的狀態(tài)特征,并作為模型的狀態(tài)特征函數(shù)參與傳播過程,經(jīng)歸一化處理后得到如式(5)的狀態(tài)特征函數(shù)(取值在(0,1)內(nèi))。
(5)
2)轉(zhuǎn)移特征函數(shù)(Transition Character Function,TCF)
tl(yi-1,yi,x,i)是定義在實體節(jié)點間(Ei-1,Ei)的特征函數(shù),其取值與當(dāng)前實體節(jié)點和前一節(jié)點之間的依賴關(guān)系有關(guān),用以描述變更在相鄰實體之間的轉(zhuǎn)移特性,故稱轉(zhuǎn)移特征函數(shù)。這里假設(shè)模型含有K2個TCF及其權(quán)重系數(shù)。
結(jié)合上文對依賴關(guān)系的討論,實際只有4種實體依賴關(guān)系(一致性依賴、使用依賴、結(jié)構(gòu)依賴和細(xì)化依賴)參與了變更的傳播,即傳播模型具有式(6)所示的4個轉(zhuǎn)移特征函數(shù)。
(6)
為簡化模型,并與上文對依賴關(guān)系的特征化表示相一致,在模型計算時規(guī)定轉(zhuǎn)移特征函數(shù)取值0或1。實際每個“實體對”在同一時間下僅存在一種依賴關(guān)系,這使得整個模型序列的每條依賴邊在參與變更傳播過程中僅對該依賴邊的TCF做貢獻,其余TCF均無效(即取值0)。
3)特征權(quán)重設(shè)計
參數(shù)λk和μl(λk,μl∈(0,1])分別表示狀態(tài)特征函數(shù)sk和轉(zhuǎn)移特征函數(shù)tl的權(quán)重,代表了模型對2個特征函數(shù)的信任程度。令ω(t)代表特征函數(shù)權(quán)重,該權(quán)重在[ω0,ω0+Δω](?[0,1])上變化,具有式(7)的形式:
(7)
其中:ω0為初始權(quán)重;Δω為梯度;t為調(diào)控因子;T為最大調(diào)控因子,一般T取模型特征函數(shù)總個數(shù),這里取5。
對于SCF,其在一定程度上描述了實體自身對變更傳播的影響程度,在權(quán)重設(shè)計時我們將λk設(shè)置成λ=1,以完全肯定節(jié)點中心性對傳播過程的貢獻,令ω0+Δω=1,即λ=ω(5)。由上文知模型的4個轉(zhuǎn)移特征函數(shù)對應(yīng)權(quán)重Wcd>Wud>Wrd>Wsd,式(7)中的ω(t)與t正相關(guān),故將μl設(shè)置成:
μ1=ω(4),μ2=ω(3),μ3=ω(2),μ4=ω(1)
3.3.1 實施規(guī)則
綜上,在具體分析變更帶來的影響過程中,應(yīng)遵循以下實施規(guī)則:
1)依賴鏈?zhǔn)艿阶兏绊懙那疤崾擎溕蠈嶓w集必須包含變更實體,否則影響集為空集,這是第一步判斷;
2)當(dāng)依賴鏈上存在演化依賴時,該依賴鏈參與變更傳播的有效長度縮短,從依賴元始實體向前的部分為有效依賴鏈(Valid Dependency Chain,VDC),若不存在演化依賴,則整條依賴鏈作為有效依賴鏈;
3)當(dāng)變更傳播至某依賴元時,定義依賴方向為正,則有以下判斷:若依賴元為結(jié)構(gòu)依賴,則變更可雙向傳播,即始、終實體有一者受變更影響,另一個必受影響(本文暫不考慮變更類型的影響),若依賴元為一致性依賴或細(xì)化依賴,則變更正向傳播,若依賴元為使用依賴,則變更反向傳播;
4)有效依賴鏈上,若依賴元的變更傳播方向與變更實體所在依賴元相同,則該依賴元的始、終實體屬于影響集,否則其終實體不屬于影響集,且其始實體作為此傳播鏈的終止位點。從變更實體開始至終止位點之間的同向傳播依賴元構(gòu)成變更傳播鏈,傳播鏈上的所有實體均是影響集中的元素;
5)實體狀態(tài)特征函數(shù)由實體的節(jié)點中心性度量,只與實體在詞項圖中的分支狀態(tài)有關(guān);
6)依賴元的轉(zhuǎn)移特征函數(shù)由依賴元始、終實體共同決定,只與依賴關(guān)系類型有關(guān),且除演化依賴外其他依賴關(guān)系均影響變更的傳播過程;
7)每條傳播鏈均有一個基于CRF的條件概率評分,用來描述變更傳播影響程度,該評分越大,說明影響程度越大,則該依賴鏈上的實體需要被測試的可能性更大。
3.3.2 基于CRF的變更影響分析算法
通過圖1的集成框架得到了TG-Models庫,庫中的依賴元可通過依賴關(guān)系的傳遞連接成依賴鏈,而所有依賴鏈的集合便構(gòu)成實體詞項圖。在進行影響分析之前,先將詞項圖轉(zhuǎn)換成依賴鏈的集合,也即存在依賴關(guān)系的實體構(gòu)成的線性鏈,如圖3中的實體序列?;谏鲜鲎兏鼈鞑ミ^程的討論和前一小節(jié)的分析規(guī)則,本文設(shè)計了基于CRF的變更影響分析算法,如算法1,其中函數(shù)CRFScore(X, Y)的功能是計算傳播鏈條件概率,用于衡量變更傳播的影響程度。
算法1 基于CRF的軟件變更影響分析算法(CRFCIA)Input ce, TGMStore //變更實體ce和實體詞項圖TGMStoreOutput EIS, Pscore //預(yù)估影響集EIS和變更影響程度Pscore Set Pscore = set of score based on CRF //基于CRF的概率評分Set dces = set of entity in dependency-chain //依賴鏈實體集Set pces = set of entity in propagation-chain //傳播鏈實體集Set X = a dependency sequence of entities //實體依賴序列Set Y = a state sequence of propagation //傳播狀態(tài)序列與X同構(gòu)01. dces = graph2chain(TGMStore); //取依賴鏈實體集02. EIS = initially empty-set; //初始化EIS為空集03. Pscore = initially empty-set; //初始化Pscore04. Set Y = a sequence of 1; //傳播狀態(tài)全為1,即全鏈?zhǔn)苡绊?5. for (each dces) { //對依賴鏈遍歷06. if (dces contains ce) { //依賴鏈實體集包含變更實體07. for (each dep-meta of dces) { //對依賴元遍歷08. if (dep-meta.dep is ed) { //當(dāng)依賴元為演化依賴09. dces=dces(entities before dep-meta.ine);}//取有效依賴鏈10. else dces = dces; } //不存在演化依賴時dces為有效依賴鏈11. if (dep-meta.dire == ce’s) { //傳播方向與變更依賴元相同12. pces.add(dep-meta); //則該依賴元屬于傳播鏈,加入pces13. else end for; } //否則該依賴元為Stop14. EIS = merge(EIS, pces); } //將傳播鏈實體集并入EIS15. X = index(pces); //取傳播鏈對應(yīng)實體的坐標(biāo)16. Pscore[] = CRFScore(X, Y); } //調(diào)用CRFScore()計算評分17. else EIS = empty-set, Pscore = null; //變更無影響18. end } return EIS, Pscore; //返回EIS和Pscore函數(shù)CRFScore(DepSequence X, PropagationState Y): Input X, Y //實體依賴序列X,傳播狀態(tài)序列YOutput Pscore //變更影響程度 Set scf = state character function //狀態(tài)特征函數(shù)Set tcf = transition character function //轉(zhuǎn)移特征函數(shù)Set parameter(ω0, delω, T)01. Pscore = initially empty-set; //初始化Pscore02. for (each x of X) {03. Cen(x) = indegree(x)+outdegree(x); //實體節(jié)點中心度04. scf(x) = normalize(Cen(x)); //歸一化得到狀態(tài)特征函數(shù)05. tcf(x) = t(x); end } //由依賴關(guān)系確定轉(zhuǎn)移特征函數(shù)06. for (t=1:T)07. W[] =ω0 + delω ? (t/T)^2; //得特征函數(shù)權(quán)重08. F = sum(W[0:T-2]?scf(x), x) + sum(W[T-1]?tcf(x), x);09. Z(X) = sum(exp(F), y); //規(guī)范化因子10. Pscore = exp(F) / Z(X); 11. return Pscore; //返回Pscore
如圖4所示是本文設(shè)計的一個原型系統(tǒng),用于檢驗所提出的方法與算法的可行性及在實際分析中的準(zhǔn)確性。該系統(tǒng)的結(jié)構(gòu)與功能組成如下:
圖4 原型系統(tǒng)組成
1)軟件實體集成模塊:該模塊根據(jù)本文第2節(jié)的軟件實體集成框架,對軟件構(gòu)件(需求設(shè)計文檔、源代碼等)進行預(yù)處理,抽取實體及依賴關(guān)系,構(gòu)建實體詞項依賴圖庫;
2)變更影響分析模塊:此模塊是系統(tǒng)的核心,利用前一模塊生成的依賴圖和給定的變更集,經(jīng)過CRFCIA算法計算影響集EIS和變更影響程度的指標(biāo)分?jǐn)?shù)Pscore,得到結(jié)果數(shù)據(jù)報文;
3)輸出可視化模塊:該模塊將分析生成的報文轉(zhuǎn)為用戶容易理解的圖表等數(shù)據(jù)。
為了更好地說明本文方法及原型系統(tǒng)的正確性與可操作性,這里選取某軟件項目作為實例研究的對象展開實驗。該軟件由C++語言實現(xiàn),假設(shè)不考慮成員變量的變更影響,共覆蓋需求分析、設(shè)計與編碼階段的14個軟件構(gòu)件,經(jīng)簡化處理后的UML結(jié)構(gòu)如圖5所示。在Doxygen工具的輔助下,通過原型系統(tǒng)的TGMF模塊得到所有依賴元信息并按圖6所示的list數(shù)據(jù)結(jié)構(gòu)存儲于詞項圖模型庫TGMStore,對應(yīng)的實體詞項依賴圖見圖7。
圖5 需求分析、設(shè)計與編碼階段的軟件構(gòu)件UML結(jié)構(gòu)圖
圖6 依賴元list數(shù)據(jù)
圖7 實體詞項依賴圖
實驗中設(shè)置變更集,取其中的變更實體R1,執(zhí)行CRFCIA算法,將依賴元和變更實體作為輸入,參數(shù)配置:取ω0=0.5,Δω=0.5,T=5,得到如表2所示的測試結(jié)果。實際依賴鏈長度及鏈上實體不同,其對應(yīng)的受影響程度也不同,從實驗結(jié)果能看出Pscore很好地刻畫了這種差異,即Pscore越大,對應(yīng)依賴鏈實體受影響程度越大。根據(jù)實驗計算得到的Pscore和EIS,得到以下結(jié)論:
1)當(dāng)變更實體為R1時的影響集為各序列影響集的并集,所以R1的EIS為{R2,E1,E2,E3,E4,E5,E6,E7,E8,E9};
2)依賴鏈越長,鏈上實體受變更影響程度越大,變更漣漪效應(yīng)越明顯;
3)實際軟件變更測試時優(yōu)先測試Pscore較大的依賴鏈,重點測試節(jié)點中心度高的實體模塊。
表2 實驗測試結(jié)果(當(dāng)變更點為R1)
軟件變更影響分析是軟件變更維護工作的重要內(nèi)容,其主要目標(biāo)為:1)自動反饋變更集對應(yīng)的影響集,初步定位受影響位點;2)計算軟件開發(fā)中實體依賴鏈的受影響程度,為變更維護測試人員提供直觀的評價信息以快速做出決策。圍繞這2點,本文基于條件隨機場理論提出1種新的變更影響分析方法,從實體依賴關(guān)系出發(fā)構(gòu)建詞項依賴圖,并將這種依賴圖映射成線性條件隨機場,利用概率模型描述影響程度,并用概率評分Pscore進行定量刻畫。實驗表明CRFCIA方法在變更影響分析上是可行且準(zhǔn)確的。
利用條件隨機場等概率模型的思想來解決軟件依賴提取、變更影響分析等軟件變更維護問題,是一個值得研究且有應(yīng)用價值的方向,尤其在敏捷開發(fā)模式下,為軟件開發(fā)與測試的高效化、精準(zhǔn)化提供了一種值得借鑒的技術(shù)途徑。未來將針對CRFCIA算法的應(yīng)用及智能化改進展開進一步的研究。