本站小編為你精心準(zhǔn)備了研討數(shù)據(jù)挖掘在軟件工程的運(yùn)用參考范文,愿這些范文能點(diǎn)燃您思維的火花,激發(fā)您的寫作靈感。歡迎深入閱讀并收藏。
1數(shù)據(jù)挖掘技術(shù)在軟件工程中的應(yīng)概述
1.1挖掘執(zhí)行記錄
執(zhí)行記錄的挖掘,主要對程序執(zhí)行路徑進(jìn)行分析,進(jìn)而找出程序代碼中所具有的關(guān)聯(lián)關(guān)系。其應(yīng)用的本質(zhì)是通過跟蹤相應(yīng)的執(zhí)行路徑,然后通過逆向建模實(shí)現(xiàn)其目的,其作用在于維護(hù)、驗證和了解程序。執(zhí)行記錄挖掘的應(yīng)用過程,通常是先初步插裝被分析的系統(tǒng),并對由挖掘軟件對應(yīng)用編程接口,或是基本的系統(tǒng)和模塊調(diào)用的狀態(tài)變量進(jìn)行記錄,最后約簡、聚類和過濾目標(biāo)跟蹤所得的信息,最終使其成為能夠表征系統(tǒng)功能的模型。
1.2檢測漏洞
軟件漏洞檢測的目的,主要在于及時的找出軟件開發(fā)中存在的漏洞或錯誤,確保能夠得到盡快的修復(fù)和完善,確保軟件的質(zhì)量及可靠性。一般數(shù)據(jù)挖掘技術(shù)應(yīng)用于軟件漏洞的檢測,首先需確定對應(yīng)的軟件測試項目,并基于用戶的需求,規(guī)劃出軟件測試的具體內(nèi)容,進(jìn)而決定該用什么樣的方式進(jìn)行測試,從而制定出對策和計劃;然后收集漏洞庫數(shù)據(jù),實(shí)施數(shù)據(jù)的清理和轉(zhuǎn)換。對所需采集的數(shù)據(jù)和信息進(jìn)行分析,選取和軟件缺陷相關(guān)聯(lián)的數(shù)據(jù)集,將多余的、不需要的數(shù)據(jù)清理后,再對丟失的項目采取補(bǔ)充措施,轉(zhuǎn)換數(shù)據(jù)屬性為數(shù)值表示。其次選取恰當(dāng)?shù)臄?shù)據(jù)模型,進(jìn)行驗證和訓(xùn)練。需結(jié)合項目的實(shí)際需求,對其挖掘方式進(jìn)行選擇,促使其成為測試集、訓(xùn)練機(jī)集,進(jìn)而比較所有的結(jié)果,找出最合理和符合需求的方式。同時還需應(yīng)用上面所提的方法,描述、定位和分類軟件的漏洞,并將漏洞庫數(shù)據(jù)的收集應(yīng)用到軟件的數(shù)據(jù)庫,并將未知漏洞找出,然后結(jié)合相應(yīng)規(guī)則描述其漏洞,進(jìn)一步的分類;并在最后把挖掘出的數(shù)據(jù)知識用到軟件測試的項目中。
1.3挖掘開源軟件
開源軟件挖掘項目的開發(fā)環(huán)境具有開放性、全局性和動態(tài)性,因此,對于該類軟件的開發(fā)管理,需和其他的傳統(tǒng)軟件相區(qū)別。通常情況下,比較成熟的開源軟件項目,對于參與其中的錯誤報告、開發(fā)者活動和軟件的應(yīng)用具有較為完整的記錄。參與開發(fā)的人員,能夠組成典型的社會網(wǎng)絡(luò),但因為其具有的開放性,致使參與的人員處于不斷的變化當(dāng)中。同時對于開源軟件中具有的動態(tài)性特征的挖掘,可實(shí)現(xiàn)開源項目的優(yōu)質(zhì)管理。例如,由牛津大學(xué)所開發(fā)的系統(tǒng)Sima,便可對開源項目的使用者和跟蹤者實(shí)施系統(tǒng)性的跟蹤管理。
1.4挖掘版本控制的信息
版本控制系統(tǒng)的應(yīng)用,主要是為保證項目參與者共同編輯的同一檔案的統(tǒng)一性,以便全局性的更新。當(dāng)前的軟件工程開發(fā)應(yīng)用中,大部分均會應(yīng)用版本控制系統(tǒng)實(shí)施軟件開發(fā)工作的管理和保護(hù)。并且挖掘版本信息控制的應(yīng)用方式,主要是對變更歷史信息的挖掘,其應(yīng)用可找出不同模塊,以及子系統(tǒng)之間所存在的相互依存的關(guān)系,并深化對程序中未來變化和引入方式可能存在漏洞的檢測。這類挖掘技術(shù)的應(yīng)用,能夠有效的將系統(tǒng)后期維護(hù)成本降低,避免因為后期變更所產(chǎn)生的漏洞,進(jìn)而具有對后期的軟件維護(hù)、警示作用。
2數(shù)據(jù)挖掘技術(shù)在軟件工程中的應(yīng)用方法
2.1關(guān)聯(lián)方法
挖掘技術(shù)應(yīng)用與軟件工程中的關(guān)聯(lián)方法,其規(guī)則在于發(fā)現(xiàn)大量數(shù)據(jù)中所具有的相關(guān)聯(lián)系及有趣關(guān)聯(lián)。并且關(guān)聯(lián)規(guī)則具有兩個重要特征,其一為支持度,表示為P(A∪B),表明A、B兩個子集在事物集中出現(xiàn)的概率是相同的;其二為置信度,可表示為P(B|A),說明A在事物集中所具有的概率,同樣B也會出現(xiàn)。
2.2分類方法
分類方式的應(yīng)用,主要是對離散值和分類標(biāo)號進(jìn)行操作,一般情況下,首先需建立起相應(yīng)的模型,對其概念集和數(shù)據(jù)類集進(jìn)行描述,之后應(yīng)用模型完成分類。常用的分類方法是判定樹法,主要包括神經(jīng)網(wǎng)絡(luò)分類法、貝葉斯法、K-最臨近法和支持向量機(jī)法等。其中判定樹法的應(yīng)用基礎(chǔ)為貪心算法,應(yīng)用自上至下遞歸的構(gòu)造方式,對其樹、葉子節(jié)點(diǎn)等實(shí)施相應(yīng)的類別標(biāo)號,并確定最終的分類結(jié)果。另外常用的判定樹法為支持向量機(jī)和K-最臨近分類法等。K-最臨近分類法應(yīng)用的基本理為:若某個樣本位于特征空間中時,應(yīng)有K個最相似樣本的大多數(shù),稱為一個類別,并且其樣本也歸屬于這一類別。這類計算方法對于容量較大的自動分類較為適用,若是用以樣本容量比較的分類,則很容易導(dǎo)致錯誤產(chǎn)生。
2.3聚類方法
聚類方式的應(yīng)用,顧名思義,便是把對象數(shù)據(jù)分為多個簇或類,并且保證統(tǒng)一類或簇中的數(shù)據(jù)的相似度較高,同時不同類或簇中的對象具有明顯的差別。常用的聚類方法主要有劃分方法、基于密度的方法、基于模型的方法、基于網(wǎng)格的方法和層次方法。聚類分析的輸入為一組有序?qū)Γ╔,d)或(X,s),其中X所代表的是一組樣本,d和s表示的是相異度或相似度。聚類系統(tǒng)的輸出為某個分區(qū)C={C1,C2,…,Ck},Ci為X子集,也被稱為類。本文就劃分聚類法為例進(jìn)行分析,其基本的應(yīng)用理論為根據(jù)所給出的n個對象數(shù)據(jù)集加以應(yīng)用。其中劃分聚類方法的應(yīng)用,便為應(yīng)用構(gòu)造出k的劃分,并且每一個劃分區(qū)域均代表某一個簇,并且需保證k≤n。k個劃分應(yīng)滿足相關(guān)的條件。首先應(yīng)讓每個簇中均含一個對象;其次,每個對象有且僅屬于某個簇。而給定k的算法,應(yīng)在結(jié)合劃分方法,通過迭代的改變來劃分,確保每一次的迭代后,均優(yōu)于未迭代之前,劃分最好的標(biāo)準(zhǔn)為統(tǒng)一簇中的對象最為接近,不同簇中的對象差異最明顯。
3結(jié)束語
由于軟件工程的復(fù)雜化發(fā)展,促使軟件的開發(fā)更加需要能夠量化且測量精準(zhǔn)的工具,數(shù)據(jù)挖掘的應(yīng)用可較大的滿足軟件開發(fā)者對于這一方面的需求。特別在近年來,數(shù)據(jù)挖掘技術(shù)應(yīng)用于軟件工程,具有較好的經(jīng)濟(jì)效益,并且其驗證測試,以及開發(fā)過程均能為應(yīng)用者提供可靠的決策信息。因此,應(yīng)推進(jìn)數(shù)據(jù)挖掘技術(shù)在軟件工程中的應(yīng)用,促進(jìn)其更深層次的發(fā)展和應(yīng)用。
作者:雷蕾單位:南陽理工學(xué)院