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