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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

1、數(shù)據(jù)挖掘技術(shù)的分類(lèi)及標(biāo)準(zhǔn)

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

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

1.2軟件工程度量標(biāo)準(zhǔn)

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

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

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

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

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

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

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

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

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

3.3結(jié)果評(píng)價(jià)無(wú)法統(tǒng)一

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

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

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

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

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

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

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

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

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

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

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

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

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

結(jié)語(yǔ)

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

參考文獻(xiàn)

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

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

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

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論