裴沖
摘要:軟件工程在社會的發展進步中發揮了重要作用,極大改變人們的生活和工作方式,也增強社會的現代化氣息。基于此,本文對數據挖掘在軟件工程領域中的應用展開研究,涉及到的內容有檢測漏洞、軟件信息的挖掘、軟件系統的分析理解。實現對軟件信息的深度挖掘,有效防止系統文檔殘缺不全,強化軟件運行穩定性。
關鍵詞:漏洞檢測;軟件信息;理解系統
引言:早在1989年數據挖掘就已誕生,當時是在數據庫領域中發現這一概念,實際應用成效明顯。科學技術持續進步,數據挖掘技術從早期理論研究發展到了如今的軟件應用,優化軟件工程的構建活動,提高系統維護水平,滿足用戶實際需求的性能也有所增強。如今數據挖掘已經成為軟件工程領域的重要工具,應用于檢測軟件工程漏洞、程序代碼分析理解,有力實現軟件的科學開發。
一、應用于軟件上市前的漏洞檢測
軟件工程領域,檢測軟件的漏洞是一項重要工作。每一個軟件在上市前,都需要檢測漏洞,修復其中的bug,這樣軟件才能比較完美,且穩定運行。使用數據挖掘技術檢測軟件工程的漏洞,第一,建立軟件測試項目,羅列用戶需求,以此為依據確定出測試的重點以及測試的方向。第二,收集bug,進行數據清理和轉換,這些數據與軟件的主要功能密切相關。第三,建立數據模型,正式開始檢測,這一過程要實現對大量數據的測試,需選擇合適的數據挖掘方法。第四,定位漏洞,并做科學分類,進而準確找出漏洞[1]。第五,挖掘重要信息,并將其應用在項目開發中,把相應的信息都存儲到數據庫中逐一修復漏洞,確保軟件的功能都正常運行。
分類主要是對分類標簽或離散值進行預測,一般來說,這一操作需要先建立一個模型,描述一組預定的數據類,也有可能是描述了一組概念,接著再建設一個模型,使用這個模型進行分類。目前實際工作常使用的方法有判定樹、貝葉斯、神經網絡、K-最接近這四種分類法,同時也支持向量集。分類之后,就要做關聯分析,關聯指的是大量數據項集之間的聯系,關聯包括支持度、置信度。支持度指的是某兩個項集同時出現在事務集中的概率。置信度指的是某一事物出現在事物集中,另一事物也出現的概率。在此基礎上引出強規則的概念,要求同時符合最小支持度和最小置信度。
二、應用于軟件多種信息有效挖掘
挖掘軟件中的相應信息,這其中就包括了執行記錄、版本控制信息、開源軟件信息。在挖掘軟件的執行記錄時,需要沿著程序執行路徑,逐漸明晰代碼中的潛在關聯,挖掘軟件執行記錄有助于實現對軟件的跟蹤維護。先對項目插裝,執行程序性信息,對規范化的跟蹤信息進行預處理,之后再挖掘被跟蹤的信息,實現對程序的規范化處理,建立系統功能模型,評估系統,對系統有一個明確的認識。挖掘版本控制信息,版本控制系統的作用是對同一項目的不同子項目進行統一,方便更新。軟件開發,會有不同的版本,此時就需要用到版本控制技術,保證軟件不同版本的高度統一。數據挖掘能明確不同模塊、不同系統之間存在的關聯。預測軟件未來的發展,可能會出現的bug,方便提前預設好防范措施,能提前預警,有效節約維護成本。挖掘開源軟件,需要與克隆技術相結合,根據研究,大多數源文件適用于兩個以上的開源項目,克隆技術是檢測不同開源軟件的的最有效方法,發現其中有關聯,有相同特征的開源文件。克隆檢測是檢測源代碼的有效手段,以防止源代碼中的漏洞重復應用于某一項目,有效避免公開測試后可能會出現的巨大損失,有效減少后續繁瑣的維護作業。
三、應用于對軟件系統的分析理解
優化軟件系統,需要高效分析和理解軟件系統本身的框架,從而理清整個軟件各個系統之間的交互關系,在此條件下與設計相關的信息就更容易被存儲在軟件知識庫中。通常情況下,要從源代碼入手,完成對系統框架源代碼的理解。解釋軟件框架有一個循環的過程,也就是猜想、對比、調研和再次探究,直到完全理解框架,需要做的工作因環節的不同有一定差異。
猜想假設的過程中,主要面向軟件總系統和子系統之間的交互。軟件開發人員可以使用過時的系統文檔實現與技術人員的交流,從而科學推測類似的軟件系統結構,從推測中形成初步假設,理解軟件系統的框架[2]。例如分析操作系統,技術開發人員分析系統可以完成的工作,以驗證各子系統之間的相互作用。
對比過程中,主要是測試已經提出的猜想假設,此鏈接需要對比系統框機架的統一構建,研究系統實際功能的實現情況。
調查研究是耗時最長的解構階段,開發人員接管了子系統,分析子系統之間的差異和關系,通過測試準確判斷兩個或多個子系統相互之間關系的真實性。通常,這個階段使用的主要方法包括搜索和查看設計的文檔、源代碼,也可詢問高級技術人員。縮短研究過程花費的時間,采用軟件反射框架的數據挖掘技術,并添加了源代碼,快速執行啟發式方法,使得軟件研究人員能快速理解軟件系統框架。
總結:開發軟件工程,技術呈現出系統和復雜的特征,更為精確的測量使得軟件開發有了保障。數據挖掘應用于軟件的漏洞檢測,確保軟件在問世時有穩定的功能。挖掘多種信息,防止軟件運行出現問題,也有效減少后續的維護工作,使用數據挖掘技術分析和理解軟件,提高軟件研究人員的工作效率。在未來,對數據挖掘技術的應用進行有效創新,促進軟件工程向好發展。
參考文獻:
[1]黃煒.計算機軟件工程現代化的技術應用[J].數字技術與應用,2021,39(10):79-81.
[2]張帆.基于大數據視域下的軟件工程技術應用研究[J].電子技術與軟件工程,2021(19):43-44.