前言:想要寫出一篇引人入勝的文章?我們特意為您整理了軟件工程中的數(shù)據(jù)挖掘技術(shù)應(yīng)用研究范文,希望能給你帶來靈感和參考,敬請(qǐng)閱讀。
摘要:大數(shù)據(jù)的應(yīng)用為各行各業(yè)的數(shù)據(jù)分析工作帶來了巨大的便利。大型軟件工程無論是在技術(shù)還是管理方面都涉及到大量的數(shù)據(jù),但如何有效管理并充分利用這些數(shù)據(jù)是當(dāng)前的難點(diǎn)之一。本文著重從軟件漏洞掃描、執(zhí)行記錄分析、開源軟件挖掘、版本信息管理等方面介紹了據(jù)挖掘技術(shù)在軟件工程中的應(yīng)用,可以為軟件行業(yè)提供參考。
關(guān)鍵詞:數(shù)據(jù)挖掘;軟件工程;大數(shù)據(jù)技術(shù)
數(shù)據(jù)挖掘是大數(shù)據(jù)分析領(lǐng)域中的一個(gè)新的數(shù)據(jù)處理理念,它的核心思想是通過對(duì)數(shù)量巨大、但價(jià)值密度低的數(shù)據(jù)進(jìn)行分析處理,從而提取出一些對(duì)所研究的問題有價(jià)值的信息。隨著軟件工程的發(fā)展,在軟件開發(fā)和項(xiàng)目管理過程中也逐漸出現(xiàn)了海量數(shù)據(jù)分析的難題,例如源代碼管理、版本管理、漏洞分析、系統(tǒng)操作記錄。軟件長期運(yùn)行所積累下來的數(shù)據(jù),由于數(shù)據(jù)量過大,傳統(tǒng)的數(shù)據(jù)處理技術(shù)顯然是不可能完成的。為此,研究數(shù)據(jù)挖掘技術(shù)在軟件工程中的應(yīng)用具有重要意義。
一、軟件工程數(shù)據(jù)挖掘技術(shù)的發(fā)展
數(shù)據(jù)挖掘技術(shù)最早誕生于20世紀(jì)80年代,當(dāng)時(shí)是為了挖掘數(shù)據(jù)庫中的知識(shí)價(jià)值而提出的,并且主要集中在理論研究。隨著大數(shù)據(jù)問題的日益突出,數(shù)據(jù)挖掘技術(shù)開始受到人們的廣泛關(guān)注,研究的焦點(diǎn)也開始由理論轉(zhuǎn)向?qū)嵺`,在各領(lǐng)域中得到了廣泛的應(yīng)用。而軟件工程的概念則是大約產(chǎn)生于20世紀(jì)60年代末,當(dāng)時(shí)則是為了解決“軟件危機(jī)”而提出的。可見,數(shù)據(jù)挖掘技術(shù)與軟件工程在發(fā)展上大致保持同步,這為數(shù)據(jù)挖掘技術(shù)在軟件工程中的應(yīng)用奠定了良好的基礎(chǔ)。進(jìn)入21世紀(jì)以來,軟件工程的發(fā)展更加迅速,在短短十幾年內(nèi)就實(shí)現(xiàn)了許多國家和地區(qū)的信息化改造,使軟件工程進(jìn)入一個(gè)全新的發(fā)展階段。軟件工程的大發(fā)展使得系統(tǒng)中的數(shù)據(jù)越來越多,處理難度日益增加,而此時(shí)的大數(shù)據(jù)技術(shù)已有一定的理論基礎(chǔ),采用數(shù)據(jù)挖掘技術(shù)解決軟件工程中遇到的難題,成為一種必然的選擇。
二、數(shù)據(jù)挖掘在軟件工程中的應(yīng)用
(一)軟件漏洞掃描漏洞檢測是軟件工程的重要內(nèi)容,是發(fā)現(xiàn)安全隱患、提高軟件質(zhì)量、保障系統(tǒng)安全的有效措施。在傳統(tǒng)的漏洞檢測技術(shù)中,由于需要掃描的數(shù)據(jù)量過大,如果逐條依次分析,將導(dǎo)致長時(shí)間的等待,可操作性不強(qiáng)。在漏洞掃描中引入數(shù)據(jù)挖掘技術(shù),可以有效提高掃描效率。典型的基于數(shù)據(jù)挖掘的軟件漏洞掃描應(yīng)用步驟如下:第一,創(chuàng)建測試項(xiàng)目。根據(jù)用戶的具體需求制定軟件測試方案,明確需要掃描哪些類型的漏洞,采用什么方案進(jìn)行掃描。第二,收集漏洞信息。掃描漏洞的前提是要認(rèn)識(shí)漏洞,也就是對(duì)漏洞進(jìn)行定義。需要收集有關(guān)軟件缺陷的大量信息,并對(duì)一些屬性進(jìn)行定量化處理。第三,選擇理論模型。根據(jù)掃描要求,選取適當(dāng)?shù)臄?shù)據(jù)挖掘模型,根據(jù)前期收集的數(shù)據(jù)資料,對(duì)模型進(jìn)行充分的訓(xùn)練,得到有效的訓(xùn)練集與測試集,取得最佳掃描策略。第四,開展漏洞掃描。采用前一步得到的模型,將其應(yīng)用于軟件掃描測試過程,經(jīng)過數(shù)據(jù)的分類和特征分析,提取漏洞信息。第五,根據(jù)掃描結(jié)果,修復(fù)漏洞,并重新掃描以確認(rèn)漏洞的成功修復(fù)。
(二)執(zhí)行記錄分析分析程序的執(zhí)行路徑對(duì)于代碼關(guān)聯(lián)性分析具有重要意義,對(duì)軟件的執(zhí)行記錄進(jìn)行數(shù)據(jù)挖掘,有助于深入理解代碼功能以及軟件的維護(hù)。執(zhí)行記錄的數(shù)據(jù)挖掘在本質(zhì)上看就是對(duì)其執(zhí)行路徑進(jìn)行跟蹤,然后逆向建立模型。其數(shù)據(jù)挖掘的過程一般包含插裝、跟蹤、記錄、分析等步驟。首先在待測試的軟件代碼中插裝相應(yīng)的信息,并執(zhí)行軟件,將其執(zhí)行過程記錄下來,經(jīng)預(yù)處理后,采用分類、類聚、關(guān)聯(lián)等大數(shù)據(jù)分析手段提取出關(guān)鍵記錄信息,從而繪出系統(tǒng)功能模型或架構(gòu)。
(三)開源軟件挖掘復(fù)制代碼是開源軟件數(shù)據(jù)挖掘分析技術(shù)中最常見的應(yīng)用領(lǐng)域,在軟件工程中,代碼復(fù)用是十分常見的,根據(jù)筆者經(jīng)驗(yàn),至少有一半的通用源代碼都會(huì)在多個(gè)項(xiàng)目中反復(fù)使用。這意味著采用代碼克隆檢測技術(shù)可以有效完成對(duì)軟件內(nèi)部代碼之間,以及不同軟件之間的代碼進(jìn)行檢測,快速提取出具有利用價(jià)值的代碼段。通過對(duì)代碼特征的分析,可以避免代碼克隆過程中引入漏洞,還可以更好地為軟件的后期維護(hù)或升級(jí)提升參考。
(四)版本信息管理代碼管理是軟件工程中涉及的重要問題,幾乎所有軟件企業(yè)都會(huì)采用版本控制系統(tǒng)對(duì)軟件或代碼版本進(jìn)行維護(hù),以確保團(tuán)隊(duì)成員之間可以獲取全局一致的代碼。但在大型軟件開發(fā)團(tuán)隊(duì)中,代碼管理是一件十分復(fù)雜的事,任何一次更新都會(huì)引入代碼管理混亂的風(fēng)險(xiǎn)。數(shù)據(jù)挖掘技術(shù)可以對(duì)軟件的變更歷史信息進(jìn)行挖掘,通過大量代碼的對(duì)比分析確立各模塊和版本之間內(nèi)部聯(lián)系,在保證代碼高效融合的過程中,也有效地避免了漏洞的引入。
三、小結(jié)
隨著軟件產(chǎn)業(yè)的不斷壯大,軟件工程只有不斷引入新的管理和技術(shù)工具才能適應(yīng)快速發(fā)展的需求,作為一種可實(shí)現(xiàn)快速精確測量的數(shù)據(jù)分析技術(shù),數(shù)據(jù)挖掘成為了軟件工程不斷向前發(fā)展的重要支撐。與此同時(shí),數(shù)據(jù)挖掘技術(shù)也在不斷地發(fā)展進(jìn)步,各種新的數(shù)據(jù)挖掘理論不斷涌現(xiàn),使大數(shù)據(jù)的處理變得日益方便快捷。不難發(fā)現(xiàn),在未來的軟件工程中,各類大數(shù)據(jù)分析技術(shù)將與軟件開發(fā)和管理過程更加緊密地融合在一起,為軟件項(xiàng)目的評(píng)估、開發(fā)過程管理、系統(tǒng)測試及維護(hù)等工作提供重要的決策依據(jù)。
參考文獻(xiàn)
[1]唐海燕,蘭兵.數(shù)據(jù)挖掘技術(shù)在軟件工程中的應(yīng)用[J].電子技術(shù)與軟件工程,2019(23):141-142.
[2]喬磊.軟件工程數(shù)據(jù)挖掘的發(fā)展趨勢[J].電子技術(shù)與軟件工程,2019(7):172.
[3]趙亮,梁勝彬,馮天偉.面向數(shù)據(jù)的軟件工程方法研究[J].信息系統(tǒng)工程,2018(10):28.
作者:李金召 單位:浩德科技股份有限公司南京分公司