范凱文
?
軟件工程中數據挖掘技術的應用研究
范凱文
北京理工大學珠海學院,廣東 珠海 519088
隨著我國信息技術的不斷發展,日常生活和工作中會不斷的遇到大量的復雜的信息,如何把這些信息中隱藏的有價值的信息提取出來引發了人們的思考,以軟件工程為例,介紹了軟件工程和數據挖掘技術的歷史、現今的發展,還說明數據挖掘技術的含義和流程;也闡述了數據挖掘技術在軟件工程中的應用。
橋頭跳車;城市道路建筑;路基處理;地基沉陷
數據挖掘技術是將大量的數據中將有用的信息部分挖掘出來,將隱藏在數據庫中的有價值的信息挖掘搜尋出來,從而提高人們工作質量和效率,因此數據挖掘技術的應用在軟件工程領域中顯的十分重要。
1.1 據挖掘、軟件工程的歷史
數據挖掘在早些年被稱為數據庫中的知識發現,正式出現于20世紀80年代,數據挖掘的發展是以數據庫為基礎,起初研究的重點偏重理論的方法,但隨著數據挖掘的發展重點轉向了系統應用,并且多種學科相互滲透和結合,例如和軟件工程的結合與滲透[1]。
軟件工程的概念的提出是在1968年北約的科技委員會為了擺脫軟件危機的會議上,軟件工程專注研究用工程化的方法去維護和構建軟件,使軟件質量高、經濟又安全,軟件工程目標是既要滿足給定的成本條件和要求的時間限度還要滿足用戶對軟件成品的需求[2]。
1.2 發展現狀
在上世紀九十年代初期,開始將數據挖掘技術應用于軟件工程中,Allen K等人提出用數據挖掘的方式發現代碼中的復用關系,在此之后數據挖掘技術在軟件工程中發展迅速。2004年的挖掘軟件資源庫研討會標志著數字挖掘技術已經成為軟件工程的重要組成部分,它滲透到程序代碼分析、漏洞檢測、軟件項目管理和軟件開發等領域[3]。
1.3 數據挖掘技術的定義
很多有重要價值的信息隱藏在數據資料中,數據挖掘是采用一定的技術手段從大量的數據中挖掘出重要信息的方法,在軟件工程中,數據挖掘技術可以挖掘出有價值的重要的信息來預測系統是否出現漏洞,從而定位出系統出現故障的位置,還可以尋找代碼之間的相互關系、進行項目成本評估等等。
2.1 開源軟件開發中的數據挖掘
開源軟件其實是說源代碼是開放的軟件,由于目前對客戶一般都是免費的,所以使得開源軟件的控制和管理起來都不方便,但是把數據挖掘技術應用于軟件工程中會提高開源軟件的質量,例如在牛津大學設計出的數據挖掘系統中就實現了對系統的開發者和使用者的跟蹤管理,在一定程度上提高了開源軟件的質量減少了損失率。
2.2 軟件項目管理中的數據挖掘
數據挖掘技術在軟件項目管理中主要體現在兩個方面,一是對組織關系的挖掘過程本質上是對版本控制信息的挖掘,管理軟件項目的過程比較復雜,對人員組織關系的挖掘主要是協調和分配人力資源。
此外,在對版本控制信息的挖掘時也應用到了數據挖掘技術,版本控制時記錄了文件內容的變化,方便了用戶時刻了解版本修訂情況,還減少了系統后期維修所需成本,系統修復記錄中的錯誤可以通過數據挖掘技術查找出,設計者能通過查找出的錯誤來巧妙避開常見的錯誤,提高了軟件項目的管理水平。
2.3 軟件故障檢測中的數據挖掘
在程序的執行記錄中數據挖掘技術能挖掘到程序的說明和交互模式,通過此技術可以定位檢測到軟件的故障所在。對信息追蹤然后進行逆向建模來實現對程序的說明挖掘,加強了對程序后期的維護。基于規則挖掘和基于自動化挖掘這兩種挖掘方式是目前常用的數據挖掘,基于自動化挖掘方式比較成熟,通過利用自動機抽象技術表示出的API規則挖掘方法,而基于規則的挖掘方法通過程序行為方式發現規律以時態邏輯方式表達出來。
3.1 數據挖掘技術的流程
選擇、預處理、挖掘和吸收是數據挖掘技術流程的四個步驟,在選擇這個步驟中主要針對交互性強的數據,在工作過程中數據往往更新很快所以要及時對數據做出新的選擇。預處理過程主要是對沒有進行過加工處理的數據進行挖掘處理轉化為合適的形式,采用LSA的技術整理好所需的數據。挖掘是將預處理過的數據通過計算方法輸入進去,在大量的數據中搜尋出合適的最能反應本質的信息部分,最終完成工作任務。吸收是對數據的后處理,將有用的信息部分展現給用戶,讓之前的步驟的作用發揮到極致。
3.2 軟件工程中數據挖掘技術的方法
數據挖掘技術常用的方法有:分類、關聯、聚類。分類通常預測分類標號,首先建立一個模型,然后通過模型對預定的數據類集進行分類。在進行分類時長采用判定樹法、貝葉斯分類法、神經網絡分類法等,其中判定樹法的基礎是貪心算法,在形成構造樹時通常采用自上往下的遞歸方式,類別符號和葉子節點相互對應,最終產生分類的結果。
3.3 關聯
在大量的數據中項集之間的相互聯系稱為關聯,關聯規則有兩個重要的屬性:支持度和置信度。支持度是指項集A和B在事物集D中出現的概率之和,置信度是指在項集A出現的事物集D中,B也出現的概率。如果同時滿足最小置信度和最小支持度那就是強規則。挖掘關聯規則其實就是產生的置信度和支持度大于客戶給的最小置信度和支持度的關聯規則。
在軟件工程的軟件開發項目中急需可以精確測量的工具,然而將數據挖掘技術應用于軟件工程中并將兩者完美結合已經產生了可觀的經濟效益,提高了工作效率和工作質量。總而言之,伴隨著軟件工程的發展,數據挖掘技術也要不斷創新和改善,數據挖掘技術將以成熟的全新技術形式應用于軟件工程。
[1]毛澄映,盧炎生,胡小華.數據挖掘技術在軟件工程中的應用綜述[J].計算機科學,2009(05):130-131.
[2]趙麗坤;陳立文;張國宗.基于數據挖掘技術的軟件項目管理體系[J].經營于管理,2012(12):122-123.
[3]李新;張曉靜;米燕濤.軟件開發過程中的數據挖掘[J].石家莊職業技術學院學報,2012(2):18-20.
范凱文(1993—),男,漢族,湖北松滋人,本科學歷。
TP311.13
A
1009-6434(2016)05-0078-01