李 浩
南京城市智能交通股份有限公司
數據挖掘技術在軟件工程中的應用探究
李 浩
南京城市智能交通股份有限公司
數據挖掘技術在軟件開發過程中有著廣泛的應用前景,但是國內對此技術的研究僅僅在理論研究階段,需要通過對其深化讓其發揮更大的價值。只有不斷探索研究,才能夠讓數據挖掘技術在軟件工程中的應用變得更加成熟可靠,并在更加廣泛的其他領域中得到更加優異的表現。因此,探究當前數據挖掘技術在軟件工程中的應用策略。鑒于此,本文主要分析數據挖掘技術在軟件工程中的應用。
數據挖掘技術;軟件工程;應用
1.1 數據挖掘技術的含義
所謂數據挖掘,主要指的是在大量的數據信息中利用科學、有效的算法第一時間獲取到有用信息的篩選過程。大量的信息存在于生產和生活領域,使得人們在處理事情是無從下手,這樣大大降低了人們的工作效率,也浪費了工作人員寶貴的時間。而這一問題通過數據挖掘技術的使用得到了很好的解決。
1.2 數據挖掘技術所采用的方法
(1)遺傳算法的使用。所謂遺傳算法,主要是指基于生物自然選擇與遺傳激勵的隨機搜索算法,也是數據挖掘技術常用的一種操作方法。遺傳算法的有點就在于表面上看似無聯系的事物,卻能在事物模型間建立相關的練習,實現事物之間共同發展,現在生物界越來越重視的遺傳基因等的研究,所以這種方法很受人們的歡迎。
(2)采用決策樹方法。這種方法主要用于對信息的分類和整合,在遇到大量的信息的時候,能夠在短時間內找出關鍵的信息,能夠使信息分類的快速化和簡單化,并且保證了信息分類的準確度,但是此方法的不足之處就在于具有較差的抗噪性能,不能全面的來表述較為復雜的概念。
(3)采用統計分析法。往往會利用回歸分析和主成分分析等方法來分析數據庫字段之間的關系。在字段之間的關系包括相關關系,函數關系也是其中的一種,不同的是函數關系可以用公式來表示,而相關關系則不能通過公示來表示關系,系統分析法的使用為這種關系的分析提供了便利。
(4)采用可視化技術。可視化技術是采用一些圖表來對數據進行表現,便于對數據的理解,比如,使用簡單圖形來展示存在于數據庫中的多個數據,使研究者看起來一目了然,使單調的數據形象化,更容易掌握數據的相關信息。
(5)采用神經網絡方法。它模擬人腦神經元結構,以MP模型和Hebb學習規則為基礎,用神經網絡連接的權值表示知識,其學習體現在神經網絡權值的逐步計算上。前饋式網絡、反饋式網絡和自組織網絡是常用的三種神經網絡模型,分別用于預測、聯想記憶和聚類等。
軟件工程度量過程中,其中已經從大量數據中提取部分信息,但是仍然存在大量的數據隱藏在軟件工程數據庫內,而數據挖掘技術的應用,能夠有效支持和提高對軟件度量。數據挖掘技術的應用,即從數據庫中提取全新、重要且有用的信息,在軟件開發時可以從大量數據中尋找所有相關信息。隨著軟件開發需求不斷的提高,數據挖掘技術在實際應用中的優勢逐漸被體現出來。并且軟件與硬件基礎設施已經具備處理發現驅動的數據分析所需的密集計算能力,且各種技術在持續更新,具有良好的實際應用效果,例如神經網絡、模式識別、決策樹等。另外,數據存儲與貯藏集成可以為軟件開發組織提供大量的數據,同時也進一步促使數據挖掘技術在軟件開發中的應用。
3.1 建立數據信息軟件
(1)數據倉庫系統。一是源數據階段:此階段主要是對歷史數據、當前數據和綜合數據進行收集。二是源數據預處理階段:其主要包括關系數據庫、軟件數據文檔和其他。三是進入倉庫管理階段:主要包括數據倉庫管理工具、抽取、轉換、裝載、元數據庫和數據建模工具。四是知識基DM分析工具:分類分析工具、聚類分析工具、關聯分析工具和序列分析工具。五是可視化的軟件領域知識:揭示影響軟件質量的必然因素。五個方面構成整個數據倉庫管理系統。
(2)數據倉庫建模。首先,需要將客戶所需要的信息進行匯總整理,從而做好系統功能、界面、數據等方面的確定。其次,客戶評估信息主要是應用軟件測試,(其中包括動態測試,也包括靜態測試,形式化測試)獲得相應的評估信息,將其與客戶所需要的信息進行匯總,權衡軟件在應用中的質量,從中尋找可能存在的錯誤,并對其進行修改。第三,軟件系統信息是軟件應用的基礎,其主要包括系統的規模、范圍、總體要求,以及所需要的支撐環境。第四,可行性報告主要指的是其是否具有運行的可行性,技術、經濟、法律、使用是否能夠達到需要的目的。
3.2 對集成軟件信息數據倉庫進行信息挖掘
(1)聚類分析發現。通過某些相似的需求將某一些客戶分成一組成為聚類,使客戶的信息更容易被開發人員了解,以便于提供更高服務水平,和滿意的服務。將某些客戶聚類為一組,可以專門為其要求開發出具有特別功能的軟件,通過聚類分析,可以對客戶的軟件應用情況進行有甄別性的觀察,從而讓軟件達到一種很好的使用效果。
(2)分類分析的發現。與聚類完全不同,分類分析是通過已經標記的特點進行數據分類。分類就是為了通過記錄表現來方便的描述這一類數據所具有的特點。分類分析主要應用于決策樹、神經網絡和徑向基礎函數等軟件中。分類分析的結果可讓我們在數據庫的設計過程中更有針對性,可以通過軟件對所應對的客戶進行屬性劃分,針對不同的客戶提供不同的服務或者保護。
(3)序列分析的發現。序列分析是完全獨立的一種分析算法,其區別于以上兩種算法。這類算法主要是根據數據的序列或者事件進行檢測。由于不同的客戶要求同一軟件為其提供的功能一般不同,因此,軟件分析人員就可將客戶按其所傾向需求的功能模式進行分類。
總之,為更好的適應網絡科技發展,社會上對于軟件的需求也在增加,然而隨著軟件規模的擴大,很多軟件開發無法得到合理控制,因此,數據挖掘技術被應用到軟件工程中了,主要是借助技術手段獲取有價值的數據,以便及時確定故障所在,檢測系統漏洞,最終完成成本評估。
[1]陳建樺.數據挖掘技術在軟件工程中的應用研究[J].硅谷,2014,01:73+51.
[2]劉玉峰.數據挖掘技術在軟件知識庫中的應用研究[D].廣西師范大學,2010.