周麗英
(大慶鉆探工程公司錄井一公司 信息中心,黑龍江 大慶 163411)
?
面向軟件開發(fā)信息庫的數(shù)據(jù)挖掘綜述
周麗英
(大慶鉆探工程公司錄井一公司 信息中心,黑龍江 大慶 163411)
[摘 要]如今硬件開發(fā)漸漸陷入瓶頸,軟件的開發(fā)成為重點(diǎn),如何將軟件開發(fā)信息庫中數(shù)據(jù)利用起來,是一個(gè)值得研究的課題。本文結(jié)合軟件開發(fā)信息庫與數(shù)據(jù)挖掘進(jìn)行闡述,提出做好數(shù)據(jù)挖掘的一些策略,以供參考。
[關(guān)鍵詞]軟件開發(fā);信息庫;數(shù)據(jù)挖掘
面向軟件開發(fā)信息庫的數(shù)據(jù)挖掘是一個(gè)值得研究的課題。隨著技術(shù)的不斷進(jìn)步,軟件開發(fā)信息庫中的數(shù)據(jù)日益龐大,如何將其中的數(shù)據(jù)利用起來為軟件開發(fā)提供便利,是值得思考的問題。
軟件開發(fā)過程中相關(guān)數(shù)據(jù)的總和就是軟件開發(fā)信息庫,其體現(xiàn)出了信息的數(shù)據(jù)化。一般包括以下幾種數(shù)據(jù)化信息。①項(xiàng)目信息數(shù)據(jù)包括開發(fā)過程、軟件開發(fā)里重要的數(shù)據(jù)、任務(wù)細(xì)節(jié)、資源等。收集項(xiàng)目的信息數(shù)據(jù)對后期的項(xiàng)目開發(fā),有著重要的作用,關(guān)系著軟件最終的性能。②源代碼。軟件開發(fā)項(xiàng)目最關(guān)鍵的要素就是源代碼,直接關(guān)系著程序的執(zhí)行能力。源代碼包括軟件開發(fā)中設(shè)計(jì)的源代碼、軟件升級(jí)源代碼以及修改過程中的源代碼。③軟件開發(fā)過程中的歷史信息及相關(guān)文檔(包括測試文檔、需求文檔、設(shè)計(jì)文檔、郵件存檔與交流記錄等)信息數(shù)據(jù)。根據(jù)信息數(shù)據(jù)的不同,主要采取3種數(shù)據(jù)系統(tǒng)進(jìn)行數(shù)據(jù)的存儲(chǔ):①軟件配置管理系統(tǒng)(Software Configuration Management System,SCMS),用于存儲(chǔ)源代碼、開發(fā)過程中的文檔以及歷史記錄,比較常用的有CVS系統(tǒng)、SVN系統(tǒng)等;缺陷跟蹤系統(tǒng)(Defect Tracking System,DTS)用于存儲(chǔ)管理軟件開發(fā)中的缺陷信息以及修改信息,目前,最常用的系統(tǒng)就是Bugeilla(開源軟件缺陷管理系統(tǒng));項(xiàng)目管理系統(tǒng)(Project Management System,PMS)用存儲(chǔ)項(xiàng)目計(jì)劃、資源分配、執(zhí)行過程等信息數(shù)據(jù),例如,微軟project軟件。
數(shù)據(jù)挖掘(Knowledge Discovery in Database,KDD),又叫數(shù)據(jù)庫中的知識(shí)發(fā)現(xiàn)。包括4個(gè)步驟:①數(shù)據(jù)抽取,從數(shù)據(jù)源中抽取所需數(shù)據(jù)進(jìn)行研究;②數(shù)據(jù)預(yù)處理,實(shí)際抽取的數(shù)據(jù)與開發(fā)所需的數(shù)據(jù)并不一定就相符,所以需要對數(shù)據(jù)信息進(jìn)行預(yù)處理包括數(shù)據(jù)的清洗、轉(zhuǎn)換、歸納及重構(gòu);③知識(shí)發(fā)現(xiàn),這是數(shù)據(jù)挖掘中的關(guān)鍵,就是應(yīng)用數(shù)據(jù)挖掘技術(shù)在一些潛在的、未知且有用的信息中發(fā)現(xiàn)數(shù)據(jù)并運(yùn)用于實(shí)際開發(fā)中;④知識(shí)表示,是應(yīng)用于軟件開發(fā)的表現(xiàn),主要就是將前三步的數(shù)據(jù)進(jìn)行整理歸納并應(yīng)用,比如:發(fā)現(xiàn)實(shí)體間的關(guān)鍵聯(lián)系規(guī)則后,在知識(shí)表示這一步驟中將分析的關(guān)鍵規(guī)則進(jìn)行關(guān)聯(lián)推薦。
事實(shí)上在面向軟件開發(fā)信息庫的數(shù)據(jù)挖掘中還存在著或多或少的技術(shù)難點(diǎn),主要包括數(shù)據(jù)信息復(fù)雜、數(shù)據(jù)分析形式變化以及數(shù)據(jù)挖掘的效果無法有效保證等。因此,要做好面向軟件開發(fā)信息庫的數(shù)據(jù)挖掘主要可以從以下幾個(gè)方面入手。
2.1數(shù)據(jù)來源
數(shù)據(jù)來源主要就是所獲取的數(shù)據(jù)的來源,要進(jìn)行數(shù)據(jù)挖掘首先得要有數(shù)據(jù)才能夠進(jìn)行挖掘。軟件開發(fā)信息庫中包含有巨量的信息可供挖掘。可以從權(quán)威機(jī)構(gòu)的開源信息以及網(wǎng)絡(luò)上的開源軟件中獲取源代碼信息。具體來說就是,軟件開發(fā)公司或者自由程序員開發(fā)出來的數(shù)據(jù)信息,只要能夠獲得合法權(quán)限都是可以作為數(shù)據(jù)挖掘的數(shù)據(jù)來源。比如:大型軟件開發(fā)組織自身可以自行建立一個(gè)軟件開發(fā)信息庫,軟件開發(fā)組織將自身軟件開發(fā)的信息整理歸納出來,便于抽取、理解以及分析處理。
2.2數(shù)據(jù)預(yù)處理
數(shù)據(jù)預(yù)處理是數(shù)據(jù)挖掘的第二步驟,具體操作有以下幾個(gè)方面。①對配置系統(tǒng)進(jìn)行科學(xué)有效的管理,清除重復(fù)無效信息數(shù)據(jù),將重要或關(guān)鍵信息以及與軟件開發(fā)項(xiàng)目相關(guān)的信息導(dǎo)出并分析,然后將分析結(jié)果同數(shù)據(jù)一同存儲(chǔ),擴(kuò)充信息庫的同時(shí)為后續(xù)應(yīng)用提供數(shù)據(jù)來源。②缺陷系統(tǒng)數(shù)據(jù)的處理。就是對缺失的屬性值進(jìn)行分析處理,主要包括缺陷類別、狀態(tài)、缺失的信息屬性值等,在充分考慮數(shù)據(jù)間的關(guān)鍵聯(lián)系后進(jìn)行處理。③缺失、不一致的數(shù)據(jù)或者噪聲數(shù)據(jù)的處理。軟件開發(fā)的時(shí)間點(diǎn)可能不一樣,任務(wù)的前后關(guān)系也不一樣,甚至數(shù)據(jù)中還有不必要的噪聲數(shù)據(jù),因此,需要對這些數(shù)據(jù)進(jìn)行處理,為后續(xù)的數(shù)據(jù)轉(zhuǎn)換提供便利。
2.3分析軟件演進(jìn)
分析軟件演進(jìn),就是數(shù)據(jù)的轉(zhuǎn)換,對配置管理系統(tǒng)、缺陷系統(tǒng)、項(xiàng)目過程數(shù)據(jù)的轉(zhuǎn)換要分別進(jìn)行轉(zhuǎn)換。首先,需要對這些系統(tǒng)當(dāng)中的信息進(jìn)行科學(xué)有效的分析,尤其是數(shù)據(jù)當(dāng)中的關(guān)聯(lián)性(或者語義)要分析到位;其次,要對軟件結(jié)構(gòu)進(jìn)行全盤考慮,包括方法、定義、需求、相關(guān)變量等。
2.4缺陷分析與動(dòng)態(tài)建模
在這個(gè)步驟中,主要是根據(jù)實(shí)際情況對軟件缺陷進(jìn)行研究與分析,決策樹、回歸分析、神經(jīng)網(wǎng)絡(luò)等方法是十分有效的缺陷分析方法,對源代碼的提取與轉(zhuǎn)換提供了巨大的幫助。二項(xiàng)回歸模型方法是較為主流的缺陷分析方法,可有效地分析與統(tǒng)計(jì)軟件缺陷數(shù)據(jù)。
軟件開發(fā)信息庫的作用日益凸顯,在如今硬件漸漸陷入瓶頸的特殊時(shí)期,軟件的開發(fā)就成為提高硬件性能的有效手段。而數(shù)據(jù)挖掘的應(yīng)用對于提取軟件開發(fā)信息庫中的數(shù)據(jù)有著極大的作用,為開發(fā)人員提供龐大的數(shù)據(jù)用以參考和轉(zhuǎn)換,在兼顧用戶需求的基礎(chǔ)上,極大地提高軟件性能,必將促進(jìn)軟件開發(fā)行業(yè)的發(fā)展。
主要參考文獻(xiàn)
[1]郁抒思,周水庚,關(guān)佶紅.軟件工程數(shù)據(jù)挖掘研究進(jìn)展[J].計(jì)算機(jī)科學(xué)與探索,2012(1).
doi:10.3969/j.issn.1673 - 0194.2016.12.124
[中圖分類號(hào)]TP311.13
[文獻(xiàn)標(biāo)識(shí)碼]A
[文章編號(hào)]1673-0194(2016)12-0184-01
[收稿日期]2016-05-12