司婉瑩
摘要:就軟件工程項(xiàng)目當(dāng)中數(shù)據(jù)挖掘技術(shù)應(yīng)用的實(shí)際情況來看,信息規(guī)則挖掘技術(shù)已經(jīng)逐漸被應(yīng)用到了很多行業(yè)領(lǐng)域當(dāng)中,成功地完成了對(duì)龐大數(shù)據(jù)的分析和整理,并且將提取到有用信息展現(xiàn)在人們面前,基于此,本文將針對(duì)軟件工程當(dāng)中的數(shù)據(jù)挖掘技術(shù)的研究進(jìn)展展開分析,研究數(shù)據(jù)挖掘技術(shù)之所以被得到廣泛應(yīng)用的原因以及開發(fā)過程當(dāng)中所面臨的挑戰(zhàn),旨在能夠進(jìn)一步加深對(duì)該項(xiàng)技術(shù)的理解。
關(guān)鍵詞:軟件工程;數(shù)據(jù)挖掘;研究進(jìn)展
0 前言
軟件工程的數(shù)據(jù)挖掘技術(shù)是數(shù)據(jù)庫知識(shí)發(fā)現(xiàn)的重要組成部分,具有復(fù)雜性、挖掘結(jié)果的特殊及多元化等,能在一定程度上可以促進(jìn)信息產(chǎn)業(yè)的進(jìn)一步發(fā)展。軟件開發(fā)階段的數(shù)據(jù)挖掘主要是編寫程序。雖然我國(guó)數(shù)據(jù)挖掘技術(shù)有了較大的發(fā)展,但是此技術(shù)還未得到廣泛的應(yīng)用,主要原因是應(yīng)用軟件可以有效提供需要分析的數(shù)據(jù)。由于大量的數(shù)據(jù)挖掘法得到了較大的發(fā)展,軟件的開發(fā)水平也有了很大的提高,因此,對(duì)于軟件工程數(shù)據(jù)挖掘技術(shù)的應(yīng)用還需要大家對(duì)其加強(qiáng)一定的重視。本文具體介紹了軟件工程數(shù)據(jù)挖掘的掘應(yīng)用現(xiàn)狀及發(fā)展趨勢(shì)。
1 數(shù)據(jù)挖掘的基本概述
軟件工程數(shù)據(jù)主要是指開發(fā)軟件過程中所涉及的各類數(shù)據(jù),如需求分析、可行性分析、設(shè)計(jì)等文檔,開發(fā)商通信、軟件注釋、代碼、版本、測(cè)試用例和結(jié)果、使用說明、用戶反饋等信息數(shù)據(jù),一般情況下其是軟件開發(fā)者獲取軟件數(shù)據(jù)的唯一來源;而數(shù)據(jù)挖掘是指在海量數(shù)據(jù)中集中發(fā)現(xiàn)有用知識(shí)或信息的過程。
軟件工程數(shù)據(jù)挖掘的工作原理 主要包括數(shù)據(jù)預(yù)處理階段、挖掘階段以及評(píng)估階段三個(gè)方面。在挖掘階段主要是運(yùn)用分類、統(tǒng)計(jì)、關(guān)聯(lián)、聚類、異常檢測(cè)等一系列算法的過程。在評(píng)估階段數(shù)據(jù)挖掘的意義主要在于其結(jié)果應(yīng)易被用戶理解,其結(jié)果評(píng)估主要有兩個(gè)環(huán)節(jié)分別是模式過濾和模式表示。
數(shù)據(jù)挖掘在計(jì)算機(jī)軟件工程中的研究相當(dāng)多,它是分析數(shù)據(jù)的一種新穎方式。目前,隨著社會(huì)工作的復(fù)雜度,需要更加完善的軟件,因此對(duì)于軟件代碼的數(shù)量也在急劇增加進(jìn)而導(dǎo)致了數(shù)據(jù)量的快速增長(zhǎng)。而傳統(tǒng)的數(shù)據(jù)計(jì)算方式已經(jīng)不能滿足目前對(duì)于大量數(shù)據(jù)進(jìn)行分析的要求,所以,研究者希望能夠發(fā)掘出一種新的數(shù)據(jù)分析方式更高效的整理出有用的數(shù)據(jù)信息。軟件開發(fā)中會(huì)積累大量的數(shù)據(jù),比如說文本數(shù)據(jù),測(cè)試數(shù)據(jù),用戶信息數(shù)據(jù)以及用戶體驗(yàn)反饋數(shù)據(jù)等等,軟件開發(fā)者為了開發(fā)出更好的軟件就必須分析和整理這些數(shù)據(jù)。但是,目前軟件工程開發(fā)的軟件越來越大,其數(shù)據(jù)越累越復(fù)雜對(duì)于數(shù)據(jù)的處理已經(jīng)超出了人工處理的能力的范疇,所以說繼續(xù)使用傳統(tǒng)數(shù)據(jù)處理的方式來收集,整理和分析數(shù)據(jù)已經(jīng)不可能實(shí)現(xiàn)。因此,推動(dòng)了人們對(duì)于新的數(shù)據(jù)處理方式的研究,所以才提出了軟件工程數(shù)據(jù)挖掘技術(shù)。
2 軟件工程數(shù)據(jù)挖掘與傳統(tǒng)數(shù)據(jù)挖掘的區(qū)別
2.1 數(shù)據(jù)的復(fù)雜性
與傳統(tǒng)的數(shù)據(jù)挖掘技術(shù)相比,由軟件工程數(shù)據(jù)挖掘技術(shù)進(jìn)行系統(tǒng)分析而得到的數(shù)據(jù)更具復(fù)雜性。軟件工程數(shù)據(jù)除了包含軟件版本以及軟件報(bào)告等方面的信息外,還包含了系統(tǒng)中的代碼與注釋等非結(jié)構(gòu)化的數(shù)據(jù),雖然這兩種數(shù)據(jù)不能以統(tǒng)一的方法進(jìn)行計(jì)算,但在兩種數(shù)據(jù)之間卻存在著密切的聯(lián)系,這就使得通過軟件工程數(shù)據(jù)挖掘技術(shù)而得到的系統(tǒng)數(shù)據(jù)更具復(fù)雜性。
2.2 挖掘結(jié)果的特殊性
在傳統(tǒng)的數(shù)據(jù)挖掘技術(shù)應(yīng)用到軟件測(cè)試工作后,其測(cè)試結(jié)果通常經(jīng)由報(bào)表子系統(tǒng)的處理后,以圖形或表格的形式呈現(xiàn)出來。但就軟件工程數(shù)據(jù)挖掘技術(shù)而言,其所需要具備的功能不單是為用戶提供相關(guān)測(cè)試結(jié)果,其更需要為用戶提供符合或推翻結(jié)果的相關(guān)實(shí)例或軟件缺陷定位方面的信息。
2.3 挖掘結(jié)果的多元化評(píng)價(jià)
數(shù)據(jù)信息挖掘結(jié)果具有多元化的評(píng)價(jià)或者相關(guān)測(cè)試、開發(fā)結(jié)果的評(píng)價(jià)難以統(tǒng)一是軟件工程數(shù)據(jù)挖掘區(qū)別于傳統(tǒng)數(shù)據(jù)挖掘的另一特點(diǎn)。對(duì)于傳統(tǒng)的數(shù)據(jù)挖掘技術(shù)而言,對(duì)挖掘結(jié)果的評(píng)價(jià)已基本形成了統(tǒng)一的意見和評(píng)價(jià)標(biāo)準(zhǔn),但就軟件工程數(shù)據(jù)挖掘而言,由于軟件的開發(fā)人員和測(cè)試人員對(duì)數(shù)據(jù)信息的要求較為具體和嚴(yán)格,數(shù)據(jù)結(jié)果也具有較強(qiáng)的復(fù)雜性。因此,挖掘結(jié)果的評(píng)價(jià)方法也較為復(fù)雜。
綜上所述,如何將軟件測(cè)試的結(jié)果和對(duì)測(cè)試階段數(shù)據(jù)預(yù)處理方面的結(jié)果進(jìn)行有效表述已成為當(dāng)前軟件工程數(shù)據(jù)挖掘技術(shù)應(yīng)用的難點(diǎn)。所以,下文則著重從軟件工程數(shù)據(jù)挖掘在軟件測(cè)試階段的應(yīng)用方法展開了詳細(xì)分析。
3 軟件工程數(shù)據(jù)挖掘在軟件開發(fā)階段的問題和解決對(duì)策
3.1 重用代碼
開發(fā)者要了解所需的方法或者類,然后才能進(jìn)行代碼的重用,對(duì)相關(guān)代碼進(jìn)行瀏覽。這需要耗費(fèi)過多的時(shí)間,可以在代碼庫中通過關(guān)鍵字來尋找可以重用的代碼,這是由于可以重用的代碼必然存在相似的模式,通過上下文結(jié)構(gòu)可以呈現(xiàn)最終的結(jié)果,例如類與類的關(guān)系。首先要將具有上下文架構(gòu)和例程的代碼庫構(gòu)建出來。其次,開發(fā)者將類的信息提交到代碼庫,并對(duì)反饋結(jié)果打分,將代碼庫組建出來。第三,按照高低分來排序查詢時(shí)的例程,開發(fā)者可以自行選用查詢結(jié)果。
3.2 重用靜態(tài)規(guī)則
利用軟件工程數(shù)據(jù)挖掘來重用靜態(tài)規(guī)則,開發(fā)者可以重復(fù)利用靜態(tài)規(guī)則,在代碼庫中用類與類的關(guān)系的形式將其保存下來,可以用關(guān)聯(lián)規(guī)則來發(fā)泄這種規(guī)則。首先,搜索代碼庫中內(nèi)力的關(guān)系,在代碼庫中保存其與其余類的關(guān)系。其次,挖掘關(guān)聯(lián)規(guī)則??梢允褂肁priori算法來發(fā)現(xiàn)出現(xiàn)頻率高的規(guī)則。第三,裁剪挖掘出的結(jié)果。也就是在篩選結(jié)中將無用的關(guān)聯(lián)去掉,使開發(fā)者能夠得到更為精煉的信息。第四,根據(jù)關(guān)聯(lián)關(guān)系在代碼庫中出現(xiàn)的頻率,用列表的形式呈現(xiàn)頻率的排序。
3.3 重用動(dòng)態(tài)規(guī)則
首先,開發(fā)者要制定動(dòng)態(tài)規(guī)則的順序。其次,將結(jié)果利用隊(duì)列等簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu)保存起來,開發(fā)者可以在編譯器擴(kuò)展中檢查結(jié)果的順序。第三,反饋違反規(guī)則的代碼。
在動(dòng)態(tài)規(guī)則的具體重用過程中,由于開發(fā)者往往不能預(yù)先設(shè)定動(dòng)態(tài)規(guī)則,因此,有研究提出了自動(dòng)發(fā)現(xiàn)這種規(guī)則。自動(dòng)發(fā)現(xiàn)規(guī)則主要是根據(jù)軟件開發(fā)者的習(xí)慣性,以及違反規(guī)則可能出現(xiàn)的問題,發(fā)現(xiàn)兩個(gè)事件發(fā)生的順序。例如B事件必然發(fā)生在A事件之前,發(fā)現(xiàn)此類規(guī)則之后就可以規(guī)則設(shè)定為先后調(diào)用的相同函數(shù),然后驗(yàn)證每一個(gè)規(guī)則,得出每個(gè)規(guī)則成立與否。由于可能會(huì)得到數(shù)量非常多的函數(shù),為了降低函數(shù)的數(shù)目,可以使用一些函數(shù)命名規(guī)則,將不可能的函數(shù)對(duì)去除掉,然后再匹配剩下的函數(shù)對(duì)。
4 結(jié)束語
在軟件工程的數(shù)據(jù)挖掘過程中,數(shù)據(jù)挖掘的概念才逐步被定義,但是所需要挖掘的數(shù)據(jù)是已經(jīng)存在的。數(shù)據(jù)挖掘技術(shù)在軟件工程中的運(yùn)用能夠降低研發(fā)人員的工作量,同時(shí)軟件工程與數(shù)據(jù)挖掘的結(jié)合是計(jì)算機(jī)技術(shù)必然的發(fā)展方向。從數(shù)據(jù)挖掘的過程來講,在其整個(gè)實(shí)施過程和周期中都包括軟件工程。而對(duì)數(shù)據(jù)挖掘的技術(shù)手段來講,它在軟件工程中的運(yùn)用更加普遍。在對(duì)數(shù)據(jù)挖掘技術(shù)的研究過程中可以發(fā)現(xiàn),該技術(shù)雖然已經(jīng)獲得一定的效果,但是還有更多未被挖掘的空間,還需要進(jìn)一步的研究和發(fā)現(xiàn)。
參考文獻(xiàn):
[1]馬保平.關(guān)于對(duì)軟件工程中的數(shù)據(jù)挖掘技術(shù)的探討[J].電子技術(shù)與軟件工程,2015,19:196-197.
[2]黃世云.軟件工程數(shù)據(jù)挖掘研究進(jìn)展概述[J].電子技術(shù)與軟件工程,2014,21:89.
[3]魏敏.數(shù)據(jù)挖掘技術(shù)的持續(xù)改進(jìn)[J].今日科技,2013(23).
[4]徐巍,覃俊.數(shù)據(jù)挖掘技術(shù)在電力負(fù)荷管理系統(tǒng)中的應(yīng)用[J].現(xiàn)代電子技術(shù),2008(10).