1006大設(shè)計(jì)翻譯版軟件與代碼相關(guān)性分析工具改進(jìn)_第1頁(yè)
1006大設(shè)計(jì)翻譯版軟件與代碼相關(guān)性分析工具改進(jìn)_第2頁(yè)
1006大設(shè)計(jì)翻譯版軟件與代碼相關(guān)性分析工具改進(jìn)_第3頁(yè)
1006大設(shè)計(jì)翻譯版軟件與代碼相關(guān)性分析工具改進(jìn)_第4頁(yè)
1006大設(shè)計(jì)翻譯版軟件與代碼相關(guān)性分析工具改進(jìn)_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余63頁(yè)可下載查看

付費(fèi)下載

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

ImprovementonQESTA1.0:aToolon yzingtheTraceabilityamong ationandSourceCodeAuthor:ZHU LIUTheemergingdevelopmentofsoftwaresystems,withunprecedentedscaleandcomplexityofsoftware esmoreandmorelarge.Theinternalassociationcharacteristicsinlarge-scalesoftwaresystems eincreasinglyimportance.Astwoimportantcomponentsofsoftware, sandsourcecodehavesomeassociation.Establishingtraceabilitybetween sandsourcecodecanimprovethequalityofthesoftwaresystem.Thetraceabilityisalsousedforsystemmaintenanceandevaluation.Traceabilityallowsthesystemtobebetterunderstoodandaccepted.Inthemeanwhile,makingtherelationshipsmoreTherearesometechnologiesincorrelationysis,suchas(LatentDirichletAllocation)LDA,(LatentSemanticIndex)LSI.LDAisatopic-basedcorrelationysis.Itusessomespecific todeterminethetopicofaparagraphoftextfromalltheationsorsourcecode,andthencalculatecorrelationamongthemaccordingtothecorrelationamongtopics.AnothercommonlyusedtechnologyisLSI,itgetsthecorrelationcalculatingthefeatureAfterextensivesurvey,wefoundthatsynonymsandmeaningbasedwordfamilyexistincorrelationcalculationbycalculatingthefeaturematrix.Itiscommonthatwewillusesynonymsorsimilarwordsorabbreviationstoexpressthesamemeaninthedifferentpart.Andtherearemanysimilarwordsinthe.Weshoulddealwiththem,ratherthanignoretherelationbetweensimilarthosewords.Thisthesis’sresearchbasedonQESTA1.0,whichdidnotdealwithsynonymsorsimilarwordsanddidnothaveanyresultinterface.Thusinthisthesis,someenhancingmethodareproposedintheimprovedversionnamedQESTA1.1.ThenexperimentsareprovidedtodemonstratetheimprovementsonMeanwhile,ysisbetweentopic-relatedwordsandcommonwordsareconducted.Theresultindicatesthattheprocessingofsynonymsandsimilarwordsimprovetherecallandprecisioninysisbetweensoftwaresandsourcecode.:Software,SourceCode,Correlation,Synonyms,Meaning-basedWordFamily,Visualization 緒 研究背 國(guó)外研究現(xiàn) 國(guó)內(nèi)研究現(xiàn) 現(xiàn)在研究存在的不 研究目標(biāo)與內(nèi) 研究目 研究?jī)?nèi) 課題來(lái) 的組織結(jié) 相關(guān)技術(shù)介 文本預(yù)處理技 相關(guān)性分析技 同義詞詞 Java文件操作技 本章小 系統(tǒng)改進(jìn)詳細(xì)設(shè) 改進(jìn)需 設(shè)計(jì)原 系統(tǒng)總體架構(gòu)設(shè) 系統(tǒng)功能模塊詳細(xì)設(shè) 同義詞處理模塊設(shè) 同類詞處理模塊設(shè) 結(jié)果展示模塊設(shè) 實(shí)驗(yàn)數(shù)據(jù)分 數(shù)據(jù)庫(kù)設(shè) 本章小 改進(jìn)部分具體實(shí) 系統(tǒng)開(kāi)發(fā)環(huán)境和技術(shù)基 運(yùn)行環(huán) 開(kāi)發(fā)環(huán) 實(shí)現(xiàn)概 buaa.sei.zkf.action包實(shí) buaa.sei.zkf.display包的實(shí) 數(shù)據(jù)庫(kù)的設(shè) 詞 領(lǐng)域相關(guān) 工作表 詞量統(tǒng)計(jì)表 替換情況表 本章小 QESTA1.1實(shí)驗(yàn)及分 實(shí)驗(yàn)環(huán) 功能實(shí) 實(shí)驗(yàn)?zāi)?實(shí)驗(yàn)過(guò) 實(shí)驗(yàn)總結(jié)與分 《EasyPost》項(xiàng)目查全查準(zhǔn)率實(shí) 實(shí)驗(yàn)?zāi)?實(shí)驗(yàn)過(guò) 實(shí)驗(yàn)總結(jié)與分 《推箱子》項(xiàng)目查全查準(zhǔn)率實(shí) 實(shí)驗(yàn)?zāi)?實(shí)驗(yàn)過(guò) 實(shí)驗(yàn)總結(jié)與分 領(lǐng)域詞分析實(shí) 實(shí)驗(yàn)?zāi)?實(shí)驗(yàn)過(guò) 實(shí)驗(yàn)總結(jié)和分 本章小 總結(jié)與展 工作總 工作展 致 參考文 緒幫助提高軟件系統(tǒng)的質(zhì)量。軟件產(chǎn)品的追蹤鏈能夠被用于軟件系統(tǒng)的和評(píng)估;能夠軟件開(kāi)檔是軟件開(kāi)發(fā)過(guò)程、使用過(guò)程以及軟件中的必備資料。良好的軟件處理過(guò)程中將文檔作為檢索庫(kù),而軟件的源代碼則作為檢索條件,然后進(jìn)行匹配,通過(guò)一系列算法,得出匹配結(jié)果。之前很多研究者采用信息檢索的方法來(lái)分析軟件文檔和代碼之間的相關(guān)性,并利用這個(gè)相關(guān)性來(lái)建立文檔和代碼之間的追蹤鏈。利用這種方法來(lái)預(yù)測(cè)、聚類、分類、統(tǒng)計(jì)分析等技術(shù)來(lái)對(duì)這些潛在信息進(jìn)行分析,然后發(fā)現(xiàn)其中的相關(guān)最開(kāi)始使用IR技術(shù)(Infrmationtrievl提取軟件文檔與源代碼的關(guān)聯(lián)關(guān)系的是Antoniol等人[]。首先,他們對(duì)要分析的軟件文檔和軟件代碼進(jìn)行文本處理,得到一系列的詞匯,然后利用IR技術(shù)處理、分析中得到的詞匯,再采用IR技術(shù)中的向量空間模型以及概率模型分別來(lái)計(jì)算軟件文檔和軟件源代碼之間的相似度,然后把得到的文本的相似度值近似認(rèn)為是軟件文檔和源代碼之間的相關(guān)程度。據(jù)此,分別采用這兩種模型,設(shè)計(jì)了相應(yīng)的實(shí)驗(yàn),實(shí)驗(yàn)表明兩種模型都比較適合用來(lái)提取源代碼和軟件文檔間的關(guān)聯(lián)關(guān)系。其中實(shí)驗(yàn)中表明概率模型得出的效果更好。文獻(xiàn)[3][4]中,Antoniol等人分析方法存在一定的缺陷,比如實(shí)驗(yàn)結(jié)果顯示,該方法得到的查全率以及查準(zhǔn)率存在的一定的問(wèn)題,AndrianMarcus等人針對(duì)這個(gè)問(wèn)題,提出采用潛在語(yǔ)義索引(LatentSemanticIdexing,LSI)的方法計(jì)算軟件文檔和軟件源代碼的相似度,這種方法在一定程度上消除了語(yǔ)義信息的影響,即解決了匹配有時(shí)候無(wú)法真實(shí)的反應(yīng)語(yǔ)義的問(wèn)題。但是,在對(duì)軟件文檔和軟件源代碼進(jìn)行相關(guān)度分析時(shí),AntoniolAndrianrus等人所使用的方法都將軟件文檔和源代碼作為一般的文本進(jìn)行處理,沒(méi)有考慮軟件文檔和源代碼中存在的一些固有特點(diǎn),如文檔中的章節(jié)結(jié)構(gòu),代碼中的類、方法等結(jié)構(gòu)。針對(duì)這個(gè)問(wèn)題lelndHungJ等人在文獻(xiàn)[5][]中提出利用文檔和代碼間的特點(diǎn)來(lái)進(jìn)行動(dòng)態(tài)需求,從而在概率模型的基礎(chǔ)上提出了3種增強(qiáng)策略。實(shí)驗(yàn)表明,不同的增強(qiáng)策略都可以在相同查全率的情況下一定程度的提高查準(zhǔn)率。在提高查全率和查準(zhǔn)率的方法中,有多種提高方法,其中較為常見(jiàn)的方法包括基于類繼承關(guān)系的聚類分析、基于文檔類型的分類搜索、代碼縮寫(xiě)詞擴(kuò)展、代碼特征項(xiàng)分類和引入相似度辭典等。這些方法在一定程度上都提高了分析結(jié)果的查全在信息檢索方法的基礎(chǔ)上,也有使用了平滑過(guò)濾器(SmoothingFiltr)來(lái)減少軟件產(chǎn)品中噪聲的影響[9]。文中平滑過(guò)濾器的使用能夠顯著提高向量空間模型(VS)和潛在語(yǔ)義索引模型(SI)[10][15]。也有人提出了建議索引策略,這也是提高查全查準(zhǔn)率的一種重要的技術(shù)補(bǔ)充。另外,也有研究者受Web信任模型的啟發(fā)提出了一種名為Trustrace的方法來(lái)提高可追蹤鏈的查全率和查準(zhǔn)率[13]。在國(guó)內(nèi),對(duì)中文軟件文檔與源代碼間的相關(guān)性的研究還比較少,所以這一方面的研究成果相對(duì)比較少。有一位浙江大學(xué)的博士采用Antoniol方法實(shí)現(xiàn)了代碼和中文文檔關(guān)聯(lián)信息的自動(dòng)提取[15]。北航軟件所軟件可追蹤性研究課題組(QESTA課題組)對(duì)該領(lǐng)域也進(jìn)行了研究。主要內(nèi)容如下:使用Lucene的je-ysis組件將與中文相關(guān)的一些自然語(yǔ)言處理技術(shù)運(yùn)用到文檔與代碼間可追蹤性研究中,如中文分詞技術(shù)、去除停用詞(的,我,他,啊等)、中英文翻譯等,把這些技術(shù)用到文本預(yù)處理中,有助于提高后續(xù)計(jì)算過(guò)程的效率和準(zhǔn)確性[18]。在潛在語(yǔ)義模型的基礎(chǔ)上融入了軟件文檔和程序代碼之間的結(jié)構(gòu)特點(diǎn),提出了基于類繼承關(guān)系的代碼聚類、代碼特征項(xiàng)分類、引入相似度詞典、基于文檔類型的分類搜索、將文檔按類型分層以實(shí)現(xiàn)相關(guān)反饋等改進(jìn)策略,有助于提高檢索系統(tǒng)的查全率和查準(zhǔn)率[17]。QESTA1.0是根據(jù)提取軟件文檔和軟件源代碼兩者的基本成分和結(jié)構(gòu)信息QESTA1.1提供的同義詞進(jìn)行人為檢查,提高同義詞替換的準(zhǔn)確術(shù)語(yǔ)名規(guī)則等。主要包括以下研究?jī)?nèi)容:QESTA1.1在同義詞替換過(guò)程中加入用戶識(shí)別,由用戶最終確定是否進(jìn)行替換,QESTA1.1在計(jì)算相關(guān)度時(shí)將查詢兩個(gè)特征詞是否為同類詞。如果是,將對(duì)它們QESTA1.0的人機(jī)交互界面QESTA1.1的人機(jī)交互界面中,用戶可以根據(jù)利用QESTA1.1,對(duì)實(shí)驗(yàn)樣本進(jìn)行實(shí)驗(yàn)、分析。實(shí)驗(yàn)樣本為北航2010級(jí)《面向?qū)Γ≦ESA1.0的改進(jìn),并且在改進(jìn)后進(jìn)行一系列QESTA1.0和QESTA1.1的對(duì)比分析實(shí)驗(yàn)。通過(guò)五個(gè)第一章緒論本章設(shè)計(jì)了兩組實(shí)驗(yàn)。第一組是進(jìn)行功能性驗(yàn)證實(shí)驗(yàn),即針對(duì)研究目標(biāo),對(duì)QESTA1.1進(jìn)行功能性驗(yàn)組是對(duì)QESTA1.1和QESTA1.0的分析結(jié)果進(jìn)行比較,相關(guān)技術(shù)本章將分別對(duì)從QESTA1.1改進(jìn)相關(guān)的文本預(yù)處理技術(shù),相關(guān)性分析方法,同義詞林,Javaword4個(gè)方面的相關(guān)技術(shù)進(jìn)行介紹。第一,介紹文本預(yù)處理技術(shù),是哈爾濱工業(yè)大學(xué)的研究成果。第四,將對(duì)結(jié)果展示部分需要用到的Jacob進(jìn)行介紹。QESTA1.1的作用是實(shí)現(xiàn)軟件文檔和軟件源代碼之間的相關(guān)度分析,并且根據(jù)相關(guān)分詞技術(shù):分詞(WordSegmentation)面,本文主要涉及到中文分詞(ChineseWordSegmentation),中文分詞[21]是指將一段QESTA1.1在進(jìn)行文本預(yù)處理用到了雙向最大匹配法。根據(jù)中文單詞組成單詞的特點(diǎn),將句子中遇到的單詞配平最大,例如“我人”,將分解成“我”、“是”、“”三個(gè),而不是“我”、“是”、“中國(guó)”、“人”四個(gè)詞。分段技術(shù):QESTA1.1在進(jìn)行分析軟件文檔和代碼的相關(guān)度時(shí),會(huì)將軟件文檔分成較小的文檔段。QESTA1.1分段方法主要根據(jù)文檔的結(jié)構(gòu)和字?jǐn)?shù),文檔結(jié)構(gòu)主要由章節(jié)、分段等區(qū)分,文檔分段設(shè)定了最小字?jǐn)?shù)和最大字?jǐn)?shù)。從而防止每個(gè)文檔分段的字?jǐn)?shù)過(guò)多或者過(guò)少影響相關(guān)度的計(jì)算。停用詞處理:在信息檢索中,為提高搜索效率和節(jié)省空間,搜索引擎在處理搜索請(qǐng)求或索引頁(yè)面時(shí)會(huì)自動(dòng)忽略某些字或詞,這些字或詞即被稱為StopWords(停用詞)。這些詞主要有兩類。其中一類為廣泛使用的、幾乎每個(gè)文檔都會(huì)出現(xiàn)的詞,例如“你”、“我”、“他”等,這些詞在每個(gè)文檔段中常常出現(xiàn),如果對(duì)其進(jìn)行處理,一方面會(huì)大大增加算法的時(shí)間復(fù)雜度和空間復(fù)雜度、降低工具的運(yùn)行效率。另一方面,由于這類詞所指代的對(duì)象不明確,但大多是指代在其之前出現(xiàn)的某個(gè)特定的對(duì)象,而與其它文本段中的代詞無(wú)關(guān),因此保留這些代詞可能會(huì)影響文本間關(guān)聯(lián)性的計(jì)算。還有一些常用的助詞、副詞、介詞、連詞或動(dòng)詞。例如“的”,“和”,“在”、“要”、“是”、“就”等。由于這些詞在大量的句式中都會(huì)出現(xiàn),因此會(huì)“強(qiáng)化”文本段之間的相關(guān)性,而由這些一般性詞匯的使用引起的相關(guān)性,并不是所需要的。因此,在進(jìn)行文本處理時(shí)也應(yīng)當(dāng)被過(guò)濾掉。從而減小工具對(duì)軟件文檔和源代碼相關(guān)度的分析時(shí)間,并提高相關(guān)性分析的辨識(shí)度。英文翻譯技術(shù):在對(duì)程序源代碼進(jìn)行處理時(shí)將涉及到英文翻譯成中文的處理,即將用英文字母組成的標(biāo)識(shí)符分解成若干英文單詞(或縮寫(xiě)詞)之后,需要將其翻譯成文檔中具有相同含義的中文詞。QESTA1.1采用了兩種翻譯方法:第一種是根據(jù)在文檔中建立的包含有中英文詞對(duì)照的數(shù)據(jù)詞典來(lái)翻譯;第二,如果該詞不存在于數(shù)據(jù)詞典中,那么將利用通用的中英文詞典進(jìn)行翻譯?,F(xiàn)在相關(guān)性分析技術(shù)主要為IR技術(shù)(Infomationtrievl)[]這項(xiàng)技術(shù)是由Antoniol等人首先。首先,他們對(duì)要分析的軟件文檔和軟件代碼進(jìn)行文本處理,得到一系列單獨(dú)的詞匯,然后利用IR技術(shù)處理、分析得到的單獨(dú)詞匯,采用IR技術(shù)中的向量空間模型和概率模型分別計(jì)算軟件文檔和軟件源代碼之間的相似度,把得到的文本相似度值近似為軟件文檔和源代碼的相關(guān)程度。lelndHung等人利用了軟件文檔和軟件源代碼的特點(diǎn)來(lái)進(jìn)行動(dòng)態(tài)需求,從而在概率模型的基礎(chǔ)上提出了3種增強(qiáng)策略[5][6]。之后北航軟件工程所的相關(guān)研究在潛在語(yǔ)義模型的基礎(chǔ)的類搜、碼征項(xiàng)類、入相度典、文按型分以現(xiàn)8]2.1類12個(gè),中類有97個(gè),小類有1,400個(gè)。每個(gè)小類里都有很多的詞,這些詞有根據(jù)詞義的遠(yuǎn)近和相關(guān)性分成了若干個(gè)詞群(段落。每個(gè)段落中的詞語(yǔ)又進(jìn)一步52.1。根據(jù)樹(shù)狀層級(jí),越下面詞“Ae13B01=學(xué)生生學(xué)員學(xué)童桃李學(xué)習(xí)者”中的“Ae13B01”這組詞匯是編碼。其表示第4級(jí),詞群;“01”表示第4級(jí),原子詞群;“=”表示后面的詞匯屬于統(tǒng)一關(guān)圖2.2所示。2.2增加標(biāo)記來(lái)分別代表著幾種情形。詞林編碼結(jié)構(gòu)如圖2.3所示。2.3JACOB的解釋是JavaCOMBridge,即Java和COM組件間的橋梁。它在運(yùn)行Office提供的宏之外,沒(méi)有其他方式能對(duì)Office進(jìn)行直接的操作。在DLL中的一組或多組相關(guān)的函數(shù)存取組件數(shù)據(jù),總的合稱為接的功能,KaiRuhl[20]JavaCOM之間的橋梁。通過(guò)Jacob來(lái)操作Office文件。import publicclassprivateDispatchdoc;wordprivatebooleansaveOnExit=privateDispatchs;//所有word文檔集合 ponentword;//word運(yùn)行程序?qū)ο髉rivateDispatchselection;//選定的范圍或插入點(diǎn){openclose}//打開(kāi)wordpublicvoidopen(String{closedoc=Dispatch.call(s,"Open",selection=Dispatch.get(word,}//關(guān)閉當(dāng)前wordpublicvoid ()if(doc!={Dispatch.call(doc,Dispatch.call(doc,"Close",newVariant(saveOnExit));doc=null;}}//釋放word文檔操作進(jìn)publicvoid{}}JavaJava在文件讀入上主要涉及File類,InputStreamReader類,F(xiàn)ileInputStream類,BufferedReader類。文件輸出上主要涉及FileOutputStreamWriter類,OutputStreamWriter類。由于文件有多種編碼格式,并且不同平臺(tái)下的默認(rèn)文件編碼格上都能運(yùn)行本工具,在涉及文件操作上強(qiáng)制使用UTF-8格式。本章主要介紹了本次畢設(shè)所用工具涉及到的主要技術(shù)。2.1節(jié)主要分析了目前文本預(yù)處理技術(shù)的發(fā)展情況,使用的主要方法、思想方式等。2.2節(jié)主要介紹了不同文本內(nèi)容之間相關(guān)性分析方法的發(fā)展情況以及相關(guān)技術(shù)。2.3節(jié)主要介紹了哈爾濱工業(yè)大學(xué)所用詞林的結(jié)構(gòu),使用原理等。2.4節(jié)主要介紹了Jacob相關(guān)內(nèi)容以及操作方法。2.規(guī)范化原則:Java編程是面向?qū)ο缶幊?,所以在進(jìn)行工作時(shí)應(yīng)該符合面向?qū)ο?QESTA1.0的改進(jìn)中有多個(gè)地方涉及到人機(jī)交互,比如近義詞處理設(shè)計(jì)、界面展示優(yōu)化、數(shù)據(jù)設(shè)計(jì)四個(gè)部分詳細(xì)介紹。QESTA1.0系統(tǒng)方案如3.1所示,QESTA1.13.2了減少用戶在同義詞替換選擇的工作量,專門設(shè)計(jì)了領(lǐng)域相關(guān)的同義詞匯替換表當(dāng)確定兩個(gè)詞匯“詞1”和“詞2”是同義詞后,要確定是“詞1”替換“詞2”,還是“2”替換“1”,這由文章中這兩個(gè)詞的出現(xiàn)頻率決定,出現(xiàn)頻率較高的詞匯將默認(rèn)為詞匯代碼獲取,如圖3.3所示。以及同義詞替換部分,其流程圖如圖3.4所示。 NN功YY3.3更更新領(lǐng)域相關(guān)結(jié)YN是否將領(lǐng)域相NY同義詞替換后的統(tǒng)計(jì)文換并寫(xiě)不進(jìn)行3.43.5inputMatrix.txtwordCount.txt:該文件記錄了分析項(xiàng)目中出現(xiàn)的各個(gè)詞匯,以及出現(xiàn)的頻率件。文件結(jié)構(gòu)與inputMatrix.txt相同。的相關(guān)度設(shè)為1,非同義詞的相關(guān)度為0。同類詞與兩個(gè)關(guān)系都不同,其相關(guān)度介于兩者之間,所以其相關(guān)度應(yīng)該設(shè)定為0-1之間的某一個(gè)數(shù)值,在QESTA1.1,每對(duì)同類詞進(jìn)行相文件值進(jìn)行相文件值Y否同N相關(guān)度為相關(guān)度為3.6QESTA1.0分析完項(xiàng)目后將相關(guān)度結(jié)果數(shù)據(jù)寫(xiě)入到文本文檔中,而用戶在進(jìn)行相關(guān)QESTA1.1界面設(shè)計(jì)上采用了如下方案:在單擊文檔段如圖3.7所示。3.7準(zhǔn)率進(jìn)行比較,驗(yàn)證QESTA1.1的改進(jìn)效果。(dict(k_dicdo替換情況表(replace_statistics)五個(gè)表。數(shù)據(jù)庫(kù)E-R圖如圖3.8所示。nn詞詞詞詞11(1) 主要功能:領(lǐng)域的名稱即表明,例如領(lǐng)域表,表明為bbs。在建立領(lǐng)域相關(guān)12、替換次數(shù)、未替換次數(shù)、領(lǐng)域。3.5具系統(tǒng)流程以及本次改進(jìn)內(nèi)容。3.4章主要介紹了本次畢設(shè)改進(jìn)的具體設(shè)計(jì),分同義詞第三章QESTA1.0改進(jìn)方案進(jìn)行了詳細(xì)設(shè)計(jì)。本章QESTA1.0改進(jìn)過(guò)程中利用操作系統(tǒng):Windows數(shù)據(jù)庫(kù)管理系統(tǒng) Java包:JDK6.0操作系統(tǒng):Windowsbuaa.sei.zkf.action和buaa.sei.zkf.display。其中buaa.sei.zkf.action主要是對(duì)同義詞和同類在4.3節(jié)和4.4節(jié)具體介紹。ChooseSaveDBFrame.java,CONSTANT.java,DBconn.java,WordProcess.java,WordSave.java,WordsCount.java等。本節(jié)將其中的主要代碼進(jìn)行分析。方法名稱:privatevoid方法名稱:privatevoid方法名稱:privateObject該類的樣例界面如圖4.1所示。方法名稱:publicvoid據(jù)庫(kù),得到每個(gè)詞對(duì)應(yīng)word_code。下一步將該詞和該詞對(duì)應(yīng)的代碼放入入到HasMap中。查詢完所有詞匯后,將詞和對(duì)應(yīng)的代碼輸出到臨時(shí)文件方法名稱:privateObject方法說(shuō)明:該方法得到了同義詞替換表的替換數(shù)據(jù)。首先讀入臨時(shí)文件wordCount.txt(該文件中了每個(gè)詞匯在工程中出現(xiàn)的數(shù)量),存放在HashMap中。根據(jù)該HashMap和同義詞臨時(shí)文件synonymsWord.txt初“12”1212,將默認(rèn)選進(jìn)行替換檢查。方法名稱:privateObjectcheckIsReplace(ObjectBCABC替換的情況。所有在進(jìn)行初始化時(shí)應(yīng)進(jìn)行處理。主要方法是先得到所有詞匯的出現(xiàn)次數(shù),4.2方法名稱:privatevoid方法名稱:privatevoid讀入的詞是被替換詞,那么輸出替換該詞的詞。最終生成替換后的文件方法名稱:publicstaticConnection方法名稱:publicstaticStatement方法名稱:publicstaticvoid方法名稱:publicbooleanqueryFromDict(String方法名稱:publicbooleanqueryFromQuickTable(StringwordStringkind,Stringuse_times)方法名稱:publicstaticvoidgetSimilarWords(StringfileName,String方法名稱:privatevoid方法名稱:privatevoid方法名稱:privatevoid括:AllResultWindow.java,ChooseWindow.java,CONSTANT.java,ResultWindow.java,WordFileOperate.java等。本節(jié)將其中的主要代碼進(jìn)行分析。方法名稱:privatevoid方法名稱:privatevoid4.34.3ChooseWindow方法名稱:privatevoidJTextArea、“確認(rèn)”按鈕、“返回”按鈕等。方法名稱:privatevoid得到文檔段或者代碼類翻譯后的詞匯文件存放文件的存放位置。方法名稱:privateObject4.44.4ResultWindow方法名稱:privateStringgetFileContect(Stringpath,String方法名稱:privatebooleanopenCodeFile(Filefile,String4.5方法名稱:publicvoidWordFileOperate(Stringpath,StringpublicvoidWordFileOperate(Stringpath,StringfileName,String方法名稱:publicbooleanfind(String串,如果找到,那么word將定位到該地方,返回true;如果未找到,直接返回false。詞詞是本次畢設(shè)同義詞替換的基礎(chǔ)表,在進(jìn)行同義詞查詢,同類詞查詢時(shí)都將用身需求,按照格式對(duì)該詞林進(jìn)行擴(kuò)充。其數(shù)據(jù)表的字段如表4.1所示。表4.1dictword_code:words:(1)kind:有“#”、“=”、“@insert_time:領(lǐng)域相關(guān)表是指用于特定領(lǐng)域內(nèi)用到的詞的轉(zhuǎn)目標(biāo),每個(gè)領(lǐng)域有一個(gè)表,例如bbsbbs的進(jìn)行同義詞、同類詞查詢,提高工具的效率。其數(shù)據(jù)各字段如表4.2表4.2word_code:words:kind:有“#”、“=”、“@insert_time:use_times:在該領(lǐng)域使用的次數(shù)工作表其表字段如表4.3所示。表4.3word_dictword_code:words:new_insert:該行詞是否為新插入,詞典中沒(méi)有的use_times:每個(gè)詞在該領(lǐng)域使用的次數(shù)詞量統(tǒng)計(jì)表統(tǒng)計(jì)。主要字段有詞、出現(xiàn)次數(shù)。其表字段如表4.4所示。表4.4words_countword:count:替換情況表表4.5replace_statistcsword1:1count:2not_replace_times:出現(xiàn)這兩個(gè)詞后不替換的次數(shù)QESTA1.1改進(jìn)方案的實(shí)現(xiàn)。4.1節(jié)QESTA1.1的開(kāi)發(fā)平臺(tái)環(huán)境和語(yǔ)言基礎(chǔ)。4.2節(jié)簡(jiǎn)要介紹了系統(tǒng)的實(shí)現(xiàn)方案,再 實(shí)驗(yàn)及 (R)Core(TM)i5-2400CPU機(jī)器型號(hào):LenovoWindows7操作系統(tǒng):Windows系統(tǒng)類型:32數(shù)據(jù)庫(kù) JDK版本:1.7.0_45本次實(shí)驗(yàn)的數(shù)據(jù)是之前《面向?qū)ο笳n程》的學(xué)生大作業(yè),下文中將以《EasyPost》23個(gè)。該樣例含有的文檔數(shù)目較多,并且文檔的規(guī)模適中,所以選取其為本次實(shí)驗(yàn)(QESA1.15.1工具(QESTA1.1) 等,本次實(shí)驗(yàn)的設(shè)置如圖5.2所示。5.2工具(QESTA1.1)5.3所示界面,點(diǎn)擊是,運(yùn)行改進(jìn)5.35.4所示的同義詞替換情況表,進(jìn)行同義詞替換選擇。用戶可以取消或者選擇同義詞替換,也可以選擇“詞1”替換“詞2”還是“詞2”替換“詞5.45.5所示的界面,用戶可以選擇是否將詞匯加入到所示的5.7分析結(jié)果)和inputMatrix_replacedSyn.txt(改進(jìn)后的工具QESTA1.1的分析結(jié)果)進(jìn)行對(duì)比,發(fā)現(xiàn)同義詞已經(jīng)被替換,部分替換情況如圖5.8所示。數(shù)據(jù)庫(kù)中的領(lǐng)域表、替換情況表5.8QESTA1.1QESTA1.0的改進(jìn)是否真的提高了相關(guān)度分析的相關(guān)度結(jié)果文件(lda_lsi_result_1-4.log文件)Excel表格中,然后根據(jù)人工分析的相關(guān)度情況進(jìn)行查全查準(zhǔn)率計(jì)算,如表5.1所示。用同樣方法對(duì)改進(jìn)后工具(QESA1.1表5.1lda_lsi_result_1-4.log1111110閾00 閥查全(QESTA1.1)的查全查準(zhǔn)率比改進(jìn)前10 查準(zhǔn)查全實(shí)驗(yàn)分析中,也對(duì)結(jié)果文件lsiresult_3-4.log“10 查準(zhǔn)查全改進(jìn)前后查全查準(zhǔn)率對(duì)比中,絕大部分都是改進(jìn)后高于改進(jìn)前,在圖5.1340.14時(shí),改進(jìn)后的查全查準(zhǔn)率反而低1010 查全0 查全查準(zhǔn)查準(zhǔn) 00 坐標(biāo)坐標(biāo) F=(??2

其中是參數(shù),P是查準(zhǔn)率,R是查全率。本文中采用最常見(jiàn)的F1-Measure來(lái)驗(yàn)F5.25.15所示。LSI算法得到的相關(guān)度結(jié)果改進(jìn)前后F值如表5.3所知,其改進(jìn)前后的對(duì)照?qǐng)D如圖5.16所示。0000閾FF表5.3lsiresult_1-4.logF 閾0F5.45.17所示;LSI算法相關(guān)度結(jié)果改進(jìn)F5.55.18表5.4lda_lsi_result_3-4.logF 0 0.120.14 閾F表5.5lsiresult_3-4.logF00 0.120.14閾 F根據(jù)實(shí)驗(yàn)結(jié)果可知,雖然改進(jìn)后的結(jié)果存在一定的異常點(diǎn),但是總體上率對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)過(guò)程與5.3節(jié)相同。5.3章所做的實(shí)驗(yàn)相同,所以在本節(jié)只進(jìn)行對(duì)比結(jié)果的展示。項(xiàng)05.2110101查準(zhǔn)查準(zhǔn)1010 坐標(biāo)00.050.0750.10.1250.15閾查全F5.7F5.22所示的對(duì)比表5.7lda_lsi_result_1-3.logF000.05 0.1250.15閾F根據(jù)改進(jìn)前后lda_lsi_result_1-3.log中相關(guān)度結(jié)果的查全查準(zhǔn)率、F值可得出改進(jìn)后2、lsiresult_1-3.log對(duì)比結(jié)果45.2510 10 111查準(zhǔn)查準(zhǔn)100100 坐標(biāo) 00.050.0750.10.1250.15閾查全F5.9F5.26表5.9lsiresult_1-3.logF10 查準(zhǔn)00.05 0.1250.15閾Flsiresult_1-3.log中相關(guān)度結(jié)果的查全查準(zhǔn)率、F值可得出改進(jìn)后的工3、lda_lsi_result_2-3.log對(duì)比結(jié)果5.105.275.285.29表5.10lda_lsi_result_2-3.log11100.020.040.06 閾10 坐標(biāo)坐標(biāo)查全F5.11F5.30表5.11lda_lsi_result_2-3.logF0查準(zhǔn)000.020.040.06 閾Flda_lsi_result_2-3.log中相關(guān)度結(jié)果的查全查準(zhǔn)率,F(xiàn)值可以得出改進(jìn)5.125.315.325.33表5.12lsiresult_2-3.log00 閾0 坐標(biāo)查全坐標(biāo)F5.13F5.34表5.13lsiresult_2-3.logF0閾Flsiresult_2-3.log中相關(guān)度結(jié)果的查全查準(zhǔn)率、F值可得出改進(jìn)后的工根據(jù)實(shí)驗(yàn)的結(jié)果,可以得出雖然存在一些異常點(diǎn),但是總體上改進(jìn)后的QESTA1.1的領(lǐng)域相關(guān)詞進(jìn)行分析,即對(duì)進(jìn)行相關(guān)實(shí)驗(yàn)后,對(duì)其產(chǎn)生的領(lǐng)域相關(guān)《 《表、ms類領(lǐng)域表分別如圖5.36、圖5.37和圖5.38所示。5.355.36game5.37ms5.38bbs可以進(jìn)行領(lǐng)域相關(guān)詞和領(lǐng)域無(wú)關(guān)詞的分析。QESTA1.1符合預(yù)期的設(shè)計(jì)需求。本章介紹了對(duì)軟件文檔與代碼相關(guān)度分析工具的功能測(cè)試的過(guò)結(jié)果。5.1節(jié)主統(tǒng)的功能符合第三章所功能需求與性能需求??偨Y(jié)與在進(jìn)行相關(guān)性工具改進(jìn)后還進(jìn)行了一系列的相關(guān)實(shí)驗(yàn)。不但進(jìn)行了原始工具致多修改意見(jiàn)。因?yàn)橛辛四慕ㄗh和意見(jiàn),QESTA1.1更加實(shí)用、高效,我的也更加感謝我的輔導(dǎo)員、。大學(xué)四年,在生活和學(xué)習(xí)上給予了我很大的幫助。也感謝班,感謝100614班的所有。求的北航,才能在計(jì)算機(jī)學(xué)院這一大家庭里學(xué)習(xí)知識(shí)。謝謝的鼓勵(lì)和支持。參考AntoniolG,CanforaG,DeluciaA,etal.RecoveringCodetoationLinksinOOSystems[A].Proceedingsofthe6thWorkingConferenceonReverseEngineering.[C].IEEEComputerSocietyPress,1999:136-144AntoniolG,CanforaG,CasazzaG,etal.RecoveringTraceabilityLinksbetweenCodeandation[J].IEEETransactionsonSoftwareEngineering,2002,28(10):970-983MarcusA,MaleticJ.I.Recovering ation-to-Source-CodeTraceabilityLinksusingLatentSemanticIndexing[A].Proceedings25thInternationalConferenceonSoftwareEngineering(ICSE'03)[C].IEEEXplore,2003:125-135MarcusA,MaleticJ.I,SergeyevA.RecoveryofTraceabilityLinksbetweenSoftwareationandSourceCode[J].InternationalJournalofSoftwareEngineeringandKnowledgeEngineering(IJSEKE),2005,15(5):811-Cleland-huangJ,SettimiR,ChuanD,etal.UtilizingSupportingEvidencetoImproveDynamicRequirementsTraceability[A].Proceedings13thIEEEInternationalConferenceonRequirementsEngineering(RE'05)[C].IEEEComputerSocietyPress,2005:135-144Cleland-huangJ,SettimiR,RomanovaE.BestPracticesforAutomatedTraceabilityComputer,2007,40(6):27-M.Halkidi,D.Spinelli

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論