摘 要:在二十一世紀,人們每天要面對大量的信息。如何對這些信息進行處理,從中找到對自己有用的知識和信息是一個重要的問題。只有從海量的信息中篩選出自己需要的信息和知識,才能有效的提高人們的工作質量和工作效率,這就需要用到數據挖掘技術。在軟件工程中尤其需要應用數據挖掘技術來促進軟件的開發和管理。
關鍵詞:數據挖掘技術;軟件工程;應用;
文章編號:1674-3520(2015)-07-00-01
在軟件工程的軟件項目管理、開源軟件開發、軟件故障檢測、程序代碼分析等方面都要用到數據挖掘技術。數據挖掘技術有利于對軟件工程的管理和控制進行提高。本文對數據挖掘技術進行了簡要的介紹,并對數據挖掘技術在軟件工程中的應用進行了綜述。
一、數據挖掘技術
數據挖掘指的是從大量的模糊、無序數據中有效的信息挖掘出來。數據挖掘技術能夠實現聚類和分類信息,并且對信息進行偏差分析。數據挖掘過程主要有四個步驟。首先,要選擇軟件庫中的數據;其次,要對被選擇的數據進行預處理,將其轉化為格式化數據。第三,要挖掘格式化信息;最后,將其中的有用信息挖掘出來并加以利用[1]。
在軟件工程的管理和開發過程中往往要面對大量的數據和信息,這也加大了軟件工程的管理和開發的工作量。軟件工程必須在短時間內從眾多的信息中找出有用的信息。軟件工程的數據挖掘工作主要有三個方面:首先,探查交互式可視數據;其次,提取自動模式;最后,將模型構建起來。提取自動模式和構建模型要以可視數據探查為基礎,而構建模型又可以指導模式的提取和可視數據探查工作。
一般情況下,軟件工程中應用數據挖掘技術主要是通過統計分析、預測、聚類和分析技術將對人們有用的、潛在的信息從眾多的資源中挖掘出來,并向軟件系統進行反饋。
二、在軟件工程中應用數據挖掘技術
上世紀九十年代軟件工程中開始應用數據挖掘技術,經過二十余年來的發展,數據挖掘技術的應用范圍越來越廣泛,技術也在不斷的進步。應用數據挖掘技術的領域有零售、保險、銀行、交通等等。在軟件系統中應用數據挖掘技術可以使系統的安全性和穩定性得到有效的提高,并對軟件系統的維護效率進行提高。
(一)數據挖掘技術在開源軟件開發中的應用
源代碼為開放的軟件被稱為開源軟件,開源軟件絕大多數是免費向客戶開放的,這也造成了一定的管理和控制困難。通過數據挖掘技術能夠有效地提高開源軟件的質量。牛津大學和大阪大學都曾經在軟件開發中應用數據挖掘技術。例如牛津大學設計了一個能夠對使用者和開發者進行跟蹤管理的數據挖掘系統,從而使開源軟件的使用率和質量得到了有效的提高。
(二)數據挖掘技術在軟件項目管理中的應用
數據挖掘技術在軟件項目管理中的應用主要有兩個方面。一方面是挖掘版本控制信息,另一方面是挖掘組織關系[2]。軟件的項目管理非常復雜,挖掘組織關系主要是為了分配和協調人力資源。這是由于一個工程項目涉及到的工作人員可能有幾百人甚至上千人,這就很容易造成人員之間的文檔和電子郵件的交互,從而影響正常的工作秩序。需要使用數據挖掘技術來區分工作人員的組織關系,使軟件項目管理能夠有序進行。
除此之外,在挖掘版本控制信息時也需要利用數據挖掘技術。版本控制主要是對文件內容的變化進行記錄,用戶可以對版本的修訂情況進行查看。在版本信息控制中應用數據挖掘技術能夠降低系統的維護成本。與此同時也可以對軟件系統的維護進行警示,甚至還能夠將系統修復記錄中的錯誤清晰的查找出來。軟件設計者能夠通過對錯誤記錄的查找來了解和避免一些錯誤,從而使軟件項目的管理水平得到提高。
(三)數據挖掘技術在程序代碼和機構中的應用
在軟件工程中,將克隆代碼稱為程序代碼,也就是通過復制和粘貼對代碼進行反復使用[3]。在軟件工程中,數據挖掘技術在克隆代碼中應用的比較廣泛。當前檢測克隆代碼的主要方式有運用潛在語義搜索、基于程序結構表示的方法、基于度量的方法、基于標識符對比方法、基于文本對比方法等等。但是當前數據挖掘技術主要是對于發信息進行考慮,沒有考慮到挖掘語義,造成了數據挖掘技術在克隆代碼中的應用具有一定的局限性。
數據挖掘技術還用在挖掘橫切關注點上。由于在程序中一些關注點的代碼為同一代碼段或者比較相似,這就需要對橫切關注點進行挖掘。挖掘橫切關注點的主要方式有很多。例如基于自然語言的分析方法、基于聚類分析方法、形式概念分析方法、基于類型和文本的分析方法等等。可以使用介于方法執行關系法和形式概念分析法兩種方法來進行執行模式的挖掘。與此同時還要挖掘數據庫中的可用構件和代碼。
(四)數據挖掘技術在軟件故障檢測中的應用
軟件故障檢測中對數據挖掘技術的應用主要是挖掘程序的執行記錄中的交互模式和程序說明。通過跟蹤信息并進行逆向建模來挖掘程序說明,從而對程序進行后續維護。主要有兩種軟件故障檢測中的挖掘方式:基于自動化的挖掘方式和基于規則的挖掘方式。
程序切片是傳統的軟件故障定位技術,該技術的缺點在于定位不準確、技術過于復雜。當前用比較多的是將程序的執行軌跡用程序譜抽象表示出來,從而比較成功運行和故障運行將故障的來源找出來。這樣一來軟件故障檢測的準確性和效率都能夠得到有效的提高。
三、結語
在軟件工程的軟件故障檢測、程序代碼分析、軟件項目管理和開源軟件開發等環節中都要運用數據挖掘技術。數據挖掘技術可以使軟件工程的控制和管理得到有效的提高。當前我國對數據挖掘技術的研究還在不斷深入,積極促進數據挖掘技術在軟件工程中的應用。
參考文獻:
[1]李新,張曉靜,米燕濤.軟件開發過程中的數據挖掘[J].石家莊職業技術學院學報,2012(02).
[2]趙麗坤,陳立文,張國宗.基于數據挖掘技術的軟件項目管理體系[J].經營與管理,2012(12).
[3]鄒丈東,張立厚.數據挖掘在水環境分析信息化中的應用[J].圖書館論壇,2012(05).