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