一、數(shù)據(jù)挖掘技術(shù)在軟件工程領(lǐng)域中的應(yīng)用
1、軟件漏洞檢測(cè)
軟件漏洞檢測(cè)是數(shù)據(jù)挖掘技術(shù)在軟件工程領(lǐng)域中需要協(xié)助的軟件工程目標(biāo)之一。軟件漏洞檢測(cè)的目的就是要找出軟件系統(tǒng)在開(kāi)發(fā)過(guò)程中存在的錯(cuò)誤與漏洞問(wèn)題,對(duì)存在的問(wèn)題進(jìn)行及時(shí)的修改與修復(fù),確保軟件系統(tǒng)的質(zhì)量與安全運(yùn)行。通常情況下應(yīng)用數(shù)據(jù)挖掘技術(shù)進(jìn)行軟件漏洞檢測(cè)主要有五個(gè)部分:①要確立軟件測(cè)試的項(xiàng)目。從用戶的角度出發(fā),了解用戶都有哪些需求,然后決定軟件要進(jìn)行哪些方面的測(cè)試與怎樣進(jìn)行軟件測(cè)試,制定出軟件測(cè)試的計(jì)劃與實(shí)施方案;②進(jìn)行軟件系統(tǒng)漏洞庫(kù)數(shù)據(jù)信息的收集、清理與轉(zhuǎn)換。采集軟件系統(tǒng)的信息與數(shù)據(jù),抽取出軟件系統(tǒng)中存在漏洞缺陷的數(shù)據(jù)信息,清理掉系統(tǒng)中無(wú)用與多余的數(shù)據(jù)信息,補(bǔ)充系統(tǒng)中丟掉與缺少的項(xiàng)目數(shù)據(jù)信息,將系統(tǒng)數(shù)據(jù)信息轉(zhuǎn)化成信息與知識(shí)方式;③選擇合適的軟件系統(tǒng)數(shù)據(jù)挖掘信息,然后進(jìn)行數(shù)據(jù)信息的驗(yàn)證與訓(xùn)練。通過(guò)數(shù)據(jù)挖掘技術(shù)對(duì)軟件系統(tǒng)數(shù)據(jù)的訓(xùn)練與測(cè)試結(jié)果,結(jié)合軟件工程項(xiàng)目的需求,選擇合理的數(shù)據(jù)挖掘方法;④對(duì)軟件系統(tǒng)中存在的缺陷漏洞進(jìn)行分類、定位與描述。將找出的軟件系統(tǒng)漏洞運(yùn)用數(shù)據(jù)挖掘技術(shù),根據(jù)一定的規(guī)則進(jìn)行軟件系統(tǒng)漏洞的分類、定位與描述;⑤數(shù)據(jù)挖掘技術(shù)在軟件測(cè)試項(xiàng)目中的應(yīng)用。運(yùn)行數(shù)據(jù)挖掘技術(shù)將挖掘出來(lái)的數(shù)據(jù)信息轉(zhuǎn)化成知識(shí),并將轉(zhuǎn)化后的知識(shí)保存到數(shù)據(jù)庫(kù)當(dāng)中,然后對(duì)軟件系統(tǒng)進(jìn)行重新測(cè)試,確認(rèn)漏洞現(xiàn)象是否存在,然后將測(cè)試后的結(jié)果應(yīng)用到軟件開(kāi)發(fā)項(xiàng)目當(dāng)中。
2、執(zhí)行記錄挖掘
執(zhí)行記錄挖掘?qū)儆谲浖こ填I(lǐng)域中的挖掘技術(shù)領(lǐng)域。執(zhí)行記錄挖掘目的就是通過(guò)對(duì)軟件系統(tǒng)的程序執(zhí)行路徑進(jìn)行分析,發(fā)現(xiàn)軟件系統(tǒng)程序模塊代碼之間的相互關(guān)聯(lián)。其運(yùn)行實(shí)質(zhì)是就通過(guò)跟蹤軟件系統(tǒng)的執(zhí)行路徑實(shí)現(xiàn)逆向建模,有利于軟件系統(tǒng)程序的理解、跟蹤、維護(hù)與以及驗(yàn)證。
3、開(kāi)源軟件挖掘
開(kāi)源軟件挖掘?qū)儆谲浖こ填I(lǐng)域中的挖掘?qū)ο箢I(lǐng)域??寺〈a檢測(cè)是開(kāi)源軟件挖掘技術(shù)中常用的方法之一,普遍應(yīng)用在大多數(shù)軟件開(kāi)發(fā)源文件當(dāng)中,進(jìn)行數(shù)據(jù)的拷貝與粘貼。采用克隆代碼技術(shù)可以有效進(jìn)行代碼的拷貝與粘貼,然后運(yùn)用克隆代碼檢測(cè)技術(shù)對(duì)代碼進(jìn)行檢測(cè),避免軟件系統(tǒng)中出現(xiàn)漏洞代碼,有利于軟件系統(tǒng)的后期維護(hù)。
二、結(jié)語(yǔ)
隨著軟件工程技術(shù)的系統(tǒng)化與復(fù)雜化發(fā)展,數(shù)據(jù)挖掘技術(shù)的應(yīng)用給軟件開(kāi)發(fā)提供了精確的測(cè)量保障,并且取得了良好的效果。由于數(shù)據(jù)挖掘技術(shù)在軟件工程領(lǐng)域中的應(yīng)用處于初級(jí)發(fā)展階段,通過(guò)對(duì)數(shù)據(jù)挖掘技術(shù)在軟件工程領(lǐng)域應(yīng)用的深入研究,有利于數(shù)據(jù)挖掘技術(shù)在軟件工程領(lǐng)域的廣泛應(yīng)用,有利于提高數(shù)據(jù)挖掘技術(shù)的發(fā)展與創(chuàng)新。
作者:羅韜 羅峰 單位:四川大學(xué)計(jì)算機(jī)學(xué)院 西藏軍區(qū)裝備部