孫樹田
天津開發(fā)區(qū)先特網(wǎng)絡(luò)系統(tǒng)有限公司 天津 300000
在大數(shù)據(jù)分析領(lǐng)域,數(shù)據(jù)挖掘是一個(gè)新興概念。數(shù)據(jù)挖掘的關(guān)鍵是對(duì)數(shù)據(jù)量大、價(jià)值密度低的數(shù)據(jù)進(jìn)行有效分析,提取出具有應(yīng)用價(jià)值和研究?jī)r(jià)值的信息數(shù)據(jù),從而進(jìn)一步提高數(shù)據(jù)的應(yīng)用率。軟件工程經(jīng)歷了多年的發(fā)展,軟件開發(fā)和項(xiàng)目管理也面臨著數(shù)據(jù)分析問(wèn)題,如漏洞分析和源代碼管理等。軟件在長(zhǎng)時(shí)間運(yùn)行下不斷積累數(shù)據(jù),但數(shù)據(jù)量不斷增加,傳統(tǒng)的處理手段無(wú)法實(shí)現(xiàn)綜合處理,因此數(shù)據(jù)挖掘技術(shù)在軟件工程中的有效應(yīng)用成為當(dāng)前的研究熱點(diǎn)。
數(shù)據(jù)挖掘技術(shù)是一種現(xiàn)代信息處理技術(shù),與傳統(tǒng)的信息處理技術(shù)相比具有非常明顯的功能優(yōu)勢(shì),因此在許多行業(yè)得到了廣泛的應(yīng)用。目前,在軟件工程領(lǐng)域,對(duì)數(shù)據(jù)挖掘技術(shù)應(yīng)用價(jià)值的研究還很少,很多軟件工程都采用傳統(tǒng)的數(shù)據(jù)處理技術(shù),難以提高數(shù)據(jù)處理的效率。數(shù)據(jù)挖掘技術(shù)是包含多種功能的,不同功能之間也有明顯的聯(lián)系,可以實(shí)現(xiàn)綜合評(píng)價(jià),對(duì)于部分軟件工程來(lái)說(shuō),數(shù)據(jù)挖掘技術(shù)的應(yīng)用最明顯的優(yōu)勢(shì)是數(shù)據(jù)處理效率得到了顯著的提升,數(shù)據(jù)丟失等問(wèn)題也得到了很好的解決,為企業(yè)的發(fā)展提供了有效的保障。
數(shù)據(jù)挖掘技術(shù)還包括傳統(tǒng)信息處理中的各種重要功能。信息收集后,可根據(jù)數(shù)據(jù)信息的具體類型進(jìn)行分類處理。在這種處理機(jī)制下,數(shù)據(jù)挖掘技術(shù)所涉及的業(yè)務(wù)范圍也進(jìn)一步擴(kuò)大,可以結(jié)合數(shù)據(jù)分析的具體特點(diǎn),在海量數(shù)據(jù)資源中建立起功能完備的信息管理系統(tǒng),它可以幫助人們快速檢索所需的數(shù)據(jù)資源。數(shù)據(jù)挖掘技術(shù)在軟件工程中的應(yīng)用還可以集成大量的信息,幫助企業(yè)快速掌握數(shù)據(jù)信息的各個(gè)方面。
數(shù)據(jù)挖掘技術(shù)的操作水平很高,傳統(tǒng)的數(shù)據(jù)信息系統(tǒng)在操作過(guò)程中往往需要很高的時(shí)間成本,在某些情況下,操作系統(tǒng)可能會(huì)因數(shù)據(jù)處理量大而崩潰。數(shù)據(jù)挖掘技術(shù)的應(yīng)用可以有效地避免這一問(wèn)題,在操作過(guò)程中提高效率也可以進(jìn)一步避免操作過(guò)程中的數(shù)據(jù)丟失或混亂,增強(qiáng)數(shù)據(jù)處理的整體效果。對(duì)于大規(guī)模數(shù)據(jù)的操作,一些垃圾數(shù)據(jù)沒(méi)有使用價(jià)值,但可能存儲(chǔ)在數(shù)據(jù)處理系統(tǒng)中,影響系統(tǒng)的運(yùn)行效率。數(shù)據(jù)挖掘技術(shù)的應(yīng)用還可以處理這些垃圾數(shù)據(jù),并將有價(jià)值的信息輸入到系統(tǒng)中。
對(duì)于數(shù)據(jù)挖掘技術(shù)來(lái)說(shuō),數(shù)據(jù)轉(zhuǎn)換也是最重要的優(yōu)勢(shì)之一,它可以將混沌數(shù)據(jù)信息整合成一種使用形式,并且這些混沌信息整合后也可以被合理利用。在雜項(xiàng)數(shù)據(jù)挖掘過(guò)程中,可以自動(dòng)選擇合理的分析模式,及時(shí)處理模糊數(shù)據(jù),使最終的數(shù)據(jù)結(jié)果得到充分利用[1]。結(jié)合所獲得的數(shù)據(jù),從不同的方向檢驗(yàn)數(shù)據(jù)的真實(shí)性和價(jià)值,并將真實(shí)數(shù)據(jù)進(jìn)行整合,使數(shù)據(jù)具有可讀性,即將分析結(jié)果作為參考的新知識(shí)。數(shù)據(jù)分析的過(guò)程一般比較復(fù)雜,需要對(duì)不同的過(guò)程進(jìn)行多次驗(yàn)證才能得到真實(shí)的運(yùn)行結(jié)果。然而,數(shù)據(jù)挖掘技術(shù)在軟件工程中的有效應(yīng)用可以全面提高數(shù)據(jù)操作的效率和質(zhì)量。
可以實(shí)現(xiàn)全方位的信息數(shù)據(jù)控制,軟件工程和軟件工程的應(yīng)用范圍也很廣,需要涉及軟件開發(fā)過(guò)程中的信息類型,同時(shí)軟件工程的版本可以統(tǒng)一控制信息數(shù)據(jù),確保軟件在開發(fā)過(guò)程中能夠執(zhí)行各種數(shù)據(jù)資源的同步更新,進(jìn)一步保證軟件開發(fā)的質(zhì)量和開發(fā)過(guò)程的效率,使開發(fā)項(xiàng)目目標(biāo)能夠順利實(shí)現(xiàn)。在數(shù)據(jù)挖掘的過(guò)程中,包括軟件開發(fā)替換的數(shù)據(jù),技術(shù)人員可以快速區(qū)分軟件的內(nèi)部結(jié)構(gòu),也可以充分利用數(shù)據(jù)挖掘技術(shù)的優(yōu)勢(shì),在后續(xù)工作中可以快速發(fā)現(xiàn)軟件的內(nèi)部問(wèn)題并加以解決,完成軟件開發(fā)任務(wù)。
在軟件工程中,漏洞檢測(cè)作為工作中不可缺少的一部分,能夠保證軟件開發(fā)的質(zhì)量和系統(tǒng)的安全運(yùn)行,及時(shí)發(fā)現(xiàn)和消除隱患??焖傩迯?fù)軟件漏洞可以為用戶提供更穩(wěn)定的保護(hù)。在數(shù)據(jù)挖掘技術(shù)的應(yīng)用中,漏洞檢測(cè)不僅要對(duì)軟件進(jìn)行基本測(cè)試內(nèi)容,還要進(jìn)行相關(guān)性測(cè)試,對(duì)與軟件漏洞相關(guān)的項(xiàng)目?jī)?nèi)容也要進(jìn)行全面測(cè)試,以滿足軟件開發(fā)的實(shí)際需求。數(shù)據(jù)挖掘技術(shù)可以結(jié)合記錄的內(nèi)容對(duì)數(shù)據(jù)進(jìn)行分析,改進(jìn)分析結(jié)果,進(jìn)而決定采用哪種測(cè)試模式來(lái)完成測(cè)試工作,以確保測(cè)試模式的選擇更符合軟件工程的實(shí)際需求。在脆弱性數(shù)據(jù)處理方面,數(shù)據(jù)挖掘技術(shù)需要首先對(duì)數(shù)據(jù)進(jìn)行清理,然后對(duì)相關(guān)數(shù)據(jù)進(jìn)行分析提取,去除沒(méi)有應(yīng)用價(jià)值的數(shù)據(jù),然后補(bǔ)充內(nèi)容中缺失的部分,以數(shù)據(jù)的形式呈現(xiàn)出來(lái)。此外,數(shù)據(jù)挖掘技術(shù)在軟件脆弱性中的應(yīng)用需要選擇合理有效的數(shù)據(jù)模型來(lái)完成分析驗(yàn)證工作,并盡可能選擇可行的挖掘模式使其成為測(cè)試集[2]。相關(guān)系統(tǒng)還需要對(duì)運(yùn)行結(jié)果進(jìn)行比較,選擇最合理的結(jié)果。在漏洞檢測(cè)和分類軟件漏洞和描述中,更新數(shù)據(jù)庫(kù)中的軟件漏洞數(shù)據(jù),使任何其他相關(guān)軟件或系統(tǒng)能夠從待獲取的數(shù)據(jù)庫(kù)數(shù)據(jù)中及時(shí)應(yīng)對(duì)類似問(wèn)題,從而快速操作,減少泄漏檢測(cè)所需時(shí)間的同時(shí)也為泄漏檢測(cè)和解決提供了參考依據(jù),因此在更新漏洞數(shù)據(jù)時(shí)應(yīng)保證數(shù)據(jù)分類的合理性。
對(duì)于軟件工程來(lái)說(shuō),開源軟件是數(shù)據(jù)挖掘的主要目標(biāo),其中克隆代碼檢測(cè)起著關(guān)鍵的作用和意義,并且廣泛應(yīng)用于源文件開發(fā)中,可以快速?gòu)?fù)制和復(fù)制數(shù)據(jù)??寺〈a技術(shù)可以進(jìn)一步提高代碼復(fù)制和代碼粘貼的效率,也有助于代碼檢測(cè)工作的快速實(shí)施,進(jìn)一步避免軟件工程系統(tǒng)受到代碼的漏洞,提高軟件系統(tǒng)后期的維護(hù)工作,為其開發(fā)提供更有利的條件。然而,開源軟件的數(shù)據(jù)挖掘項(xiàng)目也有一定的影響因素,如環(huán)境的開放性和動(dòng)態(tài)性會(huì)帶來(lái)一定的影響,尤其是軟件的開發(fā)和管理,這與傳統(tǒng)的軟件開發(fā)明顯不同。但是,一些技術(shù)相對(duì)完善的開源軟件大多會(huì)記錄錯(cuò)誤報(bào)告、軟件應(yīng)用情況和開發(fā)者信息,幫助開發(fā)者根據(jù)發(fā)展特點(diǎn)快速建立典型的社交網(wǎng)絡(luò),快速了解和掌握網(wǎng)絡(luò)的動(dòng)態(tài)變化。此外,工作人員還需要進(jìn)一步探索開源軟件的動(dòng)態(tài),加強(qiáng)開源項(xiàng)目管理的整體效果
執(zhí)行記錄的數(shù)據(jù)挖掘也是軟件工程數(shù)據(jù)挖掘的核心內(nèi)容。對(duì)軟件系統(tǒng)的執(zhí)行路徑進(jìn)行有效的分析,可以幫助工作人員掌握軟件工程中不同系統(tǒng)模塊的工作代碼之間的聯(lián)系。記錄挖掘操作也是通過(guò)跟蹤軟件進(jìn)行逆向建模的過(guò)程,可以提高對(duì)軟件工作系統(tǒng)的理解、跟蹤、維護(hù)等方面的有效性。在執(zhí)行過(guò)程中記錄挖掘數(shù)據(jù),還著重分析程序的執(zhí)行過(guò)程,有利于掌握程序代碼之間的相關(guān)性,在應(yīng)用過(guò)程中執(zhí)行記錄實(shí)際挖掘需要分析工作系統(tǒng)的具體情況,通過(guò)使用挖掘軟件完成應(yīng)用程序的結(jié)構(gòu)編程工作,記錄系統(tǒng)各方面的信息,建立系統(tǒng)功能模塊。
隨著數(shù)據(jù)挖掘技術(shù)在瑞軟件開發(fā)中應(yīng)用的日益頻繁,其應(yīng)用方法也受到人們的廣泛關(guān)注。目前在軟件工程開發(fā)中運(yùn)用數(shù)據(jù)挖掘技術(shù),最為常用的方法主要有以下幾種。
所謂關(guān)聯(lián)法,主要是指一種關(guān)注兩個(gè)事物之間的內(nèi)在聯(lián)系和外在聯(lián)系的研究方法。在數(shù)據(jù)挖掘技術(shù)中,關(guān)聯(lián)方法經(jīng)常應(yīng)用于數(shù)據(jù)的處理和采集[3]。在實(shí)際應(yīng)用中,相關(guān)法的工作原理主要體現(xiàn)在相關(guān)性和趣味性相關(guān)性上?;谶@兩個(gè)關(guān)聯(lián)原則,數(shù)據(jù)挖掘技術(shù)與軟件工程的關(guān)系包括支持度和置信度,這也是檢測(cè)挖掘出的關(guān)聯(lián)規(guī)則是否有效的重要指標(biāo)。具體而言,支持度可以用公式P(A)表示∪B) ,這是兩個(gè)∪B和一組A可以出現(xiàn)在事務(wù)集D中。置信度屬性可以用公式P(B | A)表示,主要是指當(dāng)事務(wù)集D中出現(xiàn)項(xiàng)目集A時(shí),項(xiàng)目集B的出現(xiàn)概率。
分類法可以簡(jiǎn)單地看作是一種可以使用分類標(biāo)簽預(yù)測(cè)的執(zhí)行操作。在分類法的實(shí)際應(yīng)用中,需要確保有一個(gè)相應(yīng)的分析模型作為基礎(chǔ),即需要建立一個(gè)與分類法對(duì)應(yīng)的分析類型。同時(shí),分析模型本身必須有一定的應(yīng)用基礎(chǔ),這就需要提前引入數(shù)據(jù)類集或概念集。目前,在軟件工程領(lǐng)域分類的實(shí)際應(yīng)用中,判斷樹方法是最常用的方法,它還包括神經(jīng)網(wǎng)絡(luò)分類、K-最近分類等小方法。應(yīng)該注意的是,在使用分類法時(shí),有必要清楚地理解和掌握計(jì)算方法及其適用范圍,以便以最低的成本獲得最佳結(jié)果。
所謂聚類方法是根據(jù)一定的分類標(biāo)準(zhǔn)將研究工作中涉及的數(shù)據(jù)對(duì)象細(xì)化為不同的類和不同的聚類的過(guò)程。同時(shí),在此過(guò)程中,有必要確保同類數(shù)據(jù)對(duì)象和集群之間有高度的了解。相反,不同類別和集群的數(shù)據(jù)之間必須存在相對(duì)明顯的差異??梢哉f(shuō),聚類方法與上述分類方法有著本質(zhì)的區(qū)別。用聚類方法劃分的數(shù)據(jù)對(duì)象不能作為指導(dǎo)學(xué)習(xí)的方法,即不能進(jìn)行預(yù)測(cè)。然而,聚類方法可以應(yīng)用于其他算法的預(yù)處理,特別是在數(shù)據(jù)分布信息的獨(dú)立分析中,聚類方法得到了廣泛的應(yīng)用。這是因?yàn)榫垲惙椒ㄔ诠铝Ⅻc(diǎn)挖掘中具有非常有利的性能。
數(shù)據(jù)挖掘技術(shù)在軟件工程中應(yīng)用的根本目的是最大限度地提高軟件開發(fā)的質(zhì)量和效率,為后續(xù)的管理工作打下良好的基礎(chǔ)。因此,數(shù)據(jù)挖掘技術(shù)在軟件工程中的每一個(gè)要素都必須隨著軟件工程的發(fā)展而不斷優(yōu)化和更新,從而促進(jìn)軟件工程與數(shù)據(jù)挖掘技術(shù)更緊密地結(jié)合,發(fā)揮最佳作用。因此,數(shù)據(jù)挖掘技術(shù)在未來(lái)的發(fā)展和應(yīng)用過(guò)程中,應(yīng)朝著更高性能的挖掘研究方向努力前進(jìn)。也就是說(shuō),針對(duì)軟件工程中數(shù)據(jù)挖掘技術(shù)存在的實(shí)際問(wèn)題,需要開發(fā)一種性能更高的挖掘算法[4]。值得注意的是,目前在軟件工程中,雖然絕大多數(shù)測(cè)試工具都能檢測(cè)出違反給定程序的動(dòng)態(tài)或靜態(tài)規(guī)則所造成的缺陷,但要檢測(cè)出容易出現(xiàn)缺陷的信息,可以根據(jù)軟件執(zhí)行,但仍然存在一大缺陷,對(duì)于更復(fù)雜的缺陷,很難準(zhǔn)確檢測(cè)。因此,發(fā)展方向應(yīng)該是更廣泛的復(fù)雜缺陷檢測(cè)工具。同時(shí),面對(duì)近年來(lái)軟件工程規(guī)模的逐步擴(kuò)大,軟件需求的進(jìn)一步增加,無(wú)論是在細(xì)化軟件開發(fā)工具,還是在軟件開發(fā)人員的參與方面都提出了更高的要求,軟件開發(fā)周期也進(jìn)一步被迫延長(zhǎng)。針對(duì)這一問(wèn)題,針對(duì)海量數(shù)據(jù)信息,數(shù)據(jù)挖掘技術(shù)應(yīng)該圍繞數(shù)據(jù)降維、特征提取的開放方向發(fā)展,從而開發(fā)出更高效的數(shù)據(jù)預(yù)處理方法。此外,我們應(yīng)該充分結(jié)合人工智能技術(shù)、機(jī)器人技術(shù)等更先進(jìn)的科學(xué)技術(shù),完善數(shù)據(jù)挖掘技術(shù)本身,以便更好地服務(wù)于軟件工程的各個(gè)領(lǐng)域。
數(shù)據(jù)挖掘技術(shù)已經(jīng)成為軟件工程不斷發(fā)展和進(jìn)步的關(guān)鍵。因此,在未來(lái)的軟件工程中,更應(yīng)加強(qiáng)數(shù)據(jù)挖掘技術(shù)與軟件開發(fā)、軟件管理等工作環(huán)節(jié)的有機(jī)融合,讓更多科學(xué)合理的數(shù)據(jù)挖掘技術(shù)應(yīng)用于軟件工程領(lǐng)域,促進(jìn)軟件產(chǎn)品的優(yōu)化升級(jí),更好地服務(wù)于客戶,服務(wù)于企業(yè),服務(wù)于現(xiàn)代科技的發(fā)展。