軟件工程數(shù)據(jù)挖掘技術(shù)的相關(guān)研究_第1頁
軟件工程數(shù)據(jù)挖掘技術(shù)的相關(guān)研究_第2頁
軟件工程數(shù)據(jù)挖掘技術(shù)的相關(guān)研究_第3頁
軟件工程數(shù)據(jù)挖掘技術(shù)的相關(guān)研究_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

軟件工程數(shù)據(jù)挖掘技術(shù)的相關(guān)研究摘要:隨著計算機信息技術(shù)和網(wǎng)絡(luò)技術(shù)的快速發(fā)展,用戶獲取數(shù)據(jù)信息擁有了很多便利條件。借助數(shù)據(jù)挖掘技術(shù),在軟件工程中對數(shù)據(jù)進行分類、聚類、統(tǒng)計分析,發(fā)現(xiàn)潛在的數(shù)據(jù)、規(guī)則,指導軟件工程的各項活動,從而達到改善軟件產(chǎn)品質(zhì)量、提升軟件開發(fā)效率的效果。本文將就軟件工程數(shù)據(jù)挖掘技術(shù)展開探討。

關(guān)鍵詞 :軟件工程;數(shù)據(jù);挖掘技術(shù)

軟件工程數(shù)據(jù)挖掘技術(shù)是指在海量數(shù)據(jù)庫內(nèi)使用已有的技術(shù)或新的數(shù)據(jù)挖掘算法,通過選取、分析、表述等一系列步驟,為軟件開發(fā)者收集有價值信息的過程。為清晰掌握并管理軟件開發(fā)的過程,軟件開發(fā)商必須收集所需的數(shù)據(jù),這是行業(yè)軟件開發(fā)的慣例。想要完成上述工作,必須從大量的數(shù)據(jù)內(nèi)提取所需的數(shù)據(jù)信息,收集和選取信息的過程就是數(shù)據(jù)挖掘過程。目前,數(shù)據(jù)挖掘技術(shù)在軟件工程中得到廣泛的應(yīng)用,本文將介紹數(shù)據(jù)挖掘技術(shù)的相關(guān)知識及在軟件工程的應(yīng)用情況。

1、數(shù)據(jù)挖掘技術(shù)的分類及標準

1.1數(shù)據(jù)挖掘的概念及其分類

數(shù)據(jù)挖掘是由海量數(shù)據(jù)中獲取所需的有價值的數(shù)據(jù)信息,這一過程被稱作“挖掘”或“捕撈?!睌?shù)據(jù)挖掘就是驗證驅(qū)動分析辦法轉(zhuǎn)向驅(qū)動分析數(shù)據(jù)。對驅(qū)動進行驗證時,用戶可以假設(shè)信息的存在,隨之進行收集和分析,逐步驗證原有假設(shè)成立。現(xiàn)階段,數(shù)據(jù)存儲規(guī)模極大、有一定的復(fù)雜性,單單采用驗證驅(qū)動法無法把數(shù)據(jù)庫所有的可用數(shù)據(jù)充分挖掘出來。發(fā)現(xiàn)驅(qū)動方法能夠?qū)A繑?shù)據(jù)實時有效的篩選,并自動化識別內(nèi)部所隱藏的有用信息。進行數(shù)據(jù)挖掘過程中,對信息進行收集能幫助改進自身產(chǎn)品,所以進行數(shù)據(jù)收集時要使用各種軟件度量標準[1]。數(shù)據(jù)挖掘技術(shù)主要可以分為:分類樹技術(shù)、聚類技術(shù)、人工神經(jīng)網(wǎng)絡(luò)、關(guān)聯(lián)技術(shù)、可視化數(shù)據(jù)挖掘技術(shù)等等。軟件度量數(shù)據(jù)一般具有高耦合性、多維度的特點,軟件工程進行數(shù)據(jù)挖掘時通常使用統(tǒng)計分析、神經(jīng)網(wǎng)絡(luò)、回歸建模等特殊處理技術(shù),實際應(yīng)用中,挑選哪一種挖掘技術(shù),對軟件工程實踐達到理想目標有重要影響。

1.2軟件工程度量標準

隨著軟件朝著工程化、大型化不斷發(fā)展,開發(fā)者在這部分數(shù)據(jù)內(nèi)獲得有價值信息的難度明顯增加?;谶@種情況,軟件開發(fā)者使用瀏覽文檔、代碼等傳統(tǒng)方法,取得軟件開發(fā)需要的數(shù)據(jù)信息這一方法已無法滿足時代發(fā)展需求。軟件開發(fā)商進行項目開發(fā)時,慢慢的把監(jiān)測和控制軟件過程中的各項指標實施量化處理,確保用戶能夠清晰了解產(chǎn)品整個開發(fā)過程?,F(xiàn)階段,度量數(shù)據(jù)受到更多的重視和關(guān)注,軟件工程度量必須與數(shù)據(jù)收集、分析等過程合理結(jié)合[2]。設(shè)計產(chǎn)品的圖表具有多樣性的特點,一般采用靜態(tài)形式進行描述,而圖表會因時間的改變而變化,如此導致度量數(shù)據(jù)實際運用時受到一定的限制。例如:多數(shù)圖表即使能清晰反應(yīng)整個產(chǎn)品的生產(chǎn)過程及質(zhì)量,但卻無法當做有利的判斷依據(jù)。軟件工程因其在眾多數(shù)據(jù)上的特殊性,為深入研究數(shù)據(jù)挖掘帶來一定的制約和影響。

2、數(shù)據(jù)挖掘技術(shù)的基本操作流程

通常情況下,數(shù)據(jù)挖掘技術(shù)主要分為以下步驟:挑選數(shù)據(jù)、預(yù)處理、進行數(shù)據(jù)挖掘、吸收數(shù)據(jù)。數(shù)據(jù)挖掘過程具有交互性的特點,有時或許要再次選擇數(shù)據(jù)或要對預(yù)處理過程進行改進,基于上述情況,進行數(shù)據(jù)挖掘時必須設(shè)計反饋環(huán)。數(shù)據(jù)挖掘的首要任務(wù)是把管理與目標反映至多個挖掘任務(wù)內(nèi),整個實現(xiàn)過程主要分為以下步驟。①評估產(chǎn)品:產(chǎn)品評估就是對軟件產(chǎn)生的生產(chǎn)過程[3]。資源屬性實施相對應(yīng)的檢查,且必須根據(jù)資源的各類屬性,對未知屬性進行賦值,必須注意所用的未知屬性要進行量化處理,整個評估工作完工后,要對獲取的屬性值實施預(yù)測。②關(guān)聯(lián)屬性:關(guān)聯(lián)發(fā)現(xiàn)可以識別某一內(nèi)容中相互存在的關(guān)聯(lián)屬性。例如:可以把找到的軟件開發(fā)屬性與產(chǎn)品屬性相關(guān)聯(lián)的點找出來。③聚類過程:把某個結(jié)構(gòu)不同的群體劃分至另一個擁有相同結(jié)構(gòu)的子群集合內(nèi),這一操作稱為聚類過程。④數(shù)據(jù)可視化處理:數(shù)據(jù)可視化處理就是采用可視化方法對復(fù)雜信息進行描述,并對描述的內(nèi)容進行可視化數(shù)據(jù)探查,使用數(shù)據(jù)可視化交互控制對海量數(shù)據(jù)進行分析和檢視[4]。軟件工程數(shù)據(jù)挖掘具體操作過程均滿足一般性數(shù)據(jù)挖掘技術(shù)或領(lǐng)域的要求,通常來說,數(shù)據(jù)挖掘過程主要包括:數(shù)據(jù)預(yù)處理、挖掘、結(jié)果評估三個部分,數(shù)據(jù)挖掘流程如圖1所示。數(shù)據(jù)預(yù)處理就是把沒有加工的數(shù)據(jù)轉(zhuǎn)換為適應(yīng)挖掘出來的形式。預(yù)處理過程牽涉各種來源、格式的數(shù)據(jù),把非格式的數(shù)據(jù)轉(zhuǎn)變?yōu)楦袷交瘮?shù)據(jù)后,選取與目前數(shù)據(jù)挖掘任務(wù)相關(guān)的記錄及特征,對數(shù)據(jù)進行清洗達到消除噪聲的目的。挖掘操作就是在海量數(shù)據(jù)內(nèi)找出反應(yīng)本質(zhì)性或規(guī)律性的信息。整個挖掘過程使用一系列的算法,挖掘任務(wù)包含頻繁序列、關(guān)聯(lián)規(guī)則、異常檢測等方面的內(nèi)容。結(jié)果評估是對用戶展現(xiàn)有用的信息,難點之處為人所理解的信息與計算機理解、表達的信息由一定的差異,數(shù)據(jù)挖掘能便于人們進行理解。結(jié)果評估主要由:模式過濾、模式表示兩個步驟,基于不同的設(shè)計任務(wù),數(shù)據(jù)挖掘算法包括分類、估值與預(yù)測、聚類、異常檢測等步驟。

3、軟件工程數(shù)據(jù)挖掘發(fā)展中存在的問題

軟件工程數(shù)據(jù)挖掘的操作過程與傳統(tǒng)數(shù)據(jù)挖掘有一定的相同之處,這是數(shù)據(jù)挖掘技術(shù)的一種特殊形式,該過程主要有預(yù)處理、數(shù)據(jù)挖掘、評估結(jié)果三個環(huán)節(jié)。軟件工程數(shù)據(jù)挖掘?qū)Ρ葌鹘y(tǒng)數(shù)據(jù)挖掘有自身的特殊性,其表現(xiàn)如下:

3.1數(shù)據(jù)復(fù)雜性更大

軟件工程數(shù)據(jù)不單有軟件報告及版本信息等相關(guān)的結(jié)構(gòu)化數(shù)據(jù),也包含大量的代碼、注釋這一類的非結(jié)構(gòu)化數(shù)據(jù)。這兩種不相同的數(shù)據(jù)結(jié)構(gòu)無法采用同一算法展開運算,這兩類數(shù)據(jù)信息又具有極為重要的聯(lián)系,導致整個工程的數(shù)據(jù)復(fù)雜性明顯增大。

3.2分析結(jié)果具有特殊性

傳統(tǒng)數(shù)據(jù)挖掘得到的結(jié)果一般通過多種結(jié)果形式呈現(xiàn)出來,例如:報表、文字等,軟件工程數(shù)據(jù)挖掘不單單要為用戶提供相應(yīng)的統(tǒng)計結(jié)果,也必須給開發(fā)軟件人員提供詳細具體的例子,為其設(shè)計結(jié)構(gòu)提供所需的信息。所以,軟件工程挖掘會對新型的數(shù)據(jù)結(jié)果提交相應(yīng)的方法[5]。

3.3結(jié)果評價無法統(tǒng)一

傳統(tǒng)數(shù)據(jù)挖掘技術(shù)已經(jīng)形成相對成熟的評價指標,但從軟件工程數(shù)據(jù)挖掘的角度來說,軟件開發(fā)人員所需的信息具有復(fù)雜性、具體化的特點,相對應(yīng)的表示方法也呈現(xiàn)多樣化,彼此之前無法展開比較,就很難得出相對統(tǒng)一的評價結(jié)果。因此,軟件工程數(shù)據(jù)挖掘的難點是在數(shù)據(jù)預(yù)處理和表述挖掘結(jié)果這兩個環(huán)節(jié),深入分析軟件開發(fā)過程中出現(xiàn)的問題并進行有效解決尤為重要。

4、軟件工程數(shù)據(jù)挖掘技術(shù)的發(fā)展探討

近些年,數(shù)據(jù)挖掘技術(shù)被廣泛應(yīng)用在軟件工程中,在軟件工程內(nèi)運用數(shù)據(jù)挖掘能提升軟件系統(tǒng)的維護效率,也在一定程度上增加系統(tǒng)的穩(wěn)定性。

4.1編程中的數(shù)據(jù)挖掘

編程作為開發(fā)軟件的重要內(nèi)容,對代碼進行編寫時,開發(fā)者要充分理解需要編程代碼的結(jié)構(gòu)與功能,根據(jù)自身的理解在數(shù)據(jù)庫內(nèi)選出有價值的信息。通常編程需要的信息分為以下部分:①開發(fā)軟件者在已有代碼庫中找出與需要的代碼結(jié)構(gòu)、功能相似的、可以重用的模式,如數(shù)據(jù)結(jié)構(gòu)、對象、方法等等[6];②開發(fā)者能夠在數(shù)據(jù)庫內(nèi)找到重用某模式的靜態(tài)規(guī)則,例如:類的方法、繼承關(guān)系等等;③開發(fā)者深入了解分析重用模式的規(guī)則,如:API調(diào)用順序。

4.2開發(fā)開源軟件的數(shù)據(jù)挖掘

開源軟件是指源代碼開發(fā)的軟件,這一種軟件是一種免費為客戶提供服務(wù)的模式,這是因其免費性的原因,對開源軟件的管理和控制比較困難,此時采用數(shù)據(jù)挖掘技術(shù)能提升開源軟件的質(zhì)量。如:牛津大學設(shè)計的數(shù)據(jù)挖掘系統(tǒng),可以實時跟蹤并管理系統(tǒng)的使用者,在一定程度上提升開源軟件的使用效率。

4.3程序代碼中使用的數(shù)據(jù)挖掘

程序代碼就是指克隆代碼,這種代碼是采用復(fù)制、粘貼操作可以重復(fù)使用的代碼。在克隆代碼內(nèi)使用數(shù)據(jù)挖掘進行檢測也比較早,對于克隆代碼進行檢測主要采用以下形式:文本對比法、基于度量方法、使用潛在語義索引等辦法。但在克隆代碼內(nèi)使用數(shù)據(jù)挖掘還不夠成熟,主要因數(shù)據(jù)挖掘時必須把語義挖掘考慮其中[7]。同時,要對橫切關(guān)注點進行挖掘,橫切關(guān)注點使用的挖掘方式較多,例如:對代碼文本進行分析過程中,能根據(jù)不同的特點劃分為基于文本與類型的分析、基于聚類分析法、形式概念分析法等。分析調(diào)用關(guān)系時候,可以使用扇入分析技術(shù)或基于耦合與PageRank度量辦法展開數(shù)據(jù)挖掘。

4.4檢測軟件故障使用數(shù)據(jù)挖掘技術(shù)

數(shù)據(jù)挖掘技術(shù)可以根據(jù)程序的執(zhí)行經(jīng)歷挖掘至程序的規(guī)約及交互模式中,從而準確定位和檢測軟件故障。程序說明中的挖掘技術(shù)是指為信息跟蹤實施逆向建模,從而強化程序的理解及相應(yīng)的維護工作。現(xiàn)階段,通常使用的挖掘方式主要包括基于規(guī)則和自動化挖掘這兩種形式?;谝?guī)則挖掘是根據(jù)程序行為找尋相應(yīng)的規(guī)則并采用時態(tài)邏輯進行表達,自動化挖掘方式是發(fā)展比較成熟的API規(guī)則挖掘方法。傳統(tǒng)定位軟件故障是使用程序切片,這種方式比較復(fù)雜,容易出現(xiàn)故障定位不準的情況。隨著傳統(tǒng)定位方式的逐步改進,目前使用比較成功的是采用程序譜抽象描述程序運行軌跡,并把運行正常的軟件與故障運行狀態(tài)進行對比,根據(jù)兩者的差異判斷故障來源,這些新型的數(shù)據(jù)挖掘技術(shù)能有效提升軟件故障檢測的準確率和效率。

4.5軟件管理中使用數(shù)據(jù)挖掘技術(shù)

軟件項目管理中主要在組織關(guān)系和版本控制信息兩個方面使用數(shù)據(jù)挖掘技術(shù),軟件項目管理是一項比較復(fù)雜的工程,人員組織關(guān)系挖掘重點在于合理協(xié)調(diào)和分配人力資源。如:某一項目或許要有成千上百人參與其中,這個參與過程各個人員需要通過電子郵件、文檔等實施交互,交互過程中容易出現(xiàn)秩序混亂的情況,數(shù)據(jù)挖掘技術(shù)能合理區(qū)分工作人員之間的組織關(guān)系,便于進行項目管理。版本控制能詳細記錄整個文件內(nèi)容的變化情況,便于用戶查看版本修訂狀況,把數(shù)據(jù)挖掘技術(shù)應(yīng)用到版本控制信息內(nèi)能降低系統(tǒng)后期維護成本。數(shù)據(jù)挖掘及時可以為日常維護軟件系統(tǒng)提供警醒作用,部分挖掘數(shù)據(jù)能清晰找尋系統(tǒng)修復(fù)過程中存在的錯誤,根據(jù)找尋的錯誤記錄便于軟件設(shè)計者及時避開常見的錯誤,提升軟件項目的修復(fù)和管理水平。

結(jié)語

總之,數(shù)據(jù)挖掘技術(shù)廣泛應(yīng)用在分析代碼、軟件故障檢測、軟件項目管理等方面,能有效提升軟件工程的管理和控制能力。值得注意的是,目前數(shù)據(jù)挖掘技術(shù)的研究還不夠成熟,必須不斷加強軟件工程數(shù)據(jù)挖掘技術(shù)的研究,促進軟件更好地開發(fā)和管理。

參考文獻

[1]李由.基于DMX語言的數(shù)據(jù)挖掘算法包原型系統(tǒng)的設(shè)計與實現(xiàn)[D].華東師范大學,2024.

[2]孫雪娟.基于Web2.0和數(shù)據(jù)挖掘技術(shù)的軟件專業(yè)教學系統(tǒng)設(shè)計[J].軟件導刊,2024,(12):121-122,123.

[3]金蓮花.數(shù)據(jù)挖掘在軟件缺陷管理中的研究與應(yīng)用[D].長春理工大學,2024.

[4]張連育,呂立.基于策略模式

溫馨提示

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

評論

0/150

提交評論