李高杰
摘? ?要:傳統軟件工程領域的數據處理缺陷使得軟件運行容易出現卡頓和錯誤、信息傳輸不穩定的現象。將數據挖掘技術融入軟件工程的開發能避免該問題,同時也保障了信息數據的正常傳輸、過濾和整合,從而有效提升數據處理能力,確保數據的準確性和來源的安全性,提升文檔安全性,過濾危險和無用信息。文章對軟件工程中數據挖掘技術的應用及其發展進行了研究。
關鍵詞:軟件工程;數據挖掘技術;代碼;數據
隨著科學技術不斷發展、網絡通信技術不斷進步,海量的數據信息需要有匹配的軟件進行過濾和整合。傳統軟件工程領域的數據處理缺陷使得軟件運行容易出現卡頓和錯誤、信息傳輸不穩定,日常生活中對信息數據的要求不斷提高,數據挖掘技術能更好地滿足用戶需求。數據挖掘技術融入軟件工程的開發能避免該問題,同時保障了信息數據的正常傳輸、過濾和整合數據,從而提升數據處理能力,確保數據的準確性和來源的安全性。軟件工程中利用數據挖掘技術可挖掘、收集有效數據存放在數據庫中,整理數據、提升文檔安全性、過濾危險和無用信息。
1? ? 軟件工程與數據挖掘技術
數據挖掘(Data Mining,DM)是一種在海量數據集中挖掘有效信息數據的技術。軟件工程數據挖掘技術(Data Mining for Software Engineering,DMSE)是應用在軟件工程領域的一種數據挖掘技術,主要指開發新的或者利用現有的數據挖掘技術,經過表示、分析和提取等步驟挖掘對軟件開發者有用的信息數據[1]。軟件工程數據挖掘技術廣泛應用于軟件工程、人工智能、數據挖掘和模式識別等領域。軟件工程中的數據挖掘技術與傳統的數據挖掘具有相似之處,又在處理和提取軟件工程數據、采用合適算法挖掘軟件工程之間的應用數據、為軟件開發者提供有價值的數據信息等方面存在特色。
軟件開發過程積累大量數據,包括可行性分析、設計文檔、軟件代碼、需求分析、軟件版本、測試數據和結果、用戶反饋等。一般情況下,軟件工程數據是軟件開發者獲得信息的唯一渠道。隨著軟件日漸工程化和大型化,軟件工程中的數據復雜性和數量在飛速增加,軟件開發者通過瀏覽代碼、文檔等傳統的方式難以獲取能滿足軟件開發所需信息。
2? ? 軟件工程中數據挖掘技術的應用
軟件開發和軟件工程是相輔相成的,軟件工程是軟件開發必須遵循的操作原則,軟件開發是軟件工程的具體實現。軟件開發的每個階段都需要特定信息來開展工作,但單個開發者難以具備開發過程中所需的一切信息數據,且缺乏從軟件工程的數據中搜索有效信息的方法,導致軟件開發者陷于卡頓。軟件工程中數據挖掘技術的應用顯得越發重要,其應用主要表現在以下幾方面。
2.1? 開源軟件數據挖掘技術的應用
開源軟件主要是指一種源代碼是開放式的應用,由于其具有開放性,通常該類軟件都是免費的,擁有廣大的用戶群。但大量的用戶群給該類軟件帶來了管理的問題,從而拖累軟件的使用。由于開源軟件存在缺陷,因此可以有針對性地把數據挖掘技術融入開源軟件中,提升軟件質量,使得該類軟件既具有基本數據處理功能,又能在數據挖掘技術支持下挖掘、篩選整合大規模的數據,為復雜的軟件提供數據處理功能,提升軟件的使用效率,有效管理用戶群體。
2.2? 軟件項目數據挖掘技術的應用
數據挖掘技術應用在軟件項目中主要有兩種,分別是挖掘組織關系和挖掘版本控制信息。軟件項目管理相對復雜,要挖掘項目中人員的組織關系就需要分配和協調好軟件項目中的人力資源。大型的軟件工程項目參與人員可達到成百上千,在軟件項目研發過程中將會產生大量的信息數據,如參與者之間相互溝通交流的文檔、電子郵件等數據,沒有過濾、整合就容易造成數據混亂,影響軟件項目中的正常秩序。軟件項目工程中數據挖掘技術的應用能有效地區分參與者的組織關系和過濾無用數據,整合有效數據,確保軟件項目的順利開展。
2.3? 代碼中數據挖掘技術的應用
數據挖掘技術應用在代碼中主要體現在代碼搜索和克隆代碼檢測兩方面:(1)代碼搜索工具主要是以用戶接受的一組關鍵字作為輸入,輸入關鍵字匹配和向用戶返回的一組代碼段。目前的代碼搜索引擎把注釋和代碼看作文本,把每個程序文件認作文檔,對代碼庫執行搜索命令,以文檔為單位返回結果。大多數編程語言主要用標識符對函數、變量等命名,強調注釋和標識符對程序可讀性的關鍵作用。但由于編程風格不統一等,在實現中,直接對注釋和標識符進行搜索難以返回正確結果。數據挖掘技術融入代碼搜索能更準確地搜索、提取關鍵字。提取關鍵字的過程在數據挖掘中就是理解程序的過程,也是采用關鍵字對程序準確表述的過程[2]。(2)克隆代碼檢測與代碼搜索相類似,是用代碼本身來描述軟件行為。用戶輸入一段已知行為代碼,克隆代碼檢測會向用戶返回與該代碼相似的代碼段,且已知行為代碼的特征皆可用于描述與之相近的代碼段。目前克隆代碼檢測是軟件工程中數據挖掘技術的最熱門應用之一。
2.4? 軟件故障的數據挖掘技術應用
數據挖掘技術在應用過程中不但要完成挖掘任務,還需挖掘出實際程序執行記錄具體說明,挖掘出的數據能夠測定和判斷軟件發生的故障。數據挖掘過程中要先明確挖掘的目的和目標,及時跟蹤和了解信息,根據實際問題處理信息,以確保后續工作的順利開展,提升對應用程序的熟悉度。在種類繁多的挖掘工具中,自動化類和基于規則廣泛應用在實際生活中。在各類實際因素的推動下,軟件在運行過程中會發生故障,采用傳統的定位技術能夠解決故障問題,但傳統定位技術存在效率較低、使用繁瑣和定位精準度不穩定等問題。在數據挖掘技術中采用程序譜對程序運行軌跡實行抽象定位,利用對比排查方式排出故障,找出源頭,有效地提升了故障排查的效率和故障檢測的準確性。
3? ? 軟件工程中數據挖掘技術的應用發展研究
軟件工程中數據挖掘技術的應用主要是為了提升軟件的質量和開發效率。相對而言,軟件工程是純腦力勞動,要實現該應用目標,需要便捷、準確和高效地給軟件開發者提供有效信息。目前,軟件工程中數據挖掘技術難以滿足軟件工程各個領域的需求,同時,由于軟件工程中數據挖掘技術的各個要素都隨著技術的發展不斷更新,如軟件工程的方法、數據量和結構、數據挖掘的算法和方式等,促使軟件工程中數據挖掘技術的研究和應用必然會隨之不斷革新變化,主要體現在以下幾點。
3.1? 根據目前軟件工程中數據挖掘存在的缺陷,研發高性能挖掘算法
針對目前存在的問題,軟件工程數據挖掘技術關鍵要采用高效軟件,重用規則檢索和發現,軟件規則檢索由關鍵詞向自然語言檢索和模糊檢索發展。檢索返回內容從原始簡單語句向完全文檔發展。同時,根據目前存在缺陷的檢測工具僅能檢測一些違反給定程序動態或靜態規則造成的缺陷,根據軟件的執行信息和結構統計出容易出現的缺陷,研發能夠檢測原因范圍更廣泛的復雜缺陷的缺陷檢測工具。由于軟件行為模型和程序規則之間的聯系,開發出用自然語言表述行為的模型和方法,將微觀和宏觀的軟件行為模型整合,使得軟件在各個粒度和層次上的行為信息表述更豐富和準確[3]。采用更高效的軟件設計評價工具和標準,與軟件工程領域相結合使其實現更豐富的可視化表示。
3.2? 研發應對海量軟件工程中數據的挖掘算法和高效預處理
軟件工程規模擴大,軟件需求將增加,軟件開發工具細化,軟件開發參與者增加,開發周期延長。為了應對這一問題,軟件工程中數據挖掘使用者或者研發者應圍繞數據降維和特征提取開發具有更高效里的數據處理方式,同時針對動態數據流、在線挖掘算法等研發效率更高的挖掘算法,充分利用機器學習、人工智能等數據挖掘新技術,開發更高效的軟件工程數據挖掘技術。
4? ? 結語
軟件工程中數據挖掘技術應用廣泛,各個領域都引入該技術。目前軟件工程中的數據挖掘技術被不斷研發和投入使用,但主要是以軟件開發工具插件的形式或者原型系統發布出來,很多技術問題還有待解決,并沒有完全實現商業化應用。軟件工程中數據挖掘技術應用的處理方法和數據提取、挖掘結果和算法等方面仍存在很大的研究空間。軟件工程中利用數據挖掘技術可挖掘、收集有效數據存放在數據庫中,整理數據、提升文檔安全性、過濾危險和無用信息。隨著技術的不斷發展,軟件工程中數據挖掘技術應用將越來越廣泛、實用和智慧化。
[參考文獻]
[1]LAPORTE C Y,MUNOZ M,MIRANDA J M,et al.Applying software engineering standards in very small entities from start-ups to grownups[J].IEEE Software, 2018(1):99-103.
[2]CHEN Y.A method of mining association rules of big data based on cloud computing[J].Radio Engineering,2017(3):8-11.
[3]SUN X.Design of association rules data mining system based on improved ant colony algorithm[C].New York:International Conference on Education,Management,Information and Mechanical Engineering,2017.
Application and research of data mining technology in software engineering
Li Gaojie
(Zhengzhou Instituse of Finance and Economics, Zhengzhou 450000, China)
Abstract:The defects of data processing in the field of traditional software engineering make the operation of software prone to Catton and error, and the instability of information transmission. Integrating data mining technology into the development of software engineering can avoid this problem, and at the same time ensure the normal transmission, filtering and integration of information data, so as to effectively improve the ability of data processing, ensure the accuracy and source security of data, improve the security of documents, filter dangerous and useless information. In this paper, the application and development of data mining technology in software engineering are studied.
Key words:software engineering; data mining technology; code; data