999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

演化軟件的特征定位方法*

2016-09-20 09:00:31韓俊明
計算機與生活 2016年9期
關鍵詞:特征實驗方法

韓俊明,王 煒,2+,李 彤,2,何 云

1.云南大學 軟件學院,昆明 6500912.云南省軟件工程重點實驗室,昆明 650091

演化軟件的特征定位方法*

韓俊明1,王煒1,2+,李彤1,2,何云1

1.云南大學 軟件學院,昆明 650091
2.云南省軟件工程重點實驗室,昆明 650091

確定演化活動潛在影響的過程稱為特征定位。特征定位已經被公認為影響軟件演化項目成敗的一個關鍵因素,如何利用程序的領域知識促進特征定位的準確性已經成為當前研究的一個重要問題。該方法提取出軟件源代碼中的特征,并對提取后的特征進行主題分析,然后通過輸入查詢語句定位出被修改的源代碼。利用現有的開源軟件進行實驗,并將實驗結果與對應開源軟件的Benchmark進行對比,結果表明所提出方法的精確度有所提高,可以進行軟件特征的定位。實驗結果中,平均查全率達到69.16%和100%,平均查準率達到1.28%和2.43%,平均調和平均數達到2.50%和4.72%,性能較對比方法有較大的提高。

軟件演化;特征定位;主題模型;領域知識

1 引言

特征是指軟件系統中被需求所定義和被使用的一個功能[1]。建立軟件特征與源代碼之間映射關系的過程稱為特征定位[2]。特征定位是順利實現軟件演化意圖的前提之一。對于文檔缺失的中、大型軟件采用人工的方式實現特征定位幾乎是不可能的。文獻[1]指出特征定位存在“兩難”,即“高難度”和“高開銷”。面向大型軟件的可信演化活動常常由于無法迅速而準確地進行特征定位,導致演化效率低,甚至失敗。文獻[3-4]指出,在長生命周期軟件系統中,50%~75%的系統成本和花費用于軟件維護,其中一半以上的工作量用于特征定位。

1992年Wilde等人[5]提出的軟件勘測(software reconnaissance)技術是最早的特征定位方法之一。此后,學者們基于覆蓋執行[6]、基于依賴關系[7]和基于模型[8]分別提出了各自的動態特征定位方法[9]。動態定位方法能獲得比較高的查全率,但是狀態空間大,定位精度低,同時存在大量的噪聲數據。

靜態方法是對軟件源代碼的依賴關系和結構的靜態分析,并建立特征和代碼間的映射關系[2]。但該方法在使用過程中需要大量的人工搜索,同時具有較高的算法開銷和人工開銷。

動態和靜態方法都存在一定的缺陷,因此本文提出了利用主題模型來分析軟件源代碼,并進行特征定位的方法。

主題模型,最初研究成果是作為對自然語言進行處理的工具。目前,國內的相關研究成果主要是把主題模型用于自然語言處理,很少有人將主題模型與軟件源代碼進行結合研究。文獻[10]將主題模型用于處理軟件源代碼,主要是進行代碼功能的分析,通過分析結果可以幫助開發人員理解軟件功能和代碼的實現。而文獻[11]使用LDA(latent Dirichlet allocation)模型來進行中文軟件文檔和代碼的相關性分析,根據分析結果將軟件缺陷分配給相關人員去解決,并研究如何使用主題模型更好地提高軟件及代碼間語義相關性的提取效果。這些文獻并沒有將主題模型與軟件演化或特征定位進行結合研究。

本文的創新點和貢獻如下:

(1)對軟件演化方面的研究不再局限于理論上的論證,而嘗試使用實驗的方式進行特征定位的研究。

(2)將處理自然語言的主題模型用于分析軟件源代碼,并將分析結果用于軟件特征定位的研究工作。

(3)為了驗證本文提出的方法,使用了真實的軟件源代碼進行實驗,并與原有的特征定位方法進行對比,實驗結果表明本文方法具有普適性和較高的精確性。

(4)除主題模型本身的代碼外,文中所有實驗,從源代碼的特征提取、處理,到產生的實驗結果,均是由程序執行,并已經形成一整套的特征定位工具。

本文結構安排如下:第2章介紹軟件特征定位方法;第3章描述實驗所采用的軟件源代碼;第4章對實驗結果進行分析和討論;第5章對實驗進行總結,并探討未來的研究方向。

2 軟件特征定位方法

本文研究思路大致分為3個過程,如圖1所示:主題語料[12]獲取;主題建模;特征定位。3個過程具體步驟將在2.1~2.3節中介紹。

Fig.1 Feature location method圖1 軟件特征定位方法

2.1主題語料獲取

本文方法原始實驗數據為軟件的源代碼。源代碼中包含了很多文件信息,例如圖片、XML,甚至在代碼文件內都有符號、關鍵字等,這些信息對描述軟件功能的意義并不大,若直接采用源代碼進行實驗分析,就會存在大量無用的信息,實驗結果的精確度將會受到很大的影響。考慮到源代碼中很多都是信息量不大的代碼功能語句、關鍵字等,就需要對源代碼進行處理。根據文獻[13]中提到的內容“……源代碼中的變量名、函數名、類(對象)名、API函數、注釋等關鍵詞中蘊含了豐富的主題知識,可以通過其識別源代碼與特征之間的映射關系。”因此本文認為,能反映一個代碼模塊或一個類功能的是該代碼模塊或者該類中變量名、方法名和注釋,這就需要從源代碼中提取出變量名、方法名和注釋。

本文實驗數據的處理主要有以下4個步驟:

(1)通過相關的網站下載同一個軟件兩個不同版本的源代碼。

(2)提取出兩個版本軟件源代碼中的特征(本文主要是提取變量名、方法名和注釋),把提取后的特征以類為形成一個單獨文件的基本單位,并以該類所在的包的名字加上其類名對該文件進行命名。

(3)考慮到版本間的有些更新刪除了某些功能,為了提高結果的精確性,需要整合兩個版本的特征。因此在處理特征上,本文采取了將低版本中有而高版本中沒有的特征加入到高版本中。具體操作為:若低版本中有而高版本中沒有的文件,則直接把該文件拷貝到高版本中;若某個文件在低版本和高版本中均存在,則以行為基礎,找出低版本中有而高版本中沒有的行,加入到高版本的該文件中。

(4)預處理[14],去除停詞(類似“this”、“the”等)和詞根還原(例如將“broken”還原為“break”)。這樣可以減少文件的內容,提高了主題模型生成結果的精度。

表1為提取特征后部分文件名及其內容的示例。

Table 1 Sample of features in source code表1 源代碼特征示例

2.2主題建模

主題模型是在自然語言處理和機器學習領域,用來從一系列文檔中提取主題的一種概率統計模型。從更直觀的角度來理解,就是一篇文章會有一個中心思想,從而會有一些與該中心思想相關的詞匯頻繁出現。主題模型就試圖使用數學領域的框架來體現這種情況,主題模型會自動分析文檔,統計文檔內的詞匯信息,根據統計結果來確定文檔、主題和詞三者之間的關系。本文使用主題模型對文檔的生成過程進行模擬,再通過參數估計得到各個主題[15]。主題模型中,有一個重要的假設稱為詞袋假設,其具體內容是把文檔信息視為詞頻向量,并且不考慮詞與詞之間的順序。

LDA[16]是一種非監督機器學習方法。在LDA中,一個文檔被看作是一系列不同主題的集合,采用忽略詞間順序的詞袋方法把文檔視為詞頻的向量,這樣就把不能建模的文字信息轉換成為可以建模的數字信息。LDA主題模型包含了3層結構,分別為文檔、主題和詞匯,并且以概率的形式給出了文檔和主題、主題和詞匯之間的關系。

主題模型技術最早是由Blei等人[16]在2003年所提出,主要應用于自然語言處理或者信息檢索方面。主題模型是一種生成模型,描述了一種用以生成文檔的概率過程[17]。LDA認為[16],文檔是一系列的主題按照一定的概率生成的,而主題又是一組詞按照一定的概率生成的,因此對于一個文檔集D中的文檔d,LDA假設了如下的生成過程[16]:

通過對從源代碼中提取的特征采用主題模型進行建模后,可以得到主題和詞之間的概率模型。表2為生成的概率模型示例。

Table 2 Sample of probabilistic model表2 概率模型示例

如表2所示,主題Topic1包含了兩個單詞document 和model,每個單詞屬于Topic1的概率分別為0.025 和0.013。

2.3特征定位

選取一條更新報告,并對該條報告做過濾處理,利用上一步生成的概率模型,計算更新報告和每一個主題的相似度。對計算出來的相似度排序,根據排序結果,選取相似度最高的一個或多個主題所包含的主題詞,統計每一個特征文件中這些主題詞出現的次數和該文檔的總詞數,使用“出現率”這一指標來對所有特征文件進行排序,通過排序結果,確定哪些文件被修改,進而進行特征定位。

定義1使用ONT(occurrence numbers of topicwords)表示在一個文檔內主題詞出現的次數,使用TWD(total words in a document)表示該文檔的總詞數,則出現率(occurrence rate,OR)可定義如下:

3 實驗數據

數據是實驗最重要的一個部分,因此源數據的獲取情況直接關系到最終實驗結果的好壞。本文方法中,實驗數據是軟件的源代碼,為了保證實驗結果的可靠性和客觀性,同時也要提高實驗結果的精確性,就需要獲取到完整、有效的軟件源代碼。

對于需要獲取的軟件源代碼,本文考慮以下3點:首先,得到的軟件源代碼必須是完整、有效且合法的,獲取方法也必須是合法的。其次,該軟件需要有比較長的演化歷史,并且能夠獲取到兩個甚至是多個版本的源代碼。通過對比網上現有的開源軟件,最后決定使用ArgoUML(http://argouml-downloads.tigris.org/)0.20和0.22版本(使用的ArgoUML由Java編寫),并下載ArgoUML0.20-0.22版本Benchmark(http://www.cs.wm.edu/semeru/data/benchmarks/)用來驗證實驗結果。

在Benchmark中,有3個文件夾Queries、Traces和GoldSets。Queries中的內容是軟件版本更新說明,LongDescription是詳細描述,ShortDescription是概括性短語描述。Traces中為特征相關的執行跡,文件中記錄了特征對應的測試用例在執行過程中搜集到的源代碼調用信息。GoldSets記錄了與特征實際相關的源代碼,也就是在演化過程中哪些類被修改了。

4 實驗測試與結果分析

4.1JGibbLDA

本文方法使用的是由Java語言編寫的LDA主題模型建模程序JGibbLDA(http://jgibblad.sourceforge. net/)。按照JGibbLDA輸入文件格式的要求(第一行為輸入文檔的個數,其余每行代表一個文檔,行內容為文檔中的單詞,單詞間以空格分隔)形成一個文件,如表3所示。經過觀察發現,很多類的特征極少,若以一個類作為一個文檔可能會導致輸入的文檔數目過多,因此以一個包作為一個文檔進行整理。

在JGibbLDA程序運行前,需要設定一些參數才能讓程序運行,參數具體內容如表4所示。

Table 3 File format of input表3 輸入文件格式

Table 4 Parameters in JGibbLDA表4JGibbLDA中的參數

在這些參數中,α和β屬于超參數,目前暫時沒有很好的方法對這兩個參數的取值進行確定。根據文獻[18]中的研究結果,α和β對應的值可以設置為50/k(k為輸入文件內文檔的數量)和0.1。

4.2實驗結果文件內容

JGibbLDA實驗后,會出現5類后綴名不同的文件,其后綴名和內容如表5所示。

Table 5 Filename extension and its content表5 文件后綴名及其內容

4.3形成實驗結果

利用文件model-final.twords中的數據,形成最終的實驗結果需要以下5步:

(1)從開源軟件的Benchmark中選取一條更新報告,也做去除停詞和詞根還原的處理。

(2)假設參數ntopics和twords分別設置為N和T,生成N個T維的向量,并把這N個向量初始化為0。

(3)對這N個向量賦值,若主題m(0

(4)重復步驟(3)至這N個T維向量全部賦值完畢,然后針對第m個T維向量的值,與文件model-final. twords中第m個主題詞對應的值,進行計算兩個向量夾角余弦值操作,其中m=1,2,…,N。

(5)將計算出的余弦值降序排列,取前 j個主題的所有主題詞,在源代碼的特征文件中進行詞頻統計,并計算出現率。

4.4定義實驗標準

為了驗證本文方法的性能,需要使用某些度量標準來對結果進行度量和對比。本文采用在信息檢索中常用的查全率(Recall)和查準率(Precision)作為衡量指標,并通過這兩個指標來對輸出結果進行評價[9],具體定義如下。

定義2Recall表示查全率,correct代表所需查找的目標文件,retrieved代表使用定位方法查找出來的文件,則查全率的定義為:

定義3Precision表示查準率,correct代表所需查找的目標文件,retrieved代表使用定位方法查找出來的文件,則查準率的定義為:

查全率和查準率之間具有互逆的關系。在極端情況下,一個將文檔集合中所有文檔返回為結果集合的系統有100%的查全率,但是查準率卻很低(http: //baike.baidu.com/view/2126615.htm?fr=aladdin)。因此使用查全率和查準率的調和平均數F來評價方法的綜合性能。

定義4使用F代表查全率和查準率的調和平均數,Recall代表查全率,Precision代表查準率,則調和平均數定義為[9]:

4.5實驗結果

實驗使用了ArgoUML的0.20-0.22版本源代碼進行特征提取和處理,一共得到1 562個類和96個包,在用JGibbLDA處理時,alpha、beta、ntopics、niters、savestep和twords的值分別設置為0.528、0.1、30、1 000、100和50,選取夾角余弦值最高的5個主題的所有主題詞進行詞頻統計。

表6列舉了對ArgoUML做的實驗的查詢內容,查詢內容來自Benchmark中的ShortDescription。

Table 6 Query contents ofArgoUML表6ArgoUML查詢內容

文獻[9]的推薦方法,取出現率最高的10%~15%的源代碼計算查全率和查準率,并使用調和平均數來評價性能。而本文只取出現率最高的前5%進行計算。

表7為實驗結果統計,從統計數據來看,10組實驗結果,平均查全率為69.19%,平均查準率為1.28%,調和平均數的平均值為2.50%。

Table7 Query results ofArgoUML表7 ArgoUML查詢結果

文獻[12]是基于文本的特征定位技術,將其作為基線方法,在使用相同實驗數據的前提下,與本文方法對表6中的特征數據進行對比。基線方法的10組實驗,平均查全率為50.00%,平均查準率為1.02%,調和平均數的平均值為2.00%。基線方法與本文方法的查全率、查準率和調和平均數的具體數據對比分別如圖2、圖3和圖4所示。

從圖2、圖3和圖4中可以很明顯地看出,本文方法與基線方法進行對比,10組實驗中,3組高于基線方法,1組低于基線方法,其余6組與基線方法相同。可以觀察到,在高于基線方法的3組實驗(實驗3、5、10),基線方法的查全率和查準率都是0,而本文方法卻還可以查到,并且有比較理想的查全率和查準率。

Fig.2 Recall comparison圖2 查全率對比

Fig.3 Precision comparison圖3 查準率對比

在進行源代碼特征提取時,有一類詞在定位上起著關鍵作用,將其稱為組合詞,它是由兩個或多個普通的單詞組合起來形成的新單詞,類似于“getsourcefileinfo”。這類詞在人類的自然語言中是不會出現的,因此LDA在計算其屬于某主題概率時,并不會對其做特殊的處理,以示與普通單詞進行區分,而本文方法在提取特征時也沒有對這些組合詞進行分詞處理。然而,組合詞在軟件的源代碼中出現得很普遍,因為在編寫程序時,會用到這些詞匯表示一些重要或者復雜的信息,同時同一個組合詞在整個源代碼中出現的次數不會太多,所以利用組合詞可以再次提高定位的精確度。

將所選主題詞中的組合詞提取出來,在所有文件中統計這些組合詞的出現次數,并將出現次數降序排列。假設組合詞出現次數最少的目標文件排第N位,出現率最低的目標文件排第M位,則將前N個文件和前M個文件做交集處理,提取出它們的公共部分,這樣就能很大程度上提高定位的精確度。

表8為加入組合詞的結果統計,從統計數據來看,組合詞確實極大程度提高了定位的精確度。最好的情況下,可以過濾掉222個無關文件,最差能過濾掉2個文件。

Table8 Statistical results ofArgoUML within compound words表8 考慮組合詞的ArgoUML統計結果

表9為在考慮組合詞后,ArgoUML實驗結果。10組實驗數據,平均查全率為100%,平均查準率為2.43%,調和平均數的平均值為4.72%,較沒有考慮組合詞時的實驗和基線方法,都有了明顯的提升。基線方法、本文方法和考慮了組合詞的查全率、查準率和調和平均數的具體數據對比分別如圖5、圖6和圖7所示。

Table 9 Experimental results ofArgoUML within compound words表9 考慮組合詞的ArgoUML實驗結果

從圖5、圖6和圖7中可以很明顯地看出,在考慮了組合詞后,查全率、查準率和調和平均數都有了比較大的提高。在只取出現率最高的前5%源代碼進行計算時,具體平均數據如表10所示。

Fig.5 Recall comparison within compound words圖5 考慮組合詞的查全率對比

Fig.6 Precision comparison within compound words圖6 考慮組合詞的查準率對比

Fig.7 F-measure comparison within compound words圖7 考慮組合詞的調和平均數對比

Table 10 Recall,precision and F-measure comparison表10 查全率、查準率和調和平均數對比

本文只取前5%的源代碼進行比較,并利用組合詞進一步提高了定位的精確度。通過表10可以看出,本文方法在平均查全率、平均查準率和調和平均數的平均值上,均明顯高于基線方法。

5 實驗總結及未來研究方向

軟件演化是否與演化目的相符合,或者是否確實進行了演化,一直是軟件演化領域一個重要的研究方向,過去對軟件演化的研究大多都是在理論上的推演。為了能夠在軟件演化領域有所突破和創新,希望能夠利用實驗數據來進行軟件演化的特征定位,因此本文提出了一種基于主題模型LDA的軟件演化被修改代碼定位方法,并開發出了一整套本文方法所使用的定位工具。通過對ArgoUML源代碼進行分析和實驗,證明了本文方法的高效性。

由于LDA本身是用于處理人類自然語言的工具,將其應用于處理軟件代碼勢必會帶來一些問題。通過研究發現,以下兩點對本文實驗結果存在著影響:

(1)將一條更新報告作為查詢語句進行定位,要想獲得比較理想的實驗結果,對該條更新報告的內容有比較高的要求。首先,這條信息要能很客觀、直接地描述出修復了什么Bug或Defect;其次,描述所修復的最好是代碼層面上的改動,若是軟件的圖標或其他非功能上的改動則本方法效果不佳;再次,描述修復的Bug或Defect,需要是實驗使用的兩個版本中在低版本發現而在高版本被修復的,例如某些Bug 或Defect是兩個版本間的一些測試版發現或修復的,則實驗結果不會很理想。

(2)使用JGibbLDA對語料進行處理時,需要輸入一些參數,每一個參數的設置對實驗結果都有著極大的影響。

LDA作為一種機器學習方法,研究之初就是為了將其應用于處理自然語言方面的問題,本文方法將其應用于軟件演化領域本身是一次創新。對本文方法進行了實驗,結果證明嘗試是成功的,但是也存在著一些問題,這些問題將會成為以后的研究方向:首先,如何設置JGibbLDA的參數,特別對于兩個超參數α和β,目前國內外還沒有研究出一種帶理論依據的方法提供指導,其值的設置都是憑借人工經驗;其次,對原始語料既源代碼的處理,是否還需要使用其他方法進行處理以提高結果的精確度;再次,需要通過一定的方法來確定一個詞是否為組合詞;同時,還將對本文開發的定位工具進行擴展以支持更多語言的源代碼,并繼續研究LDA是否還能應用于計算機其他研究領域。

References:

[1]Poshyvanyk D,Guéhéneuc Y G,Marcus A,et al.Feature location using probabilistic ranking of methods based on execution scenarios and information retrieval[J].IEEE Transactions on Software Engineering,2007,33(6):420-432.

[2]Dit B,Revelle M,Gethers M,et al.Feature location in source code:a taxonomy and survey[J].Journal of Software Evolution and Process,2013,25(1):53-95.

[3]Li Tong.An approach to modelling software evolution processes[M].Berlin:Springer,2008.

[4]Seacord R C,Plakosh D,Lewis G A.Modernizing legacy systems:software technologies,engineering processes,and business practices[M].Boston,USA:Addison-Wesley Longman Publishing Co,2003.

[5]Wilde N,Gomez JA,Gust T,et al.Locating user functionality in old code[C]//Proceedings of the 1992 Conference on Software Maintenance,Orlando,USA,Nov 9-12,1992.Piscataway,USA:IEEE,1992:200-205.

[6]Wong W E,Wei Tingting,Qi Yu,et al.A crosstab-based statistical method for effective fault localization[C]//Proceedings of the 2008 1st International Conference on Software Testing,Verification,and Validation,Lillehammer,Apr 9-11,2008.Piscataway,USA:IEEE,2008:42-51.

[7]Baah G K,Podgurski A,Harrold M J.The probabilistic program dependence graph and its application to fault diagnosis[J].IEEE Transactions on Software Engineering,2010, 36(4):528-545.

[8]Xu Baowen,Nie Changhai,Shi Liang,et al.A software failure debugging method based on combinatorial design approach for testing[J].Chinese Journal of Computers,2006, 29(1):132-138.

[9]Ju Xiaolin,Jiang Shujuan,Zhang Yanmei,et al.Advanced in fault localization techniques[J].Journal of Frontiers of Computer Science and Technology,2012,6(6):481-494.

[10]Li Meng,Zhao Junfeng,Xie Bing.Obtaining functional topics from source code based on topic modeling and static analysis[J].Scientia Sinica:Informationis,2014,44(1):54-69.

[11]Xu Yebing,Liu Chao.Research on retrieval methods for traceability between Chinese documentation and source code based on LDA[J].Computer Engineering and Applications,2013,49(5):70-76.

[12]Marcus A,Sergeyev A,Rajlich V,et al.An information retrieval approach to concept location in source code[C]//Proceedings of the 11th Working Conference on Reverse Engineering,Delft,Netherlands,Nov 8-12,2004.Piscataway,USA: IEEE,2004:214-223.

[13]He Yun,Wang Wei,Li Tong,et al.Behaviour and topic oriented software feature location method[J].Journal of Frontiers of Computer Science and Technology,2014,8(12): 1452-1462.

[14]Linares-Vásquez M,McMillan C,Poshyvanyk D,et al.On using machine learning to automatically classify software applications into domain categories[J].Empirical Software Engineering,2014,19(3):582-618.

[15]Xu Ge,Wang Houfeng.The development of topic models in natural language processing[J].Chinese Journal of Computers,2014,34(8):1423-1436.

[16]Blei D M,Ng A Y,Jordan M I.Latent Dirichlet allocation[J]. Journal of Machine Learning Research,2003,3:993-1022.

[17]Steyvers M,Griffiths T.Probabilistic topic models[M]//Latent Semantic Analysis.New Jersey:Lawrence Erlbaum Associates,2007:424-440.

[18]Griffiths T,Steyvers M.Finding scientific topics[J].Proceedings of the National Academy of Sciences of the United States ofAmerica,2004,101:5228-5235.

附中文參考文獻:

[8]徐寶文,聶長海,史亮,等.一種基于組合測試的軟件故障調試方法[J].計算機學報,2006,29(1):132-138.

[9]鞠小林,姜淑娟,張艷梅,等.軟件故障定位技術進展[J].計算機科學與探索,2012,6(6):481-494.

[10]李萌,趙俊峰,謝冰.基于主題建模和靜態分析技術的軟件代碼功能性主題獲取方法[J].中國科學:信息科學, 2014,44(1):54-69.

[11]許冶冰,劉超.基于主題的文檔與代碼間關聯關系的提取研究[J].計算機工程與應用,2013,49(5):70-76.

[13]何云,王煒,李彤,等.面向行為主題的軟件特征定位方法[J].計算機科學與探索,2014,8(12):1452-1462.

[15]徐戈,王厚峰.自然語言處理中主題模型的發展[J].計算機學報,2014,34(8):1423-1436.

HAN Junming was born in 1988.He is an M.S.candidate at Yunnan University.His research interests include software engineering,software evolution and data mining.

韓俊明(1988—),男,云南文山人,云南大學碩士研究生,主要研究領域為軟件工程,軟件演化,數據挖掘。

WANG Wei was born in 1979.He received the Ph.D.degree in system analysis and integration from Yunnan University in 2009.Now he is an associate professor at Yunnan University,and the member of CCF.His research interests include software engineering,software evolution and data mining.

王煒(1979—),男,云南昆明人,2009年于云南大學系統分析與集成專業獲得博士學位,現為云南大學副教授,CCF會員,主要研究領域為軟件工程,軟件演化,數據挖掘。發表學術論文15篇,出版教材1部,主持省部級項目5項。

LI Tong was born in 1963.He received the Ph.D.degree in software engineering from De Montfort University in 2007.Now he is a professor and Ph.D.supervisor at Yunnan University,and the senior member of CCF.His research interests include software engineering and information security.

李彤(1963—),男,河北石家莊人,2007年于英國De Montfort大學軟件工程專業獲得博士學位,現為云南大學軟件學院院長、教授、博士生導師,CCF高級會員,主要研究領域為軟件工程,信息安全。發表學術論文100余篇、專著2部、教材5部,主持國家級項目5項、省部級項目14項、其他項目20余項。

HE Yun was born in 1989.He is an M.S.candidate at Yunnan University,and the student member of CCF.His research interests include software engineering,software evolution and data mining.

何云(1989—),男云南建水人,云南大學碩士研究生,CCF學生會員,主要研究領域為軟件工程,軟件演化,數據挖掘。

Feature Location Method of Evolved Software?

HAN Junming1,WANG Wei1,2+,LI Tong1,2,HE Yun1
1.College of Software,Yunnan University,Kunming 650091,China
2.Key Laboratory for Software Engineering of Yunnan Province,Kunming 650091,China
+Corresponding author:E-mail:wangwei@ynu.edu.cn

HAN Junming,WANG Wei,LI Tong,et al.Feature location method of evolved software.Journal of Frontiers of Computer Science and Technology,2016,10(9):1201-1210.

Feature location is the process that confirms the potential influence in software evolution.Feature location is a recognized critical factor that decides success or failure in evolution,and how to use domain knowledge to promote accuracy in feature location becomes an important problem in current research.This method extracts the features in the software source code,and analyzes the features by topic model,then inputs update report as a query to locate which source code has been changed.This paper makes experiments with open source software,then compares experimental results with the benchmark of the open source software,correlation results indicate that this method has higher accuracy and universality,and can verify software evolution.The average of recall can achieve 69.16%and 100%,the average of precision can achieve 1.28%and 2.43%,the average of harmonic mean can achieve 2.50%and 4.72%.The experimental results show that the performance is better than that of baseline.

software evolution;feature location;topic model;domain knowledge

2015-07,Accepted 2015-09.

*The National Natural Science Foundation of China under Grant Nos.61462092,61262024,61379032(國家自然科學基金);the Key Project of Natural Science Foundation of Yunnan Province under Grant No.2015FA014(云南省自然科學基金重點項目);the Natural Science Foundation of Yunnan Province under Grant No.2013FB008(云南省自然科學基金).

CNKI網絡優先出版:2015-09-28,http://www.cnki.net/kcms/detail/11.5602.TP.20150928.1033.002.html

A

TP311.5

猜你喜歡
特征實驗方法
記一次有趣的實驗
如何表達“特征”
做個怪怪長實驗
不忠誠的四個特征
當代陜西(2019年10期)2019-06-03 10:12:04
抓住特征巧觀察
NO與NO2相互轉化實驗的改進
實踐十號上的19項實驗
太空探索(2016年5期)2016-07-12 15:17:55
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚
主站蜘蛛池模板: 欧美.成人.综合在线| 9999在线视频| av在线手机播放| 国产成人1024精品| 国产幂在线无码精品| 久久人妻xunleige无码| 人妻21p大胆| 无遮挡国产高潮视频免费观看 | 亚洲中久无码永久在线观看软件| 青青青国产视频| 一本一道波多野结衣av黑人在线| 亚洲国产欧美中日韩成人综合视频| 国产精品精品视频| 福利在线一区| 久久久亚洲色| 久无码久无码av无码| 狠狠色丁婷婷综合久久| 色有码无码视频| 狠狠色丁婷婷综合久久| Jizz国产色系免费| 国产尤物在线播放| A级毛片高清免费视频就| 国产成人区在线观看视频| 国产尹人香蕉综合在线电影| 久久精品日日躁夜夜躁欧美| 日韩精品一区二区深田咏美| 国产一二视频| 99国产精品国产| 亚洲精品卡2卡3卡4卡5卡区| 亚洲毛片网站| 国产极品美女在线| 在线免费观看AV| 久操中文在线| 亚洲国产成人综合精品2020| 亚洲永久视频| 老司机久久精品视频| a级毛片免费看| 九色在线观看视频| 亚洲美女视频一区| 日韩av手机在线| 亚洲最大福利网站| a级高清毛片| 在线免费a视频| 谁有在线观看日韩亚洲最新视频| 992Tv视频国产精品| 午夜国产精品视频黄| 中文字幕天无码久久精品视频免费 | 国产欧美视频在线观看| 国产在线精品人成导航| 丁香五月婷婷激情基地| 狠狠做深爱婷婷综合一区| 日韩在线欧美在线| 国产欧美视频在线| 国产jizz| 欧美翘臀一区二区三区| 国产精品无码AV中文| 国产精品免费福利久久播放| 国产成人成人一区二区| 九九九精品成人免费视频7| 日本人妻丰满熟妇区| 欧美综合成人| 中文字幕在线看视频一区二区三区| 亚洲首页在线观看| 亚洲国产AV无码综合原创| 欧美国产视频| 亚洲男人的天堂久久精品| 欧美精品成人一区二区视频一| 免费国产在线精品一区| 超碰91免费人妻| 91啪在线| 99免费在线观看视频| 亚洲中文字幕无码mv| 国产美女自慰在线观看| 日本精品一在线观看视频| 亚洲第一极品精品无码| 亚洲欧美人成人让影院| 亚洲成网777777国产精品| 91成人在线观看| 国产麻豆aⅴ精品无码| 99精品视频在线观看免费播放| 在线亚洲天堂| 国产无码精品在线|