国产丁香婷婷妞妞基地-国产人人爱-国产人在线成免费视频麻豆-国产人成-91久久国产综合精品-91久久国产精品视频

公務員期刊網 論文中心 正文

軟件工程中代碼異味檢測方法分析

前言:想要寫出一篇引人入勝的文章?我們特意為您整理了軟件工程中代碼異味檢測方法分析范文,希望能給你帶來靈感和參考,敬請閱讀。

軟件工程中代碼異味檢測方法分析

摘要:在軟件工程中,軟件重構具有重要意義,它可以提高軟件的可維護性、可擴展性、可重用性,進而改善軟件質量。在軟件重構中,代碼異味檢測是其中的重要組成部分。目前,代碼異味檢測的相關研究劃分為幾個類別。在對基于搜索的代碼異味檢測方法進行研究后,選擇決策樹算法來對四個代碼異味進行檢測,并取得不錯的效果。

關鍵詞:軟件工程;軟件重構;代碼異味;決策樹

0引言

隨著計算機科學的進步和發(fā)展,越來越多的行業(yè)和領域中需要使用計算機技術,各個行業(yè)的相關軟件也相繼被開發(fā)出來。蘋果商店的應用超過了百萬,桌面軟件和專業(yè)軟件數(shù)量更多。在軟件開發(fā)中維護費用是開發(fā)成本的2-100倍[1]。因此,為了降低軟件開發(fā)中維護費用,改善軟件的結構,提高軟件的可擴展性和可重用性,有必要進行軟件重構[2]。在軟件工程中,軟件重構用于調整面向對象軟件的內部結構,提高軟件的可維護性、可擴展性、可重用性,進而改善軟件質量,同時軟件的外部行為保持不變[3-4]。軟件經過重構,可以提高代碼的可讀性,改善內部結構并且延長代碼的生命周期。對于大型軟件項目的開發(fā),軟件重構具有重要意義。在軟件重構中,需要先進行代碼異味檢測,代碼異味會暴露出一些軟件中的問題,根據(jù)這些問題,工程師會做進一步檢查和重構。在重構過程中,代碼異味檢測是重要步驟。

1相關工作

代碼異味檢測的相關研究從1999年開始,至今有將近20年研究歷史。隨著計算機學科的發(fā)展,對于代碼異味檢測的研究出現(xiàn)了不同的分支,主要分為以下幾個類別。基于手工的代碼異味檢測方法,這個方法在代碼異味研究早期使用。Travassos等人創(chuàng)建了一個“閱讀技術”的集合,通過在紙上列舉清單,使用觀察方法幫助人們找到相關信息,并識別軟件構件中的缺點,通過這種方式來改善軟件質量[5]。但這類方法具有一定缺點,對于大型系統(tǒng)來說,手工進行代碼異味檢測的效率低下。基于度量的代碼異味檢測方法,通過使用如代碼行數(shù)、參數(shù)個數(shù)、代碼字符數(shù)等數(shù)據(jù)作為度量來檢測代碼異味。Marinescu等人開發(fā)了一個Eclipse插件,插件將設計問題量化,根據(jù)問題設置相應的度量值,并用于檢測4種代碼異味。通過使用插件能夠持續(xù)評估系統(tǒng)質量,并幫助開發(fā)者進行軟件重構[6]。基于度量的方法,準確性依賴于閾值的選擇,但對于標準閾值,現(xiàn)在沒有一致的定論。并且該方法受限于檢測比較簡單的代碼異味,對于較復雜的代碼異味不能直接用度量檢測。基于癥狀的代碼異味檢測方法,通過對代碼異味定義和描述進行分析,提取特征和標記,利用檢測算法進行檢測,判斷是否具有代碼異味。Moha等人通過分析獲取代碼異味關鍵詞列表,然后使用領域特殊語言形成規(guī)則卡片,最后根據(jù)建模生成檢測算法,對15個代碼異味進行檢測[7]。基于癥狀的方法和代碼異味癥狀有關,但是目前對于異味癥狀沒有一致的標準定義,因此該方法受到一定的限制。基于概率的代碼異味檢測方法,統(tǒng)計代碼中類之間的屬性和關系的數(shù)據(jù),結合模糊邏輯規(guī)則和數(shù)學分析來檢測代碼異味。Ananda等人提出一種量化方法,結合直接關聯(lián)和間接關聯(lián)的數(shù)量關系,利用傳播概率矩陣來檢測2種重要代碼異味[8]。這類方法使用概率統(tǒng)計來分析檢測代碼異味,對于不方便量化的代碼異味檢測效果有限。基于可視化的代碼異味檢測方法,結合自動檢測工具和人的手動檢測來識別代碼異味。Emerson等人使用一個可交互的代碼異味檢測工具來快速觀察和認識代碼異味,通過不同的角度來理解和可視化代碼異味[9]。由于在方法中結合人的手動檢測,因此該類方法受限于人的效率,可擴展性不強。基于搜索的代碼異味檢測方法,使用不同的算法直接從源代碼中識別和檢測代碼異味,其中大部分檢測使用機器學習相關算法。對于機器學習方法,需要對輸入進行處理,根據(jù)標準輸入來得到最后的分類輸出結果。Fontana等人使用機器學習技術進行代碼異味檢測,利用機器學習方法對代碼異味進行分類,自動檢測代碼異味。他們使用了16種機器學習算法,對4種代碼異味DataClass,LargeClass,FeatureEnvy,LongMethod進行檢測,并在軟件系統(tǒng)中進行實驗,并通過人工確認來構造代碼異味樣本,把這些樣本作為機器學習的標準輸入,最后通過交叉驗證對實驗結果進行評價[10]。基于搜索的方法的算法成功依賴于數(shù)據(jù)集和訓練集的質量,在處理未知和變化的代碼異味時受到一定限制。基于協(xié)作的代碼異味檢測方法,以合作的方式執(zhí)行不同的活動來改善方法效果,提高檢測方法的準確性和性能。目前相關文獻較少,Abdelmoez等人使用兩個并行算法加速搜索過程,減少搜索空間,使用風險評估來檢測代碼異味[11]。但這個方法用于檢測其他代碼異味時,存在一些泛化問題。

2異味檢測方法

本文選擇基于搜索的代碼異味檢測方法,采用機器學習算法來對所選擇的幾種代碼異味進行識別。在選擇代碼異味時,主要考慮幾個方面,代碼異味有較高出現(xiàn)頻率,代碼異味對于軟件質量有較大負面影響,代碼異味已經有相關研究文獻和應用實現(xiàn)[10]。根據(jù)要求,最后本文選擇了DataClass,DuplicatedCode,Inappro-priateIntimacy,LongMethod四個代碼異味進行檢測。通過對相關機器學習算法的研究和比較,發(fā)現(xiàn)在代碼異味檢測中,決策樹算法具有較好的分類效果[10]。在本文中,使用J48決策樹算法作為檢測算法,對所選擇的四個代碼異味進行識別。本文使用k重交叉驗證來對實驗結果進行驗證,通過算法的精確率,召回率以及定義的到目標精確率平均距離來比較算法效果[12],其中,P表示精確率,R表示召回率,TP表示正確正類,F(xiàn)P表示錯誤正類,F(xiàn)N表示錯誤負類,D表示到目標精確率平均距離,TAPi表示某個實驗中精確率,TAP表示目標精確率。通過比較實驗,可以知道,本文使用的異味檢測方法,在選擇的四種代碼異味上具有較好的識別效果。

3結語

現(xiàn)有的代碼異味檢測方法劃分為幾個類別,在對基于搜索的代碼異味檢測方法進行研究后,本文選擇決策樹算法來對代碼異味進行檢測,并在選擇的四種代碼異味上取得了不錯的識別效果。

作者:李炎武 單位:四川大學計算機學院

主站蜘蛛池模板: 欧美色视频日本片高清在线观看 | 中文字幕在线无限2021 | 99精品高清不卡在线观看 | 宅女福利视频在线看免费网站 | 欧美专区一区二区三区 | 在线免费视频国产 | 国产精品日韩欧美在线第3页 | 激情欧美日韩一区二区 | 国产精品国产亚洲精品不卡 | 精品视频国产狼人视频 | 免费一级毛片在线播放视频 | 99re7在线精品免费视频 | 9久9久女女热精品视频免费观看 | 看日本真人一一级特黄毛片 | 日韩亚洲一区二区三区 | 欧美日本一区二区三区 | 国内精品久久久久影院老司 | 91精品视频在线播放 | 国产激情久久久久久影院 | 在线观看欧美亚洲日本专区 | 一级做a爰性色毛片免费 | 真实国产乱人伦在线视频播放 | 青青爽国产手机在线观看免费 | 欧美国产合集在线视频 | 欧美日韩一区二区视频图片 | 欧美特黄特色aaa大片免费看 | 美女插跳蛋视频叫爽 | 午夜成年人网站 | 一级黄色录像片 | 欧美国产日韩在线播放 | 中文字幕成人免费高清在线视频 | 欧美精品a毛片免费观看 | 波多野结衣在线观看高清免费资源 | 久草免费看| 久久久久久综合一区中文字幕 | 美女张开腿 | 久久综合网址 | 精品久久一区二区 | 香蕉久久夜色精品国产2020 | 久久国内精品自在自线软件 | 日韩国产欧美一区二区三区在线 |