范凱文
?
軟件工程中數(shù)據(jù)挖掘技術(shù)的應(yīng)用研究
范凱文
北京理工大學(xué)珠海學(xué)院,廣東 珠海 519088
隨著我國(guó)信息技術(shù)的不斷發(fā)展,日常生活和工作中會(huì)不斷的遇到大量的復(fù)雜的信息,如何把這些信息中隱藏的有價(jià)值的信息提取出來(lái)引發(fā)了人們的思考,以軟件工程為例,介紹了軟件工程和數(shù)據(jù)挖掘技術(shù)的歷史、現(xiàn)今的發(fā)展,還說(shuō)明數(shù)據(jù)挖掘技術(shù)的含義和流程;也闡述了數(shù)據(jù)挖掘技術(shù)在軟件工程中的應(yīng)用。
橋頭跳車(chē);城市道路建筑;路基處理;地基沉陷
數(shù)據(jù)挖掘技術(shù)是將大量的數(shù)據(jù)中將有用的信息部分挖掘出來(lái),將隱藏在數(shù)據(jù)庫(kù)中的有價(jià)值的信息挖掘搜尋出來(lái),從而提高人們工作質(zhì)量和效率,因此數(shù)據(jù)挖掘技術(shù)的應(yīng)用在軟件工程領(lǐng)域中顯的十分重要。
1.1 據(jù)挖掘、軟件工程的歷史
數(shù)據(jù)挖掘在早些年被稱為數(shù)據(jù)庫(kù)中的知識(shí)發(fā)現(xiàn),正式出現(xiàn)于20世紀(jì)80年代,數(shù)據(jù)挖掘的發(fā)展是以數(shù)據(jù)庫(kù)為基礎(chǔ),起初研究的重點(diǎn)偏重理論的方法,但隨著數(shù)據(jù)挖掘的發(fā)展重點(diǎn)轉(zhuǎn)向了系統(tǒng)應(yīng)用,并且多種學(xué)科相互滲透和結(jié)合,例如和軟件工程的結(jié)合與滲透[1]。
軟件工程的概念的提出是在1968年北約的科技委員會(huì)為了擺脫軟件危機(jī)的會(huì)議上,軟件工程專(zhuān)注研究用工程化的方法去維護(hù)和構(gòu)建軟件,使軟件質(zhì)量高、經(jīng)濟(jì)又安全,軟件工程目標(biāo)是既要滿足給定的成本條件和要求的時(shí)間限度還要滿足用戶對(duì)軟件成品的需求[2]。
1.2 發(fā)展現(xiàn)狀
在上世紀(jì)九十年代初期,開(kāi)始將數(shù)據(jù)挖掘技術(shù)應(yīng)用于軟件工程中,Allen K等人提出用數(shù)據(jù)挖掘的方式發(fā)現(xiàn)代碼中的復(fù)用關(guān)系,在此之后數(shù)據(jù)挖掘技術(shù)在軟件工程中發(fā)展迅速。2004年的挖掘軟件資源庫(kù)研討會(huì)標(biāo)志著數(shù)字挖掘技術(shù)已經(jīng)成為軟件工程的重要組成部分,它滲透到程序代碼分析、漏洞檢測(cè)、軟件項(xiàng)目管理和軟件開(kāi)發(fā)等領(lǐng)域[3]。
1.3 數(shù)據(jù)挖掘技術(shù)的定義
很多有重要價(jià)值的信息隱藏在數(shù)據(jù)資料中,數(shù)據(jù)挖掘是采用一定的技術(shù)手段從大量的數(shù)據(jù)中挖掘出重要信息的方法,在軟件工程中,數(shù)據(jù)挖掘技術(shù)可以挖掘出有價(jià)值的重要的信息來(lái)預(yù)測(cè)系統(tǒng)是否出現(xiàn)漏洞,從而定位出系統(tǒng)出現(xiàn)故障的位置,還可以尋找代碼之間的相互關(guān)系、進(jìn)行項(xiàng)目成本評(píng)估等等。
2.1 開(kāi)源軟件開(kāi)發(fā)中的數(shù)據(jù)挖掘
開(kāi)源軟件其實(shí)是說(shuō)源代碼是開(kāi)放的軟件,由于目前對(duì)客戶一般都是免費(fèi)的,所以使得開(kāi)源軟件的控制和管理起來(lái)都不方便,但是把數(shù)據(jù)挖掘技術(shù)應(yīng)用于軟件工程中會(huì)提高開(kāi)源軟件的質(zhì)量,例如在牛津大學(xué)設(shè)計(jì)出的數(shù)據(jù)挖掘系統(tǒng)中就實(shí)現(xiàn)了對(duì)系統(tǒng)的開(kāi)發(fā)者和使用者的跟蹤管理,在一定程度上提高了開(kāi)源軟件的質(zhì)量減少了損失率。
2.2 軟件項(xiàng)目管理中的數(shù)據(jù)挖掘
數(shù)據(jù)挖掘技術(shù)在軟件項(xiàng)目管理中主要體現(xiàn)在兩個(gè)方面,一是對(duì)組織關(guān)系的挖掘過(guò)程本質(zhì)上是對(duì)版本控制信息的挖掘,管理軟件項(xiàng)目的過(guò)程比較復(fù)雜,對(duì)人員組織關(guān)系的挖掘主要是協(xié)調(diào)和分配人力資源。
此外,在對(duì)版本控制信息的挖掘時(shí)也應(yīng)用到了數(shù)據(jù)挖掘技術(shù),版本控制時(shí)記錄了文件內(nèi)容的變化,方便了用戶時(shí)刻了解版本修訂情況,還減少了系統(tǒng)后期維修所需成本,系統(tǒng)修復(fù)記錄中的錯(cuò)誤可以通過(guò)數(shù)據(jù)挖掘技術(shù)查找出,設(shè)計(jì)者能通過(guò)查找出的錯(cuò)誤來(lái)巧妙避開(kāi)常見(jiàn)的錯(cuò)誤,提高了軟件項(xiàng)目的管理水平。
2.3 軟件故障檢測(cè)中的數(shù)據(jù)挖掘
在程序的執(zhí)行記錄中數(shù)據(jù)挖掘技術(shù)能挖掘到程序的說(shuō)明和交互模式,通過(guò)此技術(shù)可以定位檢測(cè)到軟件的故障所在。對(duì)信息追蹤然后進(jìn)行逆向建模來(lái)實(shí)現(xiàn)對(duì)程序的說(shuō)明挖掘,加強(qiáng)了對(duì)程序后期的維護(hù)?;谝?guī)則挖掘和基于自動(dòng)化挖掘這兩種挖掘方式是目前常用的數(shù)據(jù)挖掘,基于自動(dòng)化挖掘方式比較成熟,通過(guò)利用自動(dòng)機(jī)抽象技術(shù)表示出的API規(guī)則挖掘方法,而基于規(guī)則的挖掘方法通過(guò)程序行為方式發(fā)現(xiàn)規(guī)律以時(shí)態(tài)邏輯方式表達(dá)出來(lái)。
3.1 數(shù)據(jù)挖掘技術(shù)的流程
選擇、預(yù)處理、挖掘和吸收是數(shù)據(jù)挖掘技術(shù)流程的四個(gè)步驟,在選擇這個(gè)步驟中主要針對(duì)交互性強(qiáng)的數(shù)據(jù),在工作過(guò)程中數(shù)據(jù)往往更新很快所以要及時(shí)對(duì)數(shù)據(jù)做出新的選擇。預(yù)處理過(guò)程主要是對(duì)沒(méi)有進(jìn)行過(guò)加工處理的數(shù)據(jù)進(jìn)行挖掘處理轉(zhuǎn)化為合適的形式,采用LSA的技術(shù)整理好所需的數(shù)據(jù)。挖掘是將預(yù)處理過(guò)的數(shù)據(jù)通過(guò)計(jì)算方法輸入進(jìn)去,在大量的數(shù)據(jù)中搜尋出合適的最能反應(yīng)本質(zhì)的信息部分,最終完成工作任務(wù)。吸收是對(duì)數(shù)據(jù)的后處理,將有用的信息部分展現(xiàn)給用戶,讓之前的步驟的作用發(fā)揮到極致。
3.2 軟件工程中數(shù)據(jù)挖掘技術(shù)的方法
數(shù)據(jù)挖掘技術(shù)常用的方法有:分類(lèi)、關(guān)聯(lián)、聚類(lèi)。分類(lèi)通常預(yù)測(cè)分類(lèi)標(biāo)號(hào),首先建立一個(gè)模型,然后通過(guò)模型對(duì)預(yù)定的數(shù)據(jù)類(lèi)集進(jìn)行分類(lèi)。在進(jìn)行分類(lèi)時(shí)長(zhǎng)采用判定樹(shù)法、貝葉斯分類(lèi)法、神經(jīng)網(wǎng)絡(luò)分類(lèi)法等,其中判定樹(shù)法的基礎(chǔ)是貪心算法,在形成構(gòu)造樹(shù)時(shí)通常采用自上往下的遞歸方式,類(lèi)別符號(hào)和葉子節(jié)點(diǎn)相互對(duì)應(yīng),最終產(chǎn)生分類(lèi)的結(jié)果。
3.3 關(guān)聯(lián)
在大量的數(shù)據(jù)中項(xiàng)集之間的相互聯(lián)系稱為關(guān)聯(lián),關(guān)聯(lián)規(guī)則有兩個(gè)重要的屬性:支持度和置信度。支持度是指項(xiàng)集A和B在事物集D中出現(xiàn)的概率之和,置信度是指在項(xiàng)集A出現(xiàn)的事物集D中,B也出現(xiàn)的概率。如果同時(shí)滿足最小置信度和最小支持度那就是強(qiáng)規(guī)則。挖掘關(guān)聯(lián)規(guī)則其實(shí)就是產(chǎn)生的置信度和支持度大于客戶給的最小置信度和支持度的關(guān)聯(lián)規(guī)則。
在軟件工程的軟件開(kāi)發(fā)項(xiàng)目中急需可以精確測(cè)量的工具,然而將數(shù)據(jù)挖掘技術(shù)應(yīng)用于軟件工程中并將兩者完美結(jié)合已經(jīng)產(chǎn)生了可觀的經(jīng)濟(jì)效益,提高了工作效率和工作質(zhì)量。總而言之,伴隨著軟件工程的發(fā)展,數(shù)據(jù)挖掘技術(shù)也要不斷創(chuàng)新和改善,數(shù)據(jù)挖掘技術(shù)將以成熟的全新技術(shù)形式應(yīng)用于軟件工程。
[1]毛澄映,盧炎生,胡小華.數(shù)據(jù)挖掘技術(shù)在軟件工程中的應(yīng)用綜述[J].計(jì)算機(jī)科學(xué),2009(05):130-131.
[2]趙麗坤;陳立文;張國(guó)宗.基于數(shù)據(jù)挖掘技術(shù)的軟件項(xiàng)目管理體系[J].經(jīng)營(yíng)于管理,2012(12):122-123.
[3]李新;張曉靜;米燕濤.軟件開(kāi)發(fā)過(guò)程中的數(shù)據(jù)挖掘[J].石家莊職業(yè)技術(shù)學(xué)院學(xué)報(bào),2012(2):18-20.
范凱文(1993—),男,漢族,湖北松滋人,本科學(xué)歷。
TP311.13
A
1009-6434(2016)05-0078-01