數(shù)據(jù)挖掘技術在軟件工程中的應用分析.doc_第1頁
數(shù)據(jù)挖掘技術在軟件工程中的應用分析.doc_第2頁
數(shù)據(jù)挖掘技術在軟件工程中的應用分析.doc_第3頁
數(shù)據(jù)挖掘技術在軟件工程中的應用分析.doc_第4頁
數(shù)據(jù)挖掘技術在軟件工程中的應用分析.doc_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

數(shù)據(jù)挖掘技術在軟件工程中的應用分析黎慶劍中國軟件與技術服務股份有限公司,北京 102200 摘要:信息大爆炸的新時期,人們所需要處理的信息越來越多,如何利用信息技術幫助人們處理這些復雜的數(shù)據(jù),挖掘出對人們有幫助的信息是非常有意義的。本文對數(shù)據(jù)挖掘技術在軟件工程中的應用進行了分析。關鍵詞:數(shù)據(jù)挖掘;軟件工程;應用現(xiàn)如今隨著經(jīng)濟的迅猛發(fā)展,社會各方面物質(zhì)文化水平都在一定程度上得以提升,從而使得人們的生活狀態(tài)也較以前發(fā)生了翻天覆地的變化。近年來,信息技術的發(fā)生更是進一步推動了社會的進步,復雜而又充實的信息環(huán)境使得人們所接觸的事物也更加清晰,但是在這些信息里面需要認真加以辨別,只有從中獲取有益的信息才能給自己帶來更大的益處。因此有必要對現(xiàn)有的數(shù)據(jù)進行整合處理直接為人們所使用。在這個信息爆炸的時代里,人們獲取的信息量是非常驚人的。對信息數(shù)據(jù)的挖掘在軟件工程中的地位也逐步提升。1 軟件工程數(shù)據(jù)挖掘技術概述1.1數(shù)據(jù)挖掘技術在軟件工程中的應用發(fā)展所謂的數(shù)據(jù)挖掘技術還有一個比較常用的稱呼,就是數(shù)據(jù)庫中的信息資源提取,該技術與數(shù)據(jù)庫相互依存,不可割舍。從剛開始的提出,到最后的實踐應用,該技術漸漸地走向更為多向化和多功能化,并且在該項技術中融入了相當多的重要領域技術。而對于軟件工程來說,其最原始的意義起源于一九六七年,該項工程自提出以后就一直受到重點研究和關注,就其功能將其進行定義為采用工程化的途徑或者是方法對具有實用意義的并且高質(zhì)量的和存在一定功能效用的軟件內(nèi)容進行構造和創(chuàng)建,這樣的軟件構建預期的目標是在一定的背景條件下以及成本基礎上,所研究開發(fā)出的軟件產(chǎn)品能夠滿足使用者的大部分需求。在二十世紀后期的時候,這一領域的研究人員就意識到了單純的數(shù)據(jù)挖掘技術其實意義不大,需要結合實際的數(shù)據(jù)特性將工程類軟件與之結合在一起,從而相互攫取雙方的優(yōu)點,從而在極大程度上提升數(shù)據(jù)挖掘技術的作用。這一理念同時也得到了相關學者的一致認同,從而使得這一想法進一步融入了實際生產(chǎn)運作過程中,使得如今的數(shù)據(jù)挖掘技術變得越發(fā)完善。1.2數(shù)據(jù)挖掘技術分析在數(shù)據(jù)挖掘技術的這一領域中,無論是分析還是聚類等過程都占據(jù)著至關重要的地位與作用,這樣能夠縮小我們所需信息的范圍,從而迅速便捷的獲得我們最終需要的數(shù)據(jù),從而得到具體實用的信息。1.3數(shù)據(jù)挖掘的主要內(nèi)容對于一個完整的數(shù)據(jù)挖掘過程來說,它是分多個階段進行的,具體而言,其中包括了選擇、提前處理以及吸收等過程。同其他過程類似,選擇作為首要階段占據(jù)著至關重要的作用,這一階段需要結合實際情況從龐大的具有交互性的數(shù)據(jù)中進行篩選,在實際工作進程中,任何信息數(shù)據(jù)都是處于不斷更新過程中的,隨著這些數(shù)據(jù)的不斷更新交替,需要對數(shù)據(jù)集合進行重新的篩選,從而達到自己預期的目的;對于數(shù)據(jù)預處理過程而言,它是提前將數(shù)據(jù)進行必要的轉(zhuǎn)換,從而使其達到我們所需要的形式,由于數(shù)據(jù)本身所具有的特征以及格式都具有一定的差異性,因此我們需要站在適當?shù)慕嵌葘π枰庸ぬ幚淼臄?shù)據(jù)進行必要的分析,采用恰當?shù)募夹g來對所需的數(shù)據(jù)進行整理;而至于吸收這一過程而言,它在整個系統(tǒng)的工作進程中主要屬于后處理的工作范疇,它通過一系列繁瑣的工作使得前幾項工作具有更加合理的意義。2軟件工程中數(shù)據(jù)挖掘技術的應用2.1在軟件項目中的應用軟件項目管理中的數(shù)據(jù)挖掘主要體現(xiàn)在兩個方面,一個是對組織關系的挖掘一個是對版本控制信息的挖掘。其中,軟件項目的管理是一個復雜的工程,對人員組織關系的挖掘主要是對人力資源進行協(xié)調(diào)和分配。例如,一個工程項目可能有成百上千人參與,在參與過程中人員之間的電子郵件、文檔等都會產(chǎn)生交互,交互中極易造成秩序混亂,而數(shù)據(jù)挖掘技術的使用則可以很好的將工作人員的組織關系進行區(qū)分,有利于軟件項目管理的順利進行。此外,數(shù)據(jù)挖掘技術還體現(xiàn)在對版本控制信息的挖掘。版本控制可以記錄文件內(nèi)容的變化,以方便用戶查看版本的修訂情況。將數(shù)據(jù)挖掘技術引入到版本控制信息中可以減少系統(tǒng)后期的維護成本。2.2在開源軟件中的應用對于開源軟件來說,它其實就是指代源代碼屬于開放式的應用,這類軟件相較于其他軟件類型來說更受大眾歡迎,這主要是由于其屬于免費軟件的范疇,但是凡事既有利也有弊,這類軟件在迎來廣大使用人群的同時,也加大了各個進程管理的難度,因此,需要結合實際情況恰當?shù)囊M這類數(shù)據(jù)挖掘技術來對開源軟件的整體質(zhì)量進行提升。舉例而言,大阪大學中的某一學生就據(jù)此就開發(fā)出了一類數(shù)據(jù)挖掘系統(tǒng),它在具有基本數(shù)據(jù)處理功能的基礎上,還能對大規(guī)模的多類數(shù)據(jù)軟件實施挖掘處理,從而獲得預期所需的數(shù)據(jù)。2.3在機構代碼中的應用這里所說的程序代碼指的是克隆代碼,所謂克隆代碼就是通過簡單的復制和粘貼進行再次使用的代碼。對克隆代碼的檢測也是數(shù)據(jù)挖掘中應用最早的,目前對克隆代碼的檢測主要有以下幾種方式,基于文本對比方法、基于標識符對比方法、基于度量的方法、基于程序結構表示的方法及運用潛在語義索引等方法。其次,是對橫切關注點(Aspect)的挖掘,對Aspect進行挖掘主要是因為有些關注點在程序中的代碼非常相似甚至是同一代碼段。最后是在數(shù)據(jù)庫中挖掘有用的代碼或構件。目前,常用的方法有通過記錄輸入-輸出關系檢索、通過關鍵詞進行索引和挖掘、尋找相似的代碼源和語義、基于構建交互關系圖的方法及對所需構件進行形式化描述等等,如我們使用的Google、百度等搜索引擎都可以進行數(shù)據(jù)的檢索。2.4軟件故障中的應用對于數(shù)據(jù)挖掘技術來說,它除了能夠完成必要的挖掘任務外,還能夠根據(jù)實際的程序執(zhí)行記錄來對其具體說明進行挖掘,通過這些程序可以對軟件所出現(xiàn)的故障進行必要的判斷和測定。在對程序的挖掘過程中,需要首先明確挖掘的初衷和目的,并且對所需了解的信息實施一定程度的跟蹤,然后結合實際信息情況進行建模處理,這樣一來能夠在極大程度上加深對程序得出了解以及便于進行后續(xù)工作。在如今廣泛使用的挖掘方式中,挖掘方式種類較為繁多,其中基于規(guī)則以及自動化兩類更是得到了廣泛的使用。就前者而言,是依據(jù)具體的程序行為來探索必要的規(guī)則,然后采用合適的邏輯表達式來進行表達。而后者這類處理方式多為抽象處理以及抽象挖掘方法。在軟件正常的運行過程中,由于各類因素的相互作用,總會存在一定的幾率發(fā)生故障,而此時雖然傳統(tǒng)的定位技術仍舊能夠到達處理故障的目的,但是從整體程序上分析卻較為繁瑣,其效率較為低下,并且定位的精準度也不高。近年來,通過對新的定位技術進行探索和研究,并且對傳統(tǒng)的定位方式實施一定程度的革新與改良,從而成功的研究出了程序譜來對程序的具體運行軌跡實施抽象定位,通過兩兩對比的方式來找到故障的源頭,從而在較大程度上提高了故障檢測的準確性以及判斷效率。2.5在軟件維護中的應用2.5.1在軟件維護中的修復環(huán)節(jié)中軟件修復環(huán)節(jié)中的缺陷分派可以通過鑒別和評估軟件缺陷程序,確定其修復的優(yōu)先級,從而找到每個缺陷最合適的修復者。在缺陷自動分派方法中,通過將缺陷分派轉(zhuǎn)化為文本類型的問題,以此采取措施加以修復,但其準確率較低,而通過強化檢測重復缺陷報告技術,并在缺陷報告中增設執(zhí)行和自然語言兩種相似度信息,然后按照定義的向量維度描述軟件缺陷,最后獲取兩種相似度的加權和,從而為缺陷選擇合適的修復者,實驗證明,該種方法的正確率為67%左右。2.5.2在軟件維護中的軟件改善軟件結構的優(yōu)化應以理解軟件設計和程序為前提,也可以簡單的理解為借助非編程語言定量描述代碼的過程。在理解軟件的過程中,我們可以采用跟蹤軟件需求的方式在需求文檔中發(fā)現(xiàn)與設計和條目文檔具有對應關系的條目,以保證軟件功能和行為符合相關法律規(guī)定,并自動對重用代碼進行分類以獲取、區(qū)分、標識程序的聚類結果,其中漏洞檢測也是用于保證軟件質(zhì)量和可靠性的常用方法,即通過構建軟件測試程序,收集、清理和轉(zhuǎn)換漏洞庫中的數(shù)據(jù),然后借助科學的數(shù)據(jù)挖掘模型加以訓練和驗證,從而對其進行定位、分類和描述,并重新對其進行測試,以及時發(fā)現(xiàn)和快速修正軟件的漏洞和缺陷。同時也可利用軟件工程挖掘技術中最熱門的克隆代碼工具發(fā)現(xiàn)軟件中重復出現(xiàn)的代碼缺陷,以此為及時修復缺陷提供保障。在完成軟件程序理解環(huán)節(jié)后,還應對其設計加以改善,鑒于該項工作任務繁重,因此可TIMNA方法實現(xiàn)軟件設計的自動改善,在此基礎上,掌握、歸納軟件更改的先后關系,從而為挖掘其傳播規(guī)律提供助益。結束語綜上所述,數(shù)據(jù)挖掘技術能有效幫助改善軟件開發(fā)過程中的控制,能有效提高軟件工程的管理控制,從而促進人們在使

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論