姚文濤
(海南師范大學,海南 海口 710000)
信息技術是社會進步與發展的必然產物,在社會發展的新時期,信息技術在社會各領域中的應用越來越廣泛,并發揮著不可替代的作用。目前,軟件工程系統不斷升級,規模逐漸擴大,使得工程中原有技術已然無法滿足控制與管理方面的發展需求,而數據挖掘技術的出現給軟件工程的發展帶來了機遇,從根本上對軟件工程進行了優化與完善。
所謂數據挖掘,主要指的是在大量的數據信息中利用科學、有效的算法第一時間獲取到有用信息的篩選過程。在信息技術飛速發展的今天,數據挖掘技術在社會各領域中的應用也越來越廣泛。
數據挖掘技術的操作方法有很多,歸納起來,常用的主要有以下幾種:(1)神經網絡。該操作方法具有較好的魯棒性,而且可以實現并行處理和高度容錯,非常適合應用于數據挖掘,根據所選用的操作模型不同,所適用的范圍也不盡相同。目前,神經網絡中采用的操作模型主要有離散模型、連續模型、art模型和koholon模型,分別適用于聯想記憶、優化計算和聚類的自組織映射。(2)決策樹方法。這種操作方法主要是通過對大量信息數據的整理和分類,從中找出具有應用價值的信息。該操作方法的優點在于分類速度快,可在極短的時間內獲取到有用信息,適用于大規模信息的處理。但同時也存在一些問題,比如說復雜概念的表述不夠全面、抗噪性差。(3)統計分析方法。函數關系和相關關系是存在于數據庫字段項之間的兩種關系,利用統計分析法對上述關系進行分析,可以實現對信息的有效分析。目前,常用的分析方法主要有回歸分析、相關分析和差異分析三種。(4)遺傳算法。所謂遺傳算法,主要是指基于生物自然選擇與遺傳激勵的隨機搜索算法,也是數據挖掘技術常用的一種操作方法。該方法的優勢在于具有隱含的并行性,可以和其他模型之間建立相關聯系,應用范圍廣泛。(5)挖掘對象。根據信息存儲格式,用于挖掘的對象有關系數據庫、面向對象數據庫、數據倉庫、文本數據源、多媒體數據庫、空間數據庫、時態數據庫、異質數據庫以及Internet等。
就當前數據挖掘技術在軟件工程中的應用現狀來看,大致體現在程序代碼及結構、項目管理以及故障檢測等多個方面,接下來,筆者現就上述幾個方面展開討論。
數據挖掘技術在程序代碼及結構方面的應用主要包括以下三個方面:(1)克隆代碼檢測的方法。克隆代碼主要指的是根據軟件工程運行需求,對某一代碼段進行復制、粘貼,若有特殊需求,也可以對部分代碼進行適當更改,對于上述代碼的檢測主要是為了避免故障傳播,對系統進行簡要維護,以此來滿足軟件系統運行需求。目前,克隆代碼檢測的方法主要包括4種,即文本對比、標識符對比、度量和程序結構。每一種檢測方法都有其不同的檢測流程和判斷依據,需要結合實際情況選取最佳的檢測方法。(2)Aspect挖掘。Aspect挖掘就是我們常說的橫切關注點挖掘,在軟件工程系統中,Aspect挖掘是系統改造成面向方面軟件所必須要處理好的重要問題。在此項問題的處理中,可供采用的方法有很多,最具針對性的就是度量分析法和形式概念分析法。上述兩種方法可以利用候選集的重構將橫切點關注挖掘相關問題有效解決。實際上,數據挖掘技術還可以在很多方面產生不錯的影響。
數據挖掘技術在項目管理中的應用主要體現在兩個方面,即對組織關系的挖掘和對版本控制信息的挖掘。由于軟件項目管理是一個全面而又系統的工程,因此,有關組織關系的挖掘包含了多個方面的內容,最主要的就是對人力資源的有效協調和分配。比如說,在開展某項活動的時候,活動涉及人員較多,在對相關信息進行統計的時候,勢必會產生信息交互的現象,在這種情況的影響下,很容易造成秩序混亂。而采用數據挖掘技術之后,便可以實現對組織關系的有效區分,大幅度提高了項目管理效率。另一方面是對版本控制信息的挖掘,版本信息控制的功能主要是為工作人員查看版本信息提供方便,數據挖掘技術在此方面的應用一方面可以自動對系統修復情況進行檢測,并在此基礎上為系統提供警示作用,另一方面則可以避開很多常見錯誤,確保系統正常運行,以此來提高軟件項目管理水平。
在故障檢測中的應用也是數據挖掘技術在軟件工程中應用的一個主要表現。在過去的時間里,對于系統進行故障檢測所采用的方法主要是程序切片,這種方法雖然能夠在一定程度上滿足系統運行需求,但同時也存在一些有待解決的問題,比如說定位不準確、技術過于復雜等。在軟件工程系統不斷優化與完善的今天,勢必要對故障檢測方法進行改進。數據挖掘技術的應用充分滿足了這一需求。數據挖掘技術對故障的檢測主要是從兩個方面展開,分別為程序說明和交互模式。對程序說明進行挖掘主要是為了對于系統運行相關的信息進行跟蹤檢測,便于發現系統運行問題,從而做到對系統的有效檢測和維護。就當前常用的挖掘方法來看,主要可分為基于規則和基于自動化兩種。兩種方法分別依據程序行為規則和API規則開展挖掘工作。
綜上所述,隨著我國信息技術的飛速發展,數據挖掘技術在軟件工程中的應用也必然會越來越廣泛。從本文的分析我們可以看出,數據挖掘技術的加入一方面改變了人們獲取信息的方式,另一方面則很大程度上使軟件工程得到了優化與完善,促使軟件工程得到了進一步進步與發展。
[1]陳建樺.數據挖掘技術在軟件工程中的應用研究[J].硅谷,2014(01).
[2]鄭健.芻議軟件工程中數據挖掘技術的應用[J].電子技術與軟件工程,2016(01).