• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    結合遺傳規(guī)劃和遺傳算法的代碼異味檢測方法

    2020-12-11 01:49:52高建華
    小型微型計算機系統(tǒng) 2020年11期
    關鍵詞:并行算法謂詞異味

    趙 敏,高建華

    (上海師范大學 計算機科學與技術系,上海 200234)

    1 引 言

    代碼異味是由于設計缺陷或不良編碼習慣導致深層次質量問題的代碼癥狀,不一定直接地導致軟件的錯誤,但會引起后續(xù)的一些可讀性差、效率低等系統(tǒng)問題,加大軟件維護的難度[1].相關研究報告顯示,大型系統(tǒng)的改進、更新以及重組等一系列維護活動占用了軟件項目總成本的90%,提前檢測并清理這些代碼異味,可以幫助程序員很好地理解源代碼的同時也節(jié)約了項目的成本.

    Marinescu、Moha以及Khomh[2-4]等人使用度量、結構和詞匯信息的組合來表示代碼異味的特征,定義規(guī)則來識別代碼異味的關鍵特征.但是在檢測特征不明顯的代碼異味時,精確度不高.在大型的應用場景中,也需要花很多時間對規(guī)則做大量的校準工作.

    Fokaefs[5]提出了移動重構的方法,這是一種基于度量的代碼異味檢測方法.該方法用Eclipse插件將問題量化,先通過插件對系統(tǒng)質量進行評估,再重構.此方法僅適用于單一的代碼異味.

    Fontana[6]等人提出了基于關聯(lián)的代碼異味檢測方法,通過代碼異味之間的直接關系和傳遞關系來檢測代碼異味,但這一方法只能檢測一些可量化的代碼異味.

    Emerson[7]等人提出來一種基于可視化的代碼異味檢測方法.這一方法將可交互的檢測工具和手工識別代碼異味相結合,快速地認識和理解代碼異味.但此方法涉及到手動標識代碼異味的特征,在效率和精確性上沒有很大的保證.

    對此,本文提出了一種基于協(xié)同并行算法優(yōu)化的代碼異味檢測方法,即將遺傳規(guī)劃和遺傳算法相結合,把代碼異味的檢測問題看作一個分布式搜索最優(yōu)解問題.本文又通過Jaccard系數(shù)對算法進行優(yōu)化,降低了檢測器的成本,提高了搜索效率.

    2 相關術語

    2.1 代碼異味

    代碼異味也稱設計異?;蛟O計缺陷,是指對軟件維護產(chǎn)生不利影響的設計情況,它常常標志著代碼應該被重構[8].本文關注以下8種代碼異味,如表1所示.

    表1 代碼異味及其描述Table 1 Code smells and its descriptions

    2.2 遺傳規(guī)劃

    遺傳規(guī)劃的基本思想是演化候選的程序種群來解決一個特定的問題[9].隨機生成候選種群,通過適應度函數(shù)對這些種群的質量進行評,如果符合標準則為最優(yōu)解,反之,則對這些種群進行一系列的交叉、變異等基因操作生成新的種群,迭代至符合標準輸出.

    2.2.1 檢測規(guī)則的生成

    在評估大量與代碼異味檢測相關的參數(shù)后,確定了檢測規(guī)則的終端集和函數(shù)集,終端集包含不同的質量度量以及閾值,函數(shù)集包含不同的邏輯運算符.檢測規(guī)則是基于抽象語法樹從范例中生成的,多用二叉樹的形式來表示[10].

    1)終端節(jié)點A是度量及其閾值的集合.度量包括一些代碼的行數(shù)、方法的數(shù)量、屬性的數(shù)量、加權方法的數(shù)量以及接口數(shù)量等.

    2)內(nèi)部節(jié)點B是一個邏輯運算符的集合C{AND,OR}.

    如圖1所示,規(guī)則由一個AND-OR樹組成.其中,一條候選檢測規(guī)則對應一條特定的代碼異味.

    圖1 檢測規(guī)則的表示Fig.1 Representation of detection rules

    規(guī)則1(R1).如果Locclass≥1500且(AND)Locmethod≥129或(OR)Nmd≥100,代碼異味為Lager Class(LC);

    規(guī)則2(R2).如果Locmethod≥151,代碼異味為Long Method(LM);

    規(guī)則3(R3).如果Locmethod≥7且(AND)Nmd=16,代碼異味為Data Clumps(DC).

    2.2.2 最優(yōu)檢測規(guī)則的生成

    遺傳規(guī)劃通過其進化算子(選擇、交叉和變異)迭代得到最優(yōu)檢測規(guī)則.

    1)選擇:以保留良好解決方案的基因和提供更好的解決方案為兩大原則進行選擇.通過適應度函數(shù)對檢測規(guī)則池P進行評估,根據(jù)適應度值的高低排序,在池P中挑選出1/2適應度高的檢測規(guī)則,形成新的檢測規(guī)則池S(大小為|S|,|S|=1/2|P|);再將池S經(jīng)過隨機的交叉、變異形成新的子代檢測規(guī)則池E,從子代池E中選出大小跟池P一樣的檢測規(guī)則池O(大小為|O|,|O|=|P|),新的檢測規(guī)則池U由池P和池O組成,大小為|U|=|P|+|O|=2|P|.

    2)交叉:在兩個父節(jié)點上隨機選取他們的子節(jié)點及其子樹進行交叉,生成的新樹結合雙方的信息,但僅限于同種代碼異味的檢測規(guī)則.

    3)變異:變異通常分為三種情況:當變異算子應用在終端節(jié)點時,則將它替換為新的終端節(jié)點(質量度量以及閾值);當變異算子應用在功能節(jié)點時,則用新的函數(shù)來替換;如果是樹的變異,則將節(jié)點及其子樹一并替換為新生成的子樹.

    2.3 遺傳算法

    選擇、交叉以及變異是遺傳算法的三個基本操作.選擇,根據(jù)定義的適應度函數(shù)對種群中個體進行評估,適應度高的種群個體被選擇;交叉,根據(jù)自然遺傳學對被選擇的種群個體進行交叉,形成新的個體;變異,在個體基因的基礎上按照一定的規(guī)則進行變異繼而形成新的最優(yōu)種群個體[11].

    2.3.1 檢測器的生成

    所謂的檢測器是指與良好范例代碼(幾乎沒有代碼異味的范例代碼)的偏差[12].由于本文只對代碼的結構感興趣,所以可將檢測器表示為一組謂詞序列,謂詞序列的每個維度都是一個代碼元素,對應面向對象系統(tǒng)中的類(C)、屬性(A)、方法(M)、參數(shù)(P)、泛型(G)和類之間的方法調用關系(R).

    為了方便謂詞序列之間的比較,降低相似性計算的復雜度,謂詞序列的順序必須嚴格按照類、屬性、方法、參數(shù)、泛型、類之間調用關系的順序排列.例如,謂詞序列CGAAMPPM表示一個具有泛型的類,謂詞序列中包含兩個屬性、兩種方法,第一種方法有兩個參數(shù),如圖2所示.

    圖2 檢測器A的表示Fig.2 Representation of detection A

    謂詞序列還包含一些相關結構的詳細信息,如類型、可見性等.在檢測器A中,謂詞C是一個類,類名為C12,可見性為public.

    2.3.2 最優(yōu)檢測器的生成

    遺傳算法通過其三個基本操作選擇、交叉以及變異,不斷迭代搜索得到最優(yōu)的檢測器.

    1)選擇:檢測器的選擇算子與檢測規(guī)則的選擇算子相同.

    2)交叉:兩個父代謂詞序列L1、L2,兩個子代謂詞序列S1、S2.隨機選擇一個位置p;L1的前p個元素放入S1的前p個元素,L2進行同樣的操作;L1剩下的元素放入S2,L2進行同樣的操作.例如謂詞序列L1:CGAAMPPM和謂詞序列L2:CGAMPPR在1/5處進行交叉,得到的新謂詞序列S1:CGAAMPR和S2:CGAMPPPM.

    3)變異:變異應用在隨機改變檢測器中元素的參數(shù).例如,圖2中檢測器A的第一個類的可見性為public,將其可見性變異成private.

    2.4 遺傳算法與遺傳規(guī)則的區(qū)別

    遺傳規(guī)劃是遺傳算法的一個分支.由于遺傳算法是按照一定字長的字符串形式來描述問題,而遺傳規(guī)劃是以非定長層次結構反映特定的問題.檢測器是以謂詞序列(字符串)形式呈現(xiàn),檢測規(guī)則是用二叉樹表示,所以本文將遺傳規(guī)則和遺傳算法分別應用在搜索最優(yōu)檢測規(guī)則和最優(yōu)檢測器的問題中.

    3 檢測規(guī)則和檢測器的評估

    3.1 代碼異味范例的覆蓋率

    設定一個目標函數(shù)C,計算實際檢測到的代碼異味與范例中的代碼異味的重疊,覆蓋率如公式(1)所示.

    (1)

    其中:e是范例代碼中代碼異味的數(shù)量,r是執(zhí)行檢測規(guī)則后檢測到的實際代碼異味數(shù)量,對于ai(C),如果第i次檢測到有code smell存在,ai(C)為1,否則為0,如表2、表3所示.

    表2 范例代碼中的代碼異味Table 2 Code-smells in the base of examples

    表3 實際檢測的代碼異味Table 3 Detected code smells

    將表3中檢測到的代碼異味與表2中代碼異味相比,類Senior、Primary以及Junior不是代碼異味.類Bachelor是代碼異味但代碼異味的類型不對.只有類Doctor是真正的代碼異味.所以,代碼異味范例的覆蓋率為(1/3+1/5)/2=0.26.

    3.2 檢測器的成本

    設定一個成本函數(shù)Cost來評估檢測器的質量.其中,S為檢測器組,檢測器Si的成本是其通用性和重疊的缺失的加權平均數(shù),如公式(2)所示.

    (2)

    通用性的缺失是通過計算檢測器Si的謂詞序列與良好范例代碼中類Cj的謂詞序列相似性而來,如公式(3)所示.

    (3)

    重疊的缺失是通過計算檢測器Si的謂詞序列與檢測器組S中所有其他檢測器Sj的謂詞序列的相似性而來,如公式(4)和式(5)所示.

    (4)

    其中,sim()如公式(5)所示.

    (5)

    a,b為謂詞序列A和B的長度,Sa,b為A和B的公共最長子序列.

    為了計算兩個謂詞序列之間的相似性,本文將Needleman-Wunsch算法應用到全文,并使用Jaccard系數(shù)對其進行優(yōu)化.

    Needleman-Wunsch算法是一種動態(tài)編程方法,它是在允許加入空隙的情況下,找到兩個序列之間的最優(yōu)全局對齊[13].對齊序列(a1,…,an)和序列(b1,…,bn)時,根據(jù)下面的式(6)計算出Needleman-Wunsch算法矩陣LCS,并通過回溯寫出匹配字符串.其中,LCS矩陣第一行和第一列都為0;

    ai=bj;

    LCS(i,j)=LCS(i-1,j-1)+Sim(A,B)

    ai≠bj;

    (6)

    Jaccard系數(shù)是計算兩個樣本集合之間的相似性[15,16],如公式(7)所示.

    (7)

    如圖3所示,檢測器A的第一個方法Method(C12,m154,void,Y,public)與范例代碼34中的第一個方法Method(Options,isFractionalMetrics,boolean,Y,public)相比,N、Y都為變量名,public是可見性,所以用Jaccard系數(shù)計算為2/(5+5-2)=0.2.

    本文設定了一個風險評估適應度函數(shù),將風險評分超過0.75的片段認為是代碼異味,如式(8)所示.

    (8)

    其中,ei是待評估的代碼片段.

    3.3 檢測規(guī)則和檢測器的交叉函數(shù)

    如果一個類被檢測規(guī)則和檢測器同時檢測到,那么該類是代碼異味的幾率就會很大.因此,本文將檢測規(guī)則和檢測器組合來檢測代碼異味.

    圖3 Jaccard系數(shù)計算圖Fig.3 Calculation figure of the Jaccard index

    在每一次的迭代中,從最優(yōu)檢測規(guī)則和最優(yōu)檢測器中選出一組檢測規(guī)則和檢測器,應用在新的系統(tǒng)N中.本文構造了一個最優(yōu)解決方案矩陣M,行是最優(yōu)檢測規(guī)則MPi,列是最優(yōu)檢測器MAj,最優(yōu)檢測規(guī)則和最優(yōu)檢測器的交叉點得分,如公式(9)所示.

    (9)

    對于新系統(tǒng)N中,由最優(yōu)檢測規(guī)則檢測出含有代碼異味類的集合為Cr={c1,c2,…,ci};由最優(yōu)檢測器檢測出含有代碼異味類的集合為Cd={c1,c2,…,cj};實際檢測出含有代碼異味類的個數(shù)為T.

    圖4 交叉點得分的說明Fig.4 Illustration of the intersection score

    如圖4所示,待評估系統(tǒng)有5個類,其中有2個類存在代碼異味.將4個最優(yōu)檢測規(guī)則和4個最優(yōu)檢測器在待評估系統(tǒng)上運行,并得到一個4×4的矩陣,檢測規(guī)則R18檢測出2個類存在代碼異味,檢測器檢S11測出3個類的risk值都高于0.75,所以3個類都存在代碼異味.計算兩種解決方案的交叉點得分依據(jù)式(9)為:(2/3+2/2)/2=0.83.

    檢測器S11與4種檢測規(guī)則的交叉得分點分別為:0.43、0.83、0.59以及0.64.分析交叉得分點可知S11與R18的交叉得分點最高,在檢測代碼異味時,將其視作一組可能的最優(yōu)解決方案.

    其中,每一種解決方案的交叉適應度函數(shù)如公式(10)所示.

    finter(MPi)=Min{finter(MPi,MA?j)}
    finter(MPj)=Min{finter(MP?i,MAj)}

    (10)

    3.4 檢測規(guī)則質量的評估

    檢測規(guī)則的適應度函數(shù)基于:

    1)最大概率地覆蓋代碼異味的范例;

    2)使用與檢測器并行執(zhí)行的交叉函數(shù),使得一致性達到最大.

    基于以上兩點,檢測規(guī)則質量的適應度函數(shù)如公式(11)所示.

    (11)

    3.5 檢測器質量的評估

    檢測器的適應度函數(shù)基于:

    1)減小范例代碼與檢測器之間的相似性,從而提高檢測器的通用性;

    2)減小檢測器之間的重疊,即兩個檢測器的相似性.

    基于以上兩點,檢測器質量的適應度函數(shù)如公式(12)所示.

    (12)

    4 基于協(xié)同并行算法優(yōu)化的代碼異味檢測方法

    4.1 改進的Needleman-Wunsch算法

    在文獻[16]中提出了一種改進的Needleman-Wunsch算法,普通的Needleman-Wunsch算法只比較謂詞的相似度,改進的Needleman-Wunsch算法通過式(13)進一步計算謂詞的參數(shù)的相似性,精確了最長公共子序列的長度,如公式(13)所示.

    (13)

    其中,ai、bj是兩個謂詞的參數(shù)集,p、q是兩個謂詞的參數(shù).

    以檢測器A中謂詞Method參數(shù)集(C12,m154,void,Y,public)和范例代碼34的謂詞Method參數(shù)集(Options,isFractionalMetrics,boolean,Y,public)為例,式(13)計算得出兩種方法的相似性為:2/5=0.4.改進后的LCS矩陣如公式(6)所示,其中Sim(A,B)=PMij.

    4.2 基于Jaccard系數(shù)的Needleman-Wunsch算法

    為了更進一步地提高檢測器的通用性和降低檢測器之間的重疊,本文在改進的Needleman-Wunsch算法基礎上,提出基于Jaccard系數(shù)的Needleman-Wunsch算法,用于對比計算兩個謂詞的參數(shù)集.

    以檢測器A中謂詞Method參數(shù)集(C12,m154,void,Y,public)和范例代碼34中的謂詞Method參數(shù)集(Options,isFractionalMetrics,boolean,Y,public)為例,由Jaccard系數(shù)計算出來兩個謂詞參數(shù)集的相似度0.2.改進后得到計算LCS矩陣如公式(6)所示,其中Sim(A,B)=J(A,B).兩種方法的對比如圖5所示.

    圖5 兩種方法的對比圖Fig.5 Comparisonfigureof two methods

    根據(jù)以上兩個公式計算出來的最長公共子序列分別為2.4和2.2,將結果帶入式(5),可得到檢測器A和代碼范例34的相似度Sim()分別為0.4和0.2.由式(3)可得,檢測器和范例代碼之間相似度的精確可以提高檢測器的通用性;由式(4)可見,檢測器間相似度的精確可以降低檢測器之間的重疊;由式(2)可得,隨著檢測器通用性的提高和檢測器間重疊的降低,檢測器的成本也隨之減少.后續(xù)本文對這兩種方法在同一數(shù)據(jù)集上進行驗證,以說明基于Jaccard系數(shù)的Needleman-Wunsch算法要優(yōu)于改進的的Needleman-Wunsch算法.

    4.3 協(xié)同并行算法優(yōu)化

    為了減少搜索時間、精確檢測結果,本文提出將最優(yōu)檢測規(guī)則和最優(yōu)檢測器并行應用在檢測過程中,該并行算法的具體實現(xiàn)過程如算法1和算法2所示.

    算法1.基于遺傳規(guī)劃的最優(yōu)檢測規(guī)則獲取算法

    輸入:代碼質量度量集合M

    手工評估的系統(tǒng)集合S(異味示例)

    新系統(tǒng)A

    輸出:最優(yōu)檢測規(guī)則

    1.Max_size=100;

    2.gen=0;%Counter

    3.NBS=100;%number of best Soulution

    4.MaxGen=500;%maximum no.fo generation

    5.R1=rules(M,Smell_type);

    6.P1=set_of(R1);

    7.Initial_population_GP(P1,Max_size);

    8.While gen

    9. for each R1∈P1 do

    10. detected_smells_GP(S)=excute_rules(R1,S);

    11. fitness(R1)=compare(detected_smells,smells_examples);

    12. end for

    13. best_sol_P1=select(P1,NBS);

    14. send(best_sol_P1);

    15. best_sol_P2=receive(best_sol_P2);

    16. for each R1∈best_sol_P1 do

    17. detected_smells_GP(A)=excute_rules(R1,A);

    18. fitness_intersection(R1)=Max_intersection(detected_smells_GP(A,R1)∩detected_smells_GA(A,best_sol_P2)

    19. fitness(R1):=update fitness(R1,fitness_intersection);

    20. end for

    21. gen=gen+1;

    22.end

    23.retum best solution rules;

    算法2.基于遺傳算法的最優(yōu)檢測器獲取算法

    輸入:良好示例代碼的集合GES

    新系統(tǒng)A

    輸出:最優(yōu)檢測器

    1.Max_size=100;

    2.gen=0;%Counter

    3.NBS=100;%number of best Soulution

    4.MaxGen=500;%maximum no.fo generation

    5.R2=detectors(GES);

    6.P2=set_of(R2);

    7.Initial_population_GP(P2,Max_size);

    8.While gen

    9. for each R2∈P2 do

    10. fitness(R2)=cost(R2);

    12. end for

    13. best_sol_P2=select(P2,NBS);

    14. send(best_sol_P2);

    15. best_sol_P1=receive(best_sol_P1);

    16. for each R2∈best_sol_P2 do

    17. detected_smells_GA(A)=excute_rules(R2,A);

    18. fitness_intersection(R2)=Max_intersection(detected_smells_GA(A,R2)∩detected_smells_GP(A,best_sol_P1)

    19. fitness(R2):=update fitness(R2,fitness_intersection);

    20. end for

    21. gen=gen+1;

    22.end

    23.retum best solution rules;

    算法1和算法2并行執(zhí)行,并在每一代中使用適應度函數(shù)進行交互.第1-3行構造一個初始檢測規(guī)則種群和檢測器種群;第4-15行是搜索最優(yōu)檢測規(guī)則和檢測器的循環(huán)過程;第16-20行是兩種算法的交互.

    在每次迭代中,本文使用適應度函數(shù)對每個個體進行質量評估.在評估檢測器時(算法2的第10行),對原先的適應度函數(shù)進行了改進.本文使用Jaccard系數(shù)對Needleman-Wunsch算法進行改進,從而增加了檢測器的通用性和檢測器之間的重疊,減小了檢測器的成本.5.2中的實驗結果表明,這種改進不僅增加了代碼異味的精度和召回率,還減少了搜索時間.

    圖6 方法的概圖Fig.6 Overviewof the proposed approach

    如圖6所示,協(xié)同并行算法優(yōu)化可以理解為以下4個步驟:

    1)通過遺傳規(guī)則和遺傳算法并行搜索最優(yōu)檢測規(guī)則和最優(yōu)檢測器;

    2)將搜索得到的最優(yōu)檢測規(guī)則和最優(yōu)檢測器應用在新系統(tǒng)上;

    3)根據(jù)交叉點得分更改最優(yōu)檢測規(guī)則和最優(yōu)檢測器的適應度函數(shù),生成最優(yōu)解決方案.

    4)達到先前設定的固定迭代次數(shù)后,停止.

    5 實 驗

    5.1 實驗環(huán)境

    為了評估基于協(xié)同并行算法優(yōu)化的代碼異味檢測的方法,本實驗從大型開源系統(tǒng)中提取8個開源項目對8種代碼異味進行實驗,并與基于單一種群的算法以及文獻[16]中的協(xié)同并行算法進行比較.

    本實驗從現(xiàn)有的數(shù)據(jù)集[17]中挑選出類大小不的開源項目,其包含了近800種手動識別的代碼異味,如表4所示.

    在過去的十多年中,這些項目一直保持著活躍的狀態(tài),并包含了大量的代碼異味.此外,這些項目被諸多研究引用,分布于不同的應用領域,其包含的代碼異味已被大量相關研究明確檢測和分析[16].

    表4 實驗項目Table 4 Systems for experiment

    5.2 實驗配置

    本實驗將剩余的項目作為代碼異味范例來生成檢測規(guī)則,例如檢測GanttProject3,則選擇剩余的項目作為代碼異味范例來生成規(guī)則.從范例中可以生成特定項目的特定的規(guī)則,所以在同一軟件項目內(nèi),規(guī)則是適用的[10].

    對于檢測規(guī)則的充分性,范例庫中包含了研究的所有代碼異味類型,所以范例具有充分性.規(guī)則是從范例中生成,范例的充分性從一定程度上也保證了規(guī)則的充分性[10].

    對于檢測規(guī)則的一般性,Decor[3]是公認的可用于生產(chǎn)環(huán)境的經(jīng)典代碼異味檢測工具.在參考文獻[10]中,將從范例中生成規(guī)則的方法與Decor行對比,實驗表明前者的精度與召回都要優(yōu)于后者.

    本實驗選擇JHotdraw[18]作為良好的代碼異味范例,并通過與JHotdraw之間的偏差來生成檢測器,因為JHotdraw包含很少的已知代碼異味.

    本文根據(jù)文獻[19]提出的種群數(shù)和迭代數(shù),將遺傳規(guī)則和遺傳算法的種群數(shù)固定在100,迭代數(shù)固定在1000.協(xié)同并行算法優(yōu)化的種群數(shù)固定在100,迭代數(shù)固定在500.并將基于遺傳規(guī)劃、遺傳算法、協(xié)同并行算法以及協(xié)同并行算法優(yōu)化的方法執(zhí)行500次進行比較.

    為了強調種群的多樣性,本實驗將進化算子中交叉概率設為0.9,變異概率設為0.5.

    為了評估本文方法的準確性,本實驗計算了兩種度量:精度(PMV)和召回(RMV).在實驗中,精度表示所有檢測到的代碼異味中檢測到正確的代碼異味的概率,召回表示所有手動識別的代碼異味中正確檢測到的代碼異味的概率.

    實驗主要尋求以下幾個問題的解答:

    Q1:基于協(xié)同并行算法優(yōu)化,什么類型的代碼異味可以被正確的檢測?

    Q2:協(xié)同并行算法優(yōu)化在多大程度上優(yōu)于基于單一種群的方法以及原來的協(xié)同并行算法?

    5.3 實驗結果與分析

    本實驗記錄了不同項目中基于協(xié)同并行優(yōu)化方法下8種代碼異味的精度值和召回率,如表5所示.在不同的項目中,8種代碼氣味的精度值和召回率都超過了85%.表5結果表明協(xié)同并行算法優(yōu)化的方法沒有偏向于檢測特定的代碼異味.在所有項目中,每個代碼異味類型的分布幾乎相等.這種不偏向于識別某種特定代碼異味的能力是本文方法的一個關鍵優(yōu)勢.大多數(shù)現(xiàn)有的工具和技術在很大程度上依賴于度量的方法,對于FE、SS這些代碼異味,度量的方法并不奏效[20,21].從這一方面來看,協(xié)同并行算法優(yōu)化結合了多種不同的檢測方法,在代碼異味的檢測上具有一定的準確性.(Q1)

    表5 不同項目下代碼異味的精度值和召回率Table 5 Precision median values and recall median values of different projects

    實驗將4種方法分別應用在不同的項目上,每種方法運行51次,并計算精度值和召回率.

    表6 不同方法下的精度值和召回率Table 6 Precision median values and recall median values of different methods

    如表6所示,基于遺傳規(guī)劃方法下得到的精度值大約在82%、召回率大約在80%;基于遺傳算法方法下得到的精度值大約在82%、召率大約在81%;基于協(xié)同并行算法方法下得到的精度值大約在89%、召回率大約在87%;基于協(xié)同并行算法優(yōu)化方法下得到的精度值大約在91%、召回率大約在88%;從縱向來看,隨著項目大小的改變,精度值和召回率并沒有很大的浮動,可以表明精度值以及召回率與項目大小無關.從整體來看,基于單一種群的算法的精度和召回率低于基于協(xié)同并行算法,基于協(xié)同并行算法優(yōu)化方法的精度值和召回率最高,可以表明基于協(xié)同并行算法優(yōu)化的方法優(yōu)于其余兩種基于單一種群以及基于協(xié)調并行算法的方法.(Q1)

    將基于協(xié)同并行算法優(yōu)化的代碼異味檢測方法和兩個基于單一種群以及基于協(xié)同并行算法的代碼異味檢測方法,分別應用在不同的項目上.

    圖7 不同項目上的平均執(zhí)行時間比較Fig.7 Average execution time comparison on the different project

    如圖7所示,從CUP時間來看,基于協(xié)同并行算法優(yōu)化的執(zhí)行時間是基于單一種群的一半.因此,在代碼異味檢測的問題上,并行執(zhí)行比單一執(zhí)行耗時更少,基于協(xié)同算法優(yōu)化的執(zhí)行時間也少于基于協(xié)同并行算法.這是因為在優(yōu)化研究領域中,評估階段通常是最耗時的,在本實驗中,用Jaccard算法優(yōu)化了用于評估檢測器的Needleman-Wuncsh算法,增大了檢測器的通用性并減小了檢測器之間的重疊,減少搜索時間的同時也減少了評估階段的耗時.(Q2)

    6 期 望

    本文提出了基于并行協(xié)同算法優(yōu)化的方法來檢測代碼異味,降低了檢測器的成本,加快了搜索速度.由遺傳規(guī)劃搜索得到最優(yōu)檢測規(guī)則,由遺傳算法搜索得到最優(yōu)檢測器,再將兩種方法在同一項目上運行,找到兩種解決方案的交集,其結果是令人信服的.不足之處在于,本文只關注8種代碼異味,相對局限,未來將擴大實驗規(guī)模,以檢測更多的代碼異味,提高方法的一般適用性.此外,還準備增加并行的算法個數(shù),求證3個及3個以上的算法檢測出來的結果會不會更加精確.

    猜你喜歡
    并行算法謂詞異味
    地圖線要素綜合化的簡遞歸并行算法
    被遮蔽的邏輯謂詞
    ——論胡好對邏輯謂詞的誤讀
    黨項語謂詞前綴的分裂式
    西夏研究(2020年2期)2020-06-01 05:19:12
    基于4G技術的VOCs及異味檢測系統(tǒng)
    用這些告別異味吧!夏天就要清清爽爽過!
    PIC-408系列采用育種技術控制公豬異味
    基于GPU的GaBP并行算法研究
    也談“語言是存在的家”——從語言的主詞與謂詞看存在的殊相與共相
    外語學刊(2016年4期)2016-01-23 02:33:55
    基于GPU的分類并行算法的研究與實現(xiàn)
    去除鞋柜異味等
    纵有疾风起免费观看全集完整版| 在线精品无人区一区二区三| 啦啦啦啦在线视频资源| 插阴视频在线观看视频| 色婷婷av一区二区三区视频| 国产在线免费精品| 丁香六月天网| 日韩亚洲欧美综合| 久久99热这里只频精品6学生| 一级毛片 在线播放| av在线观看视频网站免费| 欧美区成人在线视频| 大又大粗又爽又黄少妇毛片口| 欧美成人精品欧美一级黄| av女优亚洲男人天堂| 色视频在线一区二区三区| 日本猛色少妇xxxxx猛交久久| 午夜av观看不卡| 亚洲精品aⅴ在线观看| 色94色欧美一区二区| 久久久精品免费免费高清| 亚洲人与动物交配视频| 美女内射精品一级片tv| 综合色丁香网| 国产精品免费大片| 女人精品久久久久毛片| 一区在线观看完整版| 午夜福利在线观看免费完整高清在| 尾随美女入室| 男人添女人高潮全过程视频| 中文字幕亚洲精品专区| 欧美日韩av久久| 好男人视频免费观看在线| 黑人猛操日本美女一级片| 九九久久精品国产亚洲av麻豆| 国产黄色免费在线视频| 亚洲av二区三区四区| 久久毛片免费看一区二区三区| 国产日韩欧美亚洲二区| 天堂俺去俺来也www色官网| 国内精品宾馆在线| 亚洲欧美日韩卡通动漫| 2018国产大陆天天弄谢| 精华霜和精华液先用哪个| 纵有疾风起免费观看全集完整版| 夜夜看夜夜爽夜夜摸| 亚洲国产毛片av蜜桃av| 国产无遮挡羞羞视频在线观看| 国产片特级美女逼逼视频| 亚洲,一卡二卡三卡| 国产高清国产精品国产三级| 99热网站在线观看| 午夜av观看不卡| 天天躁夜夜躁狠狠久久av| 久久99一区二区三区| 人人妻人人爽人人添夜夜欢视频 | 国产精品一区www在线观看| 一区二区三区四区激情视频| 午夜久久久在线观看| 又大又黄又爽视频免费| 亚洲精品乱码久久久久久按摩| 国产有黄有色有爽视频| 黑丝袜美女国产一区| 欧美人与善性xxx| 少妇被粗大的猛进出69影院 | 国产成人freesex在线| 久久婷婷青草| 美女中出高潮动态图| 高清在线视频一区二区三区| 五月天丁香电影| 午夜老司机福利剧场| 91精品伊人久久大香线蕉| 亚洲国产精品一区三区| 亚洲精品乱久久久久久| 国内揄拍国产精品人妻在线| 欧美日韩视频精品一区| 男人舔奶头视频| 日本免费在线观看一区| 日本wwww免费看| 亚洲,欧美,日韩| 少妇被粗大的猛进出69影院 | 我的老师免费观看完整版| 精品酒店卫生间| 日日摸夜夜添夜夜添av毛片| 在线观看免费视频网站a站| 丝袜喷水一区| 亚洲av在线观看美女高潮| 国产欧美日韩一区二区三区在线 | 曰老女人黄片| 国产在视频线精品| 国精品久久久久久国模美| 美女xxoo啪啪120秒动态图| av卡一久久| 草草在线视频免费看| 五月伊人婷婷丁香| 精品久久久久久久久亚洲| 午夜日本视频在线| 久久久亚洲精品成人影院| 男女边摸边吃奶| 天天躁夜夜躁狠狠久久av| 制服丝袜香蕉在线| 中文天堂在线官网| 亚洲av日韩在线播放| 久久人妻熟女aⅴ| 天天操日日干夜夜撸| 久久久亚洲精品成人影院| 午夜av观看不卡| 日本av免费视频播放| 日本av免费视频播放| 日韩av在线免费看完整版不卡| 亚洲欧美一区二区三区黑人 | 人妻一区二区av| 中国美白少妇内射xxxbb| 亚洲精华国产精华液的使用体验| 国产精品国产av在线观看| 午夜视频国产福利| 久久婷婷青草| 80岁老熟妇乱子伦牲交| 男女无遮挡免费网站观看| 日韩视频在线欧美| 欧美97在线视频| 欧美变态另类bdsm刘玥| 欧美变态另类bdsm刘玥| 国产午夜精品一二区理论片| 国产成人午夜福利电影在线观看| 人人妻人人看人人澡| 91精品一卡2卡3卡4卡| 午夜视频国产福利| 日韩电影二区| 久热这里只有精品99| 亚洲精品一二三| 亚洲欧美精品自产自拍| 亚洲精品日韩在线中文字幕| 91久久精品电影网| 日韩一本色道免费dvd| 深夜a级毛片| 亚洲精品久久久久久婷婷小说| 午夜日本视频在线| 日产精品乱码卡一卡2卡三| av播播在线观看一区| 免费观看a级毛片全部| 亚洲精品亚洲一区二区| 亚洲电影在线观看av| 日韩精品免费视频一区二区三区 | 韩国av在线不卡| 秋霞在线观看毛片| 久久99热6这里只有精品| 亚洲av综合色区一区| 久久精品国产a三级三级三级| 中文字幕人妻熟人妻熟丝袜美| 亚洲av在线观看美女高潮| 亚洲不卡免费看| 日韩欧美一区视频在线观看 | 亚洲精品国产成人久久av| 国产高清有码在线观看视频| 日韩欧美精品免费久久| 51国产日韩欧美| 99热这里只有精品一区| 在线观看一区二区三区激情| 99精国产麻豆久久婷婷| 久久久国产精品麻豆| 国产精品一区二区性色av| 欧美亚洲 丝袜 人妻 在线| 精品久久久久久电影网| 一级片'在线观看视频| 亚洲av电影在线观看一区二区三区| 日本爱情动作片www.在线观看| 少妇猛男粗大的猛烈进出视频| 亚洲精品国产av成人精品| 一区二区三区乱码不卡18| 日韩亚洲欧美综合| 性色av一级| 97超碰精品成人国产| 午夜免费观看性视频| av有码第一页| 22中文网久久字幕| 亚洲激情五月婷婷啪啪| 自拍偷自拍亚洲精品老妇| 免费观看a级毛片全部| 亚洲欧美成人综合另类久久久| 亚洲伊人久久精品综合| 亚洲av电影在线观看一区二区三区| 91久久精品国产一区二区成人| 午夜91福利影院| 色婷婷久久久亚洲欧美| 亚洲欧美中文字幕日韩二区| 一级黄片播放器| 亚洲国产欧美日韩在线播放 | 久久免费观看电影| 2022亚洲国产成人精品| 亚洲美女黄色视频免费看| 国产一区二区在线观看日韩| 最近最新中文字幕免费大全7| 又粗又硬又长又爽又黄的视频| 一级a做视频免费观看| 青青草视频在线视频观看| 在线观看免费高清a一片| 99久久精品国产国产毛片| 熟女人妻精品中文字幕| 另类精品久久| av在线app专区| 成人美女网站在线观看视频| 欧美变态另类bdsm刘玥| 伊人久久精品亚洲午夜| 欧美日韩综合久久久久久| 成人毛片60女人毛片免费| 一区二区三区精品91| 亚洲欧洲国产日韩| 亚州av有码| 亚洲av电影在线观看一区二区三区| 中文字幕av电影在线播放| 久久国内精品自在自线图片| 精品人妻熟女av久视频| 麻豆乱淫一区二区| 国产爽快片一区二区三区| 日本欧美视频一区| 国产毛片在线视频| 国产精品久久久久久久电影| 午夜日本视频在线| 一区二区av电影网| 一级毛片电影观看| 国产精品久久久久久av不卡| 曰老女人黄片| 特大巨黑吊av在线直播| 在线观看一区二区三区激情| 久久亚洲国产成人精品v| 国产在线免费精品| 亚洲精品aⅴ在线观看| 国产 一区精品| 国产精品人妻久久久影院| 校园人妻丝袜中文字幕| 亚洲欧美清纯卡通| 日本黄色片子视频| 丝袜喷水一区| 中文资源天堂在线| 交换朋友夫妻互换小说| 久久精品国产自在天天线| 97在线视频观看| 99久久综合免费| 男人和女人高潮做爰伦理| 亚洲精品第二区| 国产69精品久久久久777片| 国产欧美日韩一区二区三区在线 | 国产在线一区二区三区精| 亚洲丝袜综合中文字幕| 人妻制服诱惑在线中文字幕| 人妻夜夜爽99麻豆av| 免费观看a级毛片全部| av在线观看视频网站免费| 国产 一区精品| 日韩三级伦理在线观看| 日韩成人av中文字幕在线观看| 国产精品熟女久久久久浪| 午夜精品国产一区二区电影| 免费人成在线观看视频色| 久久鲁丝午夜福利片| 制服丝袜香蕉在线| 婷婷色麻豆天堂久久| 亚洲精品乱码久久久久久按摩| 亚洲欧洲国产日韩| 国产亚洲午夜精品一区二区久久| 在线观看免费高清a一片| 一本一本综合久久| 天堂俺去俺来也www色官网| 十八禁高潮呻吟视频 | 精品国产一区二区久久| 精品久久久久久久久av| 国产精品久久久久久精品电影小说| 国产精品久久久久久久久免| 91精品一卡2卡3卡4卡| 在线观看av片永久免费下载| 精品久久久久久电影网| 日韩成人av中文字幕在线观看| 亚洲国产精品成人久久小说| 一个人免费看片子| www.av在线官网国产| 亚洲av中文av极速乱| 久久久久久伊人网av| 成人影院久久| 人人澡人人妻人| 亚洲国产精品成人久久小说| 精品亚洲成国产av| 亚洲精品国产av成人精品| 国产乱来视频区| 久久国产精品男人的天堂亚洲 | 国产av精品麻豆| 天天躁夜夜躁狠狠久久av| 搡女人真爽免费视频火全软件| 最近最新中文字幕免费大全7| 欧美日韩国产mv在线观看视频| 国产色爽女视频免费观看| 亚洲成人av在线免费| 日韩不卡一区二区三区视频在线| 91在线精品国自产拍蜜月| 日本黄色片子视频| 色5月婷婷丁香| 一区二区三区精品91| 国产欧美另类精品又又久久亚洲欧美| 99久久精品国产国产毛片| 国产高清三级在线| 国产成人精品福利久久| xxx大片免费视频| 女性被躁到高潮视频| 在线观看免费视频网站a站| 婷婷色麻豆天堂久久| 天堂8中文在线网| 亚洲精品国产av蜜桃| 国产av码专区亚洲av| 自拍欧美九色日韩亚洲蝌蚪91 | 免费观看在线日韩| 国产亚洲91精品色在线| 男人和女人高潮做爰伦理| 在线观看免费视频网站a站| 亚洲经典国产精华液单| 自拍偷自拍亚洲精品老妇| 亚洲欧洲日产国产| 男人和女人高潮做爰伦理| av黄色大香蕉| 亚洲欧美一区二区三区黑人 | 成年av动漫网址| 久久女婷五月综合色啪小说| 一本—道久久a久久精品蜜桃钙片| 在线观看美女被高潮喷水网站| 乱系列少妇在线播放| 在线观看一区二区三区激情| 国产高清不卡午夜福利| 99热网站在线观看| 久久6这里有精品| 天堂俺去俺来也www色官网| 亚洲av在线观看美女高潮| 不卡视频在线观看欧美| 亚洲激情五月婷婷啪啪| 国产精品免费大片| 欧美精品亚洲一区二区| 99久久精品一区二区三区| 成人免费观看视频高清| 26uuu在线亚洲综合色| 成人漫画全彩无遮挡| 51国产日韩欧美| av视频免费观看在线观看| 成人毛片60女人毛片免费| 亚洲精品色激情综合| 一本一本综合久久| 在线观看一区二区三区激情| 日本免费在线观看一区| 久久久久久久久大av| 成人无遮挡网站| 久久精品国产a三级三级三级| 国产精品.久久久| 视频区图区小说| 毛片一级片免费看久久久久| 午夜精品国产一区二区电影| 亚洲在久久综合| 久久99蜜桃精品久久| 久久人人爽av亚洲精品天堂| 久久99热6这里只有精品| 欧美老熟妇乱子伦牲交| 只有这里有精品99| av在线播放精品| 国产精品久久久久久久久免| 99re6热这里在线精品视频| 欧美精品一区二区免费开放| 在线观看国产h片| 久久精品久久久久久久性| 内射极品少妇av片p| 亚洲精品,欧美精品| 一二三四中文在线观看免费高清| 精品亚洲成a人片在线观看| 欧美xxⅹ黑人| 亚洲精品色激情综合| 欧美 亚洲 国产 日韩一| 日韩电影二区| 亚洲av中文av极速乱| 成人18禁高潮啪啪吃奶动态图 | 日韩中文字幕视频在线看片| 国产美女午夜福利| 国产精品不卡视频一区二区| 国产精品无大码| 免费观看性生交大片5| 亚洲国产成人一精品久久久| 女性生殖器流出的白浆| 成人国产麻豆网| av国产久精品久网站免费入址| 成人综合一区亚洲| 男女啪啪激烈高潮av片| 伦理电影免费视频| 亚洲国产成人一精品久久久| 三级国产精品欧美在线观看| 777米奇影视久久| 欧美xxxx性猛交bbbb| 91精品一卡2卡3卡4卡| 亚洲精品日韩在线中文字幕| 久久精品久久精品一区二区三区| 中文字幕制服av| 欧美日韩一区二区视频在线观看视频在线| 亚州av有码| 一本一本综合久久| 国产又色又爽无遮挡免| av福利片在线| 高清欧美精品videossex| 欧美变态另类bdsm刘玥| 精品久久久久久久久亚洲| 大香蕉97超碰在线| 久久鲁丝午夜福利片| 2018国产大陆天天弄谢| 极品教师在线视频| 成年av动漫网址| 性高湖久久久久久久久免费观看| 亚州av有码| 亚洲欧美一区二区三区国产| 在线播放无遮挡| 国产欧美日韩综合在线一区二区 | 久久久久国产精品人妻一区二区| 人人妻人人看人人澡| 亚洲美女黄色视频免费看| 精品卡一卡二卡四卡免费| 国产淫语在线视频| 69精品国产乱码久久久| 99久久精品国产国产毛片| 久久久欧美国产精品| 又大又黄又爽视频免费| av女优亚洲男人天堂| 99re6热这里在线精品视频| 亚洲精品乱久久久久久| 少妇人妻精品综合一区二区| www.av在线官网国产| 五月玫瑰六月丁香| 国产亚洲一区二区精品| 女性生殖器流出的白浆| 国产成人精品婷婷| 国产精品一二三区在线看| 黄色配什么色好看| 久久久久视频综合| 三级国产精品片| 人人妻人人澡人人爽人人夜夜| 七月丁香在线播放| 国产日韩欧美视频二区| 国产欧美亚洲国产| 国产精品三级大全| av黄色大香蕉| 亚洲天堂av无毛| 最近2019中文字幕mv第一页| av福利片在线观看| 中国国产av一级| 免费黄频网站在线观看国产| 免费观看a级毛片全部| 国产精品一区www在线观看| 久久女婷五月综合色啪小说| 成人18禁高潮啪啪吃奶动态图 | 亚洲欧洲精品一区二区精品久久久 | 丰满人妻一区二区三区视频av| 久久久久国产精品人妻一区二区| av有码第一页| 精品久久国产蜜桃| 美女视频免费永久观看网站| 欧美 日韩 精品 国产| 九草在线视频观看| 国产精品人妻久久久影院| 国产无遮挡羞羞视频在线观看| 美女脱内裤让男人舔精品视频| 亚洲欧洲精品一区二区精品久久久 | 亚洲人与动物交配视频| 看十八女毛片水多多多| 免费av中文字幕在线| 亚洲不卡免费看| 91午夜精品亚洲一区二区三区| 久久韩国三级中文字幕| av专区在线播放| 亚洲美女视频黄频| 51国产日韩欧美| 老司机影院毛片| 我要看日韩黄色一级片| 国产高清三级在线| 成人黄色视频免费在线看| 国产精品熟女久久久久浪| 久久久久国产网址| 国产国拍精品亚洲av在线观看| 99热这里只有精品一区| 亚洲精品乱码久久久久久按摩| 久久午夜福利片| 精品一区二区三卡| 在线看a的网站| 国产日韩一区二区三区精品不卡 | 国产一区二区在线观看av| 麻豆乱淫一区二区| 免费观看av网站的网址| 校园人妻丝袜中文字幕| 久久狼人影院| 亚洲美女视频黄频| 国产乱来视频区| 国产免费福利视频在线观看| 国精品久久久久久国模美| 久久av网站| 中国国产av一级| 亚洲第一av免费看| 日本色播在线视频| 狂野欧美白嫩少妇大欣赏| 黑丝袜美女国产一区| 亚洲色图综合在线观看| 久久久国产欧美日韩av| 少妇人妻一区二区三区视频| 久久人人爽人人片av| 欧美精品人与动牲交sv欧美| videossex国产| 日本黄色日本黄色录像| 国产精品三级大全| 亚洲av在线观看美女高潮| 国产午夜精品久久久久久一区二区三区| 亚洲精品第二区| 亚洲精品视频女| 麻豆成人午夜福利视频| 色94色欧美一区二区| 欧美日韩视频高清一区二区三区二| 久久久精品免费免费高清| 一本—道久久a久久精品蜜桃钙片| 欧美 日韩 精品 国产| 日产精品乱码卡一卡2卡三| 老司机亚洲免费影院| 精品熟女少妇av免费看| 美女福利国产在线| 亚洲在久久综合| 搡老乐熟女国产| 久久久欧美国产精品| √禁漫天堂资源中文www| tube8黄色片| 日日撸夜夜添| 久久久久久人妻| 免费观看a级毛片全部| 国产日韩欧美视频二区| 高清黄色对白视频在线免费看 | 国产成人精品福利久久| 狂野欧美激情性xxxx在线观看| 国产精品人妻久久久久久| 国产精品欧美亚洲77777| 国产91av在线免费观看| 日本色播在线视频| 超碰97精品在线观看| 久久99精品国语久久久| 欧美xxxx性猛交bbbb| 亚洲av欧美aⅴ国产| 春色校园在线视频观看| 色94色欧美一区二区| 亚洲色图综合在线观看| 国产在线视频一区二区| 校园人妻丝袜中文字幕| 欧美老熟妇乱子伦牲交| 久久久精品94久久精品| 久久这里有精品视频免费| 97超视频在线观看视频| 久久国产精品男人的天堂亚洲 | 女的被弄到高潮叫床怎么办| 国产一区二区三区av在线| 国产精品伦人一区二区| 91aial.com中文字幕在线观看| 少妇 在线观看| 男人舔奶头视频| 国产精品一二三区在线看| 国产亚洲5aaaaa淫片| 水蜜桃什么品种好| 久久99一区二区三区| av女优亚洲男人天堂| 午夜福利网站1000一区二区三区| 男人和女人高潮做爰伦理| 欧美xxⅹ黑人| 亚洲国产色片| 亚洲精品自拍成人| 熟女人妻精品中文字幕| 久久久久国产网址| 国国产精品蜜臀av免费| 少妇的逼水好多| 十分钟在线观看高清视频www | 极品少妇高潮喷水抽搐| www.色视频.com| 在线观看人妻少妇| 日韩三级伦理在线观看| av在线老鸭窝| 97超视频在线观看视频| 少妇精品久久久久久久| 免费不卡的大黄色大毛片视频在线观看| 新久久久久国产一级毛片| 亚洲伊人久久精品综合| 久久精品国产亚洲av天美| 国产精品秋霞免费鲁丝片| 国产深夜福利视频在线观看| 久久精品国产自在天天线| 国产欧美日韩一区二区三区在线 | 亚洲激情五月婷婷啪啪| 狂野欧美白嫩少妇大欣赏| 91午夜精品亚洲一区二区三区| 国产亚洲一区二区精品| 搡女人真爽免费视频火全软件| 中文字幕制服av| 又大又黄又爽视频免费| 九九爱精品视频在线观看| 菩萨蛮人人尽说江南好唐韦庄| 日韩视频在线欧美| 一级a做视频免费观看| 亚洲丝袜综合中文字幕| 97在线视频观看| kizo精华| 久久精品久久精品一区二区三区| 三级经典国产精品| 成人无遮挡网站| 一级毛片黄色毛片免费观看视频| 国产精品一区www在线观看| 午夜日本视频在线| 丰满饥渴人妻一区二区三| 深夜a级毛片| 国产欧美日韩一区二区三区在线 | 少妇人妻一区二区三区视频| 免费看日本二区| 久久精品久久久久久噜噜老黄| 乱码一卡2卡4卡精品| 国产精品免费大片| 在线播放无遮挡|