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

    軟件工程數(shù)據(jù)挖掘研究進(jìn)展

    2014-04-29 00:00:00王剛趙玥

    摘 要:數(shù)據(jù)挖掘是在海量數(shù)據(jù)集中發(fā)現(xiàn)有用信息或者知識的過程[1]。軟件工程數(shù)據(jù)挖掘技術(shù)作為數(shù)據(jù)挖掘技術(shù)的一個分支,其本身又具有自己的特殊性。本文首先分析了軟件工程數(shù)據(jù)挖掘技術(shù)的任務(wù)和面臨的挑戰(zhàn),然后著重闡述了在軟件開發(fā)階段所面臨的問題以及一些典型的解決方法。

    關(guān)鍵詞:軟件工程;數(shù)據(jù)挖掘;研究進(jìn)展

    中圖分類號:TP311.52

    軟件工程數(shù)據(jù)挖掘是數(shù)據(jù)挖掘技術(shù)在軟件工程領(lǐng)域的應(yīng)用和發(fā)展,是指在海量的軟件工程數(shù)據(jù)中利用已有的技術(shù)或者開發(fā)新的數(shù)據(jù)挖掘技術(shù)和算法,經(jīng)過提取、分析、表示等步驟,發(fā)現(xiàn)對軟件開發(fā)者有用的信息或者知識的過程[2]。軟件工程數(shù)據(jù)挖掘是傳統(tǒng)數(shù)據(jù)挖掘技術(shù)在軟件工程領(lǐng)域方面的一個分支,但是又有自己的特點(diǎn),主要表現(xiàn)為:(1)軟件工程的數(shù)據(jù)提取和處理問題;(2)挖掘算法的選擇問題;(3)軟件開發(fā)者的數(shù)據(jù)選擇問題。本文就軟件工程數(shù)據(jù)挖掘所能挖掘到的信息和知識及其挖掘過程展開論述,對其研究進(jìn)展進(jìn)行了總結(jié)。

    1 軟件工程數(shù)據(jù)挖掘的任務(wù)與挑戰(zhàn)

    軟件工程數(shù)據(jù)挖掘作為數(shù)據(jù)挖掘技術(shù)的一種,其操作過程與傳統(tǒng)的數(shù)據(jù)挖掘大致相同,一般可分為三個主要階段:數(shù)據(jù)預(yù)處理,數(shù)據(jù)挖掘,結(jié)果評估。數(shù)據(jù)挖掘的常見的任務(wù)主要有:分類、估計預(yù)測、異常檢測、對復(fù)雜混合信息的提取等。

    軟件工程數(shù)據(jù)挖掘與傳統(tǒng)數(shù)據(jù)挖掘相比,又有其自己的特殊性,主要表現(xiàn)為以下幾個方面:(1)數(shù)據(jù)更為復(fù)雜:軟件工程數(shù)據(jù)不但包括軟件報告和版本信息之類的結(jié)構(gòu)化數(shù)據(jù),還包括一些代碼,注釋之類的非結(jié)構(gòu)化數(shù)據(jù)。兩種不同的數(shù)據(jù)結(jié)構(gòu)不能用同一算法進(jìn)行運(yùn)算,但是兩類數(shù)據(jù)之間又有這非常重要的聯(lián)系,這就使得其數(shù)據(jù)更為復(fù)雜;(2)分析結(jié)果的呈現(xiàn)更為特殊:傳統(tǒng)的數(shù)據(jù)挖掘結(jié)果往往可以以多種結(jié)果進(jìn)行呈現(xiàn),如報表、文字等形式,而對于軟件工程數(shù)據(jù)的挖掘而言,需要的不僅僅是要給用戶一個統(tǒng)計結(jié)果,更需要的是給軟件開發(fā)者一些更具體的實例,缺陷定位,或者設(shè)計結(jié)構(gòu)之類的信息。因此,它需要研究一些新型的結(jié)果提交手段和方法;(3)挖掘結(jié)果的評價難以統(tǒng)一:傳統(tǒng)的數(shù)據(jù)挖掘技術(shù)基本上已經(jīng)形成了比較成熟的評價標(biāo)準(zhǔn),但對于軟件工程數(shù)據(jù)挖掘而言,軟件開發(fā)者需要的信息非常具體而且復(fù)雜,相應(yīng)的表示方法也是多種多樣的,彼此之間很難形成比較,所以就很難形成一個統(tǒng)一的評價結(jié)果。

    所以,軟件工程數(shù)據(jù)挖掘的難點(diǎn)在于對對數(shù)據(jù)的預(yù)處理以及挖掘結(jié)果的表述上。下文對軟件開發(fā)階段所遇到的問題和解決方案進(jìn)行總結(jié)。

    2 在軟件開發(fā)階段所遇到的問題及解決方案

    軟件開發(fā)階段的首要目的是編寫程序。本節(jié)主要闡述了軟件在代碼編寫和結(jié)果提交方面所面臨的問題以及典型的解決辦法。

    2.1 代碼的編寫

    軟件代碼的編寫要求軟件開發(fā)者對自己所要編寫的代碼的結(jié)構(gòu)和功能了解后,按照自己的理解在大量的數(shù)據(jù)中找可復(fù)用的信息。一般來講,編程所需的信息可劃為三個部分:(1)開發(fā)者在已有代碼中尋找可重用的代碼;(2)開發(fā)者尋找可重用的靜態(tài)規(guī)則,如類的方法和繼承關(guān)系等;(3)開發(fā)者尋找可重用的動態(tài)規(guī)則,如應(yīng)用程序接口調(diào)用的順序等。

    這些信息的尋找一般是通過軟件的幫助文檔、查看代碼、求助他人實現(xiàn)的,這些方法的毫無疑問的會遇到許多問題,如幫助文檔的準(zhǔn)確性和完整性難以保證、代碼量大、重用信息少等。

    2.1.1 代碼重用

    代碼的重用及最基本的問題就是開發(fā)者需要知道所需的類或者方法,然后瀏覽相關(guān)代碼進(jìn)行重用。這種搜索方式必然會浪費(fèi)開發(fā)者很多的時間。文獻(xiàn)[3]利用關(guān)鍵字從代碼庫中尋找可重用的代碼,并根據(jù)相關(guān)度進(jìn)行排序,其利用的原理就是課重用的代碼必然模式是相似的,最終結(jié)果課通過上下文結(jié)構(gòu)呈現(xiàn)出來,如類與類之間的關(guān)系。具體現(xiàn)實的步驟如下:

    (1)構(gòu)建具有例程及上下文架構(gòu)的代碼庫;(2)開發(fā)者向代碼庫提交類的信息,并對反饋結(jié)果進(jìn)行打分,共同組建代碼庫;(3)后來的開發(fā)者查詢時候例程將安得分高低進(jìn)行排序,供開發(fā)者查詢。文獻(xiàn)[3]大大降低了開發(fā)者查找重用代碼的工作量,提供了一種描述重用模式的一種方法。

    2.1.2 靜態(tài)規(guī)則的重用

    開發(fā)者在得到相關(guān)的代碼之后,遇到的下個問題就是如何重用其靜態(tài)規(guī)則,如類的繼承關(guān)系等。文獻(xiàn)[4]闡述了一種自動識別和呈現(xiàn)靜態(tài)規(guī)則的方法?;痉椒ㄊ牵红o態(tài)規(guī)則一般會被開發(fā)者重復(fù)利用,這些關(guān)系將以類與類關(guān)系的形式保存在代碼庫中,這種規(guī)則可以用關(guān)聯(lián)規(guī)則進(jìn)行發(fā)現(xiàn)。具體實現(xiàn)的步驟如下:(1)對代碼庫中類與類的關(guān)系進(jìn)行搜索,并將其與其余類的關(guān)系存在代碼庫中;(2)對關(guān)聯(lián)規(guī)則進(jìn)行挖掘。這種規(guī)則的挖掘細(xì)分為兩個問題:出現(xiàn)頻率高的規(guī)則的發(fā)現(xiàn),文獻(xiàn)中使用的是Apriori算法;(3)對挖掘出的結(jié)果進(jìn)行裁剪。對結(jié)果進(jìn)行刷選,去掉一些無用的關(guān)聯(lián),向開發(fā)者提供更精煉的信息;(4)對不同的關(guān)聯(lián)關(guān)系根據(jù)其在代碼庫中出現(xiàn)的頻率進(jìn)行排序,然后以列表形式呈現(xiàn)出來。

    2.1.3 動態(tài)規(guī)則的重用

    對于動態(tài)規(guī)則的重用已有很多研究,文獻(xiàn)[5]采用了在編譯器中安裝一個插件用來查看代碼是否符合某種動態(tài)規(guī)則,然后將不符合規(guī)則的以錯誤的形式告知開發(fā)者。

    具體實現(xiàn)步驟如下:(1)開發(fā)者可對動態(tài)規(guī)則的順序進(jìn)行規(guī)定,在調(diào)用某一函數(shù)之前不能調(diào)用另一函數(shù);(2)利用隊列等簡單的數(shù)據(jù)數(shù)據(jù)結(jié)構(gòu)對結(jié)果進(jìn)行保存,然后再編譯器擴(kuò)展中對其順序進(jìn)行檢查;(3)對違反規(guī)則的代碼進(jìn)行反饋。

    但是在實際開發(fā)過程中,開發(fā)者很難對動態(tài)規(guī)則進(jìn)行預(yù)先的設(shè)定。文獻(xiàn)[6]提出了一種自動發(fā)現(xiàn)這種規(guī)則的方式。主要利用人們的開發(fā)時習(xí)慣性遵循的規(guī)則,而違反此規(guī)則的可能出現(xiàn)問題。文獻(xiàn)[6]主要針對兩個事件發(fā)生的順序進(jìn)行發(fā)現(xiàn)。例如對于A事件必須發(fā)生在B事件之后,對于此類規(guī)則的發(fā)現(xiàn),首先將先后調(diào)用的相同函數(shù)都設(shè)為規(guī)則,對每個規(guī)則進(jìn)行驗證,看每個規(guī)則是否成立。鑒于其得到的函數(shù)對可能非常之多,首先利用一些函數(shù)命名規(guī)則降低其數(shù)目,去除一些不可能的函數(shù)對,然后對剩下的函數(shù)對進(jìn)行匹配。

    3 結(jié)束語

    目前對于軟件工程的數(shù)據(jù)挖掘還在起步階段,對于其研究還有很長的路要走。雖然有些公司已經(jīng)發(fā)布了一些軟件工程數(shù)據(jù)挖掘系統(tǒng)的框架,但距離商業(yè)化的應(yīng)用還有相當(dāng)一段距離,還有很多的研究要做。單從軟件開發(fā)階段所面臨的挑戰(zhàn)就如此之多,另外還有對軟件工程數(shù)據(jù)的維護(hù)和修改方面的問題就更多。比如,對于檢索結(jié)果的表示就有很大的分歧。相信隨著以后研究的不斷發(fā)展,軟件工程數(shù)據(jù)挖掘的技術(shù)將會更加成熟,工具也會更加實用化,友好化,直至現(xiàn)實真正的數(shù)據(jù)自動挖掘系統(tǒng)。

    參考文獻(xiàn):

    [1]毛澄映,盧炎生,胡小華.數(shù)據(jù)挖掘技術(shù)在軟件工程中的應(yīng)用綜述[J].計算機(jī)科學(xué),2009(05).

    [2]李新,張曉靜,米燕濤.軟件開發(fā)過程中的數(shù)據(jù)挖掘[J].石家莊職業(yè)技術(shù)學(xué)院學(xué)報,2007(02).

    [3]張增敏,謝嘉,李長河,隋連升.數(shù)據(jù)挖掘技術(shù)在變電站設(shè)備及缺陷管理系統(tǒng)中的應(yīng)用[J].山東農(nóng)業(yè)大學(xué)學(xué)報(自然科學(xué)版),2006(04).

    [4]徐巍,覃俊.數(shù)據(jù)挖掘技術(shù)在電力負(fù)荷管理系統(tǒng)中的應(yīng)用[J].現(xiàn)代電子技術(shù),2008(10).

    [5]趙志升,羅德林,李海英.數(shù)據(jù)挖掘技術(shù)與應(yīng)用[J].河北北方學(xué)院學(xué)報(自然科學(xué)版),2006(06).

    [6]郁抒思,周水庚,關(guān)佶紅.軟件工程數(shù)據(jù)挖掘研究進(jìn)展[J].計算機(jī)科學(xué)與探索,2012(01):1-31.

    作者簡介:王剛(1983.12-),男,河北黃驊人,本科,助教,研究方向:計算機(jī)應(yīng)用技術(shù);趙玥(1986.10-),男,河北保定人,本科,助教,研究方向:軟件工程。

    作者單位:北京交通大學(xué)海濱學(xué)院,河北滄州 061100

    汽车| 佛冈县| 道孚县| 泸溪县| 阿图什市| 东丽区| 巴林右旗| 锦屏县| 宜城市| 阜城县| 高尔夫| 嘉义县| 襄樊市| 灯塔市| 米林县| 和田县| 鸡泽县| 曲麻莱县| 乌拉特前旗| 辉县市| 阿瓦提县| 新竹市| 丹阳市| 嵊州市| 莱西市| 竹山县| 宁晋县| 陇南市| 永年县| 稷山县| 红河县| 昭苏县| 防城港市| 东兰县| 阿拉善盟| 邮箱| 通城县| 武穴市| 广州市| 乳源| 合肥市|