天堂国产午夜亚洲专区-少妇人妻综合久久蜜臀-国产成人户外露出视频在线-国产91传媒一区二区三区

當(dāng)前位置:主頁(yè) > 科技論文 > 軟件論文 >

基于軟件維護(hù)歷史的代碼異味評(píng)估與檢測(cè)

發(fā)布時(shí)間:2020-06-18 10:05
【摘要】:代碼異味是軟件中由于設(shè)計(jì)缺陷或不良編碼習(xí)慣而導(dǎo)致深層次質(zhì)量問(wèn)題的代碼癥狀。與一般代碼缺陷不同,代碼異味不一定直接導(dǎo)致軟件運(yùn)行錯(cuò)誤,但引起可讀性、可理解性、效率等方面的質(zhì)量問(wèn)題,造成軟件維護(hù)難度隨之增加。因此,亟需對(duì)代碼異味進(jìn)行評(píng)估與檢測(cè),以改善軟件質(zhì)量、節(jié)約維護(hù)成本。目前,代碼異味的研究面臨著若干挑戰(zhàn)。一方面,程序員對(duì)代碼異味的識(shí)別偏于主觀,缺乏有效的檢測(cè)工具。另一方面,除程序結(jié)構(gòu)方面的代碼異味之外,現(xiàn)有研究工作缺乏對(duì)更多類別代碼異味的研究。對(duì)此,本文通過(guò)挖掘開(kāi)源軟件的維護(hù)歷史,評(píng)估和檢測(cè)影響軟件可維護(hù)性的代碼異味。首先,本文實(shí)現(xiàn)了一種基于度量的代碼異味檢測(cè)技術(shù),并評(píng)估了代碼異味對(duì)軟件可維護(hù)性的影響程度。其次,鑒于Python等動(dòng)態(tài)類型語(yǔ)言的流行以及用戶對(duì)軟件性能的要求日益提高,本文提出了動(dòng)態(tài)類型使用和性能表現(xiàn)兩方面的代碼異味,并分別對(duì)代碼異味的檢測(cè)技術(shù)和危害程度展開(kāi)研究。本文主要貢獻(xiàn)總結(jié)如下:(1)針對(duì)代碼異味檢測(cè)技術(shù)的有效性問(wèn)題,結(jié)合三種閾值策略構(gòu)建了基于度量的代碼異味檢測(cè)工具(Pysmell),根據(jù)軟件維護(hù)歷史評(píng)估了三種閾值策略的檢測(cè)效果并衡量了代碼異味對(duì)軟件可維護(hù)性的影響程度。結(jié)果表明,該工具能有效檢測(cè)10種程序結(jié)構(gòu)代碼異味,且代碼異味與代碼變更和缺陷顯著相關(guān)。(2)針對(duì)動(dòng)態(tài)類型使用的代碼異味問(wèn)題,提出了6種動(dòng)態(tài)類型濫用的代碼異味,實(shí)現(xiàn)了對(duì)動(dòng)態(tài)類型代碼異味的檢測(cè)方法,結(jié)合定量和定性分析調(diào)查了動(dòng)態(tài)類型代碼異味的特征并評(píng)估了在軟件維護(hù)歷史中這些代碼異味與缺陷的關(guān)聯(lián)性。結(jié)果表明,程序員一般在軟件的前期開(kāi)發(fā)階段就引入了動(dòng)態(tài)類型代碼異味,且絕大部分的動(dòng)態(tài)類型代碼異味可能導(dǎo)致軟件缺陷。(3)針對(duì)影響軟件性能表現(xiàn)的代碼異味問(wèn)題,實(shí)現(xiàn)了性能問(wèn)題代碼異味的定位方法(Speedoo),其目的是對(duì)軟件中所有函數(shù)的優(yōu)化優(yōu)先級(jí)進(jìn)行排序。本文基于開(kāi)源軟件的性能優(yōu)化歷史對(duì)該方法的有效性和效率進(jìn)行評(píng)估。結(jié)果表明,Speedoo定位性能問(wèn)題代碼異味的有效性比基于剖析的定位工具YourKit高出2到3倍,且能適用于大規(guī)模的軟件系統(tǒng)。
【學(xué)位授予單位】:南京大學(xué)
【學(xué)位級(jí)別】:博士
【學(xué)位授予年份】:2018
【分類號(hào)】:TP311.53
【圖文】:

數(shù)據(jù)分布,度量值


為了調(diào)查這個(gè)假設(shè)是否成立,我們?cè)冢牵椋簦龋酰馍鲜占隋澹保埃秱(gè)收藏?cái)?shù)最多的逡逑開(kāi)源Python項(xiàng)目語(yǔ)料庫(kù),包含了3.5MLOC代碼和25,882個(gè)Python文件。我們從這逡逑些項(xiàng)目中提取出策略框架中的所有度量數(shù)據(jù)集,最終每個(gè)度量的分布如圖3.1所逡逑不。度量值的分布均遵循冪律分布:絕大部分?jǐn)?shù)據(jù)點(diǎn)的分布集中于一小部分值逡逑空間內(nèi)。為此,本章采用的基于統(tǒng)計(jì)的閾值策略參考了邋Fontana等人提出的數(shù)據(jù)逡逑驅(qū)動(dòng)方法[118]。方法分為兩個(gè)步驟:逡逑第一步,按照非參數(shù)化過(guò)程丟棄對(duì)制定閾值無(wú)用的數(shù)據(jù)點(diǎn)集合。在106個(gè)逡逑Python項(xiàng)目的度量值分布中,度量值的分布呈現(xiàn)的普遍規(guī)律是:當(dāng)度量值較小逡逑時(shí),多數(shù)數(shù)據(jù)點(diǎn)落在該分布區(qū)域,即數(shù)據(jù)點(diǎn)的頻率高,例如PAi?度量表示的函逡逑數(shù)參數(shù)個(gè)數(shù)通常是1-3;隨著度量值變大,數(shù)據(jù)分布越來(lái)越稀疏,即數(shù)據(jù)點(diǎn)的頻逡逑率變小,例如度量值在10以上的概率很小,這些異常度量值很可能暗示了逡逑代碼異味。因此,那些頻率很高的度量值區(qū)域上的數(shù)據(jù)點(diǎn)失去了研究意義,故逡逑而要丟棄那一部分度量值區(qū)域上的數(shù)據(jù)點(diǎn)。

結(jié)構(gòu)框架,閾值


邐2逡逑基于訓(xùn)練機(jī)的閾值策略)開(kāi)發(fā)出了一個(gè)代碼異味檢測(cè)工具,名為Pysmell8,能夠逡逑檢測(cè)Python軟件中的10種代碼異味。它的體系框架如圖3.2所示,主要包含了三逡逑個(gè)功能模塊:逡逑AST分析器分析了軟件系統(tǒng)的結(jié)構(gòu)并從中將Python文件轉(zhuǎn)化為抽象語(yǔ)法樹(shù)逡逑(AST)。通過(guò)遍歷抽象語(yǔ)法樹(shù),該模塊抽取了Python文件中的所有實(shí)體(例如逡逑類和函數(shù)),并收集了相關(guān)的度量值。逡逑閾值選擇器實(shí)現(xiàn)了三種閾值策略,計(jì)算出度量閾值。基于經(jīng)驗(yàn)的閾值是根逡逑據(jù)問(wèn)卷調(diào)查中程序員反饋的經(jīng)驗(yàn)值設(shè)定。基于統(tǒng)計(jì)的閾值選取是利用AST分析逡逑器模塊收集的度量值分布來(lái)提取度量的異常值作為閾值。基于訓(xùn)練機(jī)的閾值選逡逑取是基于一個(gè)足夠大的代碼異味實(shí)例庫(kù)來(lái)迭代地訓(xùn)練閾值,使得最終閾值滿足逡逑檢測(cè)準(zhǔn)確率要求。逡逑代碼異味檢測(cè)器使用了不同閾值策略計(jì)算出的閾值來(lái)檢測(cè)目標(biāo)系統(tǒng)中的每逡逑個(gè)實(shí)體是否滿足各代碼異味的檢測(cè)策略。在該檢測(cè)過(guò)程之后,該模塊將檢測(cè)結(jié)逡逑果報(bào)告給用戶,同時(shí)也將檢測(cè)結(jié)果輸出給閾值選擇器模塊中的訓(xùn)練機(jī)以便于繼逡逑續(xù)訓(xùn)練閾值。逡逑8https://github.com/chenzhifei731/Pysmell逡逑25逡逑

【相似文獻(xiàn)】

相關(guān)期刊論文 前10條

1 Aron Sorensen;;建立船舶設(shè)備軟件維護(hù)標(biāo)準(zhǔn)[J];中國(guó)遠(yuǎn)洋海運(yùn);2017年05期

2 朱罡;;軍用軟件維護(hù)方法探析[J];中小企業(yè)管理與科技(中旬刊);2016年10期

3 劉棟;劉中杰;尚玉;文昌辭;孟慶鑫;;對(duì)軍用軟件維護(hù)標(biāo)準(zhǔn)更新的探討[J];航空標(biāo)準(zhǔn)化與質(zhì)量;2015年02期

4 趙春城;;軟件維護(hù)之重要性及方法[J];環(huán)球市場(chǎng)信息導(dǎo)報(bào);2015年26期

5 牧童;張會(huì)娜;潘曉平;;醫(yī)學(xué)信息系統(tǒng)軟件維護(hù)問(wèn)題及其對(duì)策[J];醫(yī)學(xué)信息學(xué)雜志;2009年06期

6 許軍剛;金融軟件維護(hù)工作淺析[J];中國(guó)金融電腦;1994年09期

7 張社英;劉又誠(chéng);郭江;;軟件維護(hù)技術(shù)(上)[J];計(jì)算機(jī)世界;1994年05期

8 NORMAN F.SCHNEIDEWIND;朝陽(yáng);;軟件維護(hù)的現(xiàn)狀[J];航空計(jì)算技術(shù);1988年03期

9 王德澤;普通高校計(jì)算中心的配置及其實(shí)施[J];實(shí)驗(yàn)室研究與探索;1988年01期

10 趙保華;屈玉貴;;軟件工程(八)——軟件維護(hù)、小項(xiàng)目軟件的開(kāi)發(fā)方法[J];微型機(jī)與應(yīng)用;1989年01期

相關(guān)會(huì)議論文 前9條

1 趙明航;;中廣核信息系統(tǒng)維護(hù)探討[A];2008電力行業(yè)信息化年會(huì)會(huì)議論文集[C];2008年

2 趙明航;高柯夫;;中廣核信息系統(tǒng)維護(hù)探討[A];2009電力行業(yè)信息化年會(huì)論文集[C];2009年

3 矯文成;張政保;霍曉磊;李曉輝;;指揮信息系統(tǒng)裝備軟件保障問(wèn)題研究[A];第三屆中國(guó)指揮控制大會(huì)論文集(上冊(cè))[C];2015年

4 趙宏;;網(wǎng)格理論與技術(shù)在工程計(jì)算中的應(yīng)用[A];計(jì)算機(jī)技術(shù)在工程建設(shè)中的應(yīng)用——第十二屆全國(guó)工程建設(shè)計(jì)算機(jī)應(yīng)用學(xué)術(shù)會(huì)議論文集[C];2004年

5 童麗娟;;軟件維護(hù)方法綜述[A];河南省冶金行業(yè)低碳冶金與節(jié)能減排學(xué)術(shù)研討會(huì)論文集[C];2011年

6 顧秀君;;艦船中軟件保障的研究[A];中國(guó)造船工程學(xué)會(huì)修船技術(shù)學(xué)術(shù)委員會(huì)船舶維修理論與應(yīng)用論文集第七集(2004年度)[C];2004年

7 趙勃;孫鐵鑫;王征;;高校計(jì)算機(jī)實(shí)驗(yàn)室綜合信息管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[A];第二屆世紀(jì)之星創(chuàng)新教育論壇論文集[C];2015年

8 高紅光;;高速公路ETC系統(tǒng)養(yǎng)護(hù)維修與收費(fèi)運(yùn)營(yíng)管理相結(jié)合的探索與實(shí)踐[A];中國(guó)公路學(xué)會(huì)養(yǎng)護(hù)與管理分會(huì)第七屆學(xué)術(shù)年會(huì)論文集[C];2017年

9 楊曉飛;;微機(jī)實(shí)驗(yàn)室管理的探討[A];第五屆中國(guó)教育技術(shù)裝備論壇獲獎(jiǎng)?wù)撐募ㄏ拢C];2014年

相關(guān)重要報(bào)紙文章 前9條

1 劉培臣;如何做好軟件維護(hù)工作[N];中國(guó)計(jì)算機(jī)報(bào);2008年

2 福建省南平市醫(yī)保中心 許椿榕;應(yīng)用CMM改進(jìn)軟件維護(hù)過(guò)程[N];計(jì)算機(jī)世界;2005年

3 樂(lè)天 編譯;軟件維護(hù)你會(huì)選擇第三方嗎?[N];計(jì)算機(jī)世界;2010年

4 本報(bào)記者 李燕京;軟件維護(hù)成消費(fèi)者之痛[N];中國(guó)消費(fèi)者報(bào);2013年

5 萊蕪職業(yè)技術(shù)學(xué)院 亓云;淺談學(xué)校計(jì)算機(jī)房的軟件維護(hù)技術(shù)與措施[N];萊蕪日?qǐng)?bào);2006年

6 左權(quán)縣城鎮(zhèn)環(huán)境衛(wèi)生管理站 喬霞;計(jì)算機(jī)軟件信息軟件維護(hù)和管理探討[N];晉中日?qǐng)?bào);2015年

7 楊正軍;格柏科技AccuMark 8.2版正式發(fā)布[N];中國(guó)服飾報(bào);2006年

8 小 云;軟硬兼施維護(hù)服務(wù)器[N];中國(guó)國(guó)門時(shí)報(bào);2005年

9 ;Linux開(kāi)發(fā)比Microsoft軟件費(fèi)用更高[N];計(jì)算機(jī)世界;2003年

相關(guān)博士學(xué)位論文 前8條

1 陳芝菲;基于軟件維護(hù)歷史的代碼異味評(píng)估與檢測(cè)[D];南京大學(xué);2018年

2 王帆;軟件維護(hù)中的成本估算和質(zhì)量保證技術(shù)研究[D];浙江大學(xué);2011年

3 鄢萌;軟件倉(cāng)庫(kù)的主題挖掘及其在軟件維護(hù)中的應(yīng)用研究[D];重慶大學(xué);2017年

4 王金水;交互式特征定位過(guò)程及支持技術(shù)研究[D];復(fù)旦大學(xué);2013年

5 楊夢(mèng)寧;軟件維護(hù)中的關(guān)鍵預(yù)測(cè)問(wèn)題研究[D];重慶大學(xué);2016年

6 高原;面向軟件重構(gòu)的推薦方法研究[D];北京理工大學(xué);2015年

7 徐小輝;構(gòu)件化軟件動(dòng)態(tài)更新關(guān)鍵技術(shù)及形式化研究[D];上海交通大學(xué);2011年

8 郁抒思;軟件工程數(shù)據(jù)挖掘若干問(wèn)題研究[D];復(fù)旦大學(xué);2011年

相關(guān)碩士學(xué)位論文 前10條

1 周香云;精益思想在軟件維護(hù)項(xiàng)目中的應(yīng)用研究[D];東南大學(xué);2015年

2 關(guān)士慧;軟件維護(hù)管理平臺(tái)的設(shè)計(jì)與開(kāi)發(fā)[D];電子科技大學(xué);2014年

3 陳瑜;面向嵌入式系統(tǒng)的在軌軟件維護(hù)技術(shù)研究[D];浙江大學(xué);2006年

4 范佳佳;兼顧軟件維護(hù)開(kāi)發(fā)以及提供技術(shù)支持的流程管理研究[D];上海交通大學(xué);2013年

5 李玉鵬;維護(hù)離岸外包過(guò)程管理及應(yīng)用研究[D];西北大學(xué);2007年

6 曾映雪;基于C/S的遠(yuǎn)程軟件維護(hù)系統(tǒng)的研究與實(shí)現(xiàn)[D];河海大學(xué);2003年

7 劉玉羊;軟件維護(hù)精益模型以及數(shù)據(jù)挖掘技術(shù)的應(yīng)用[D];復(fù)旦大學(xué);2008年

8 周思成;福田公司維護(hù)項(xiàng)目交接案例研究[D];大連理工大學(xué);2013年

9 劉湘月;基于主題模型的程序理解技術(shù)的研究[D];揚(yáng)州大學(xué);2016年

10 孫贏盈;基于程序關(guān)聯(lián)性分析的軟件測(cè)試方法研究[D];西安理工大學(xué);2008年



本文編號(hào):2719083

資料下載
論文發(fā)表

本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/2719083.html


Copyright(c)文論論文網(wǎng)All Rights Reserved | 網(wǎng)站地圖 |

版權(quán)申明:資料由用戶cb69d***提供,本站僅收錄摘要或目錄,作者需要?jiǎng)h除請(qǐng)E-mail郵箱bigeng88@qq.com