網站首頁 實用文 書信 面試 實習 實習報告 職場 職責 勵志 名言 熱點
當前位置:人人簡歷網 > 書信 > 申請書

論數據倉庫和數據挖掘技術的構件庫管理系統

欄目: 申請書 / 發佈於: / 人氣:1.57W
摘要】:通過較為成熟的數據倉庫和數據挖掘技術存儲和檢索構件信息。數據倉庫中不僅存儲了構件實體,還存放有構件的描述信息、構件的複用歷史信息、構件的用户反饋信息。通過數據挖掘技術在構件倉庫中查找構件,為用户提供高效、準確的構件查找和輔助選擇方案,為構件複用成功提供了有效的技術保障。【關鍵詞】構件;
構件倉庫;
數據挖掘;
反饋;
決策樹  作者簡介:陳文,23歲,男,四川南充人,軟件工程師,重慶西南大學計算機與信息科學學院2005級碩士研究生,研究方向:軟件測試,軟件複用。 引言   軟件構件技術是軟件複用的一種重要手段,是近年來軟件複用研究的熱點,目前出現了大量的基於構件的應用軟件開發,取得了良好的效果。要使用基於構件的軟件開發技術,發揮構件在軟件重用方面的優勢,就必須要有支持整個軟件生命週期幷包含有大量可用構件的構件庫系統,有效的構件管理和高效的構件查詢是構件庫系統成功的關鍵。本文研究的重點是將數據倉庫,數據挖掘技術應用到構件庫系統中,為構件庫管理員提供切實有效的構件管理方法和為用户提供高效的構件查找方法和構件選擇的輔助決策支持。數據倉庫與數據挖掘技術2.1  數據倉庫技術   著名的數據倉庫專家在其著作《Building Data WareHouse》一書中給出瞭如下的數據倉庫的定義:數據倉庫是面向主題的(Subject-Oriented),集成的(Interated),時變的(Time-Variant),非違約的(Non-volatile)一系列用於管理和決策制定的數據集。   面向主題是數據倉的重要特徵,這是與傳統數據庫面向應用相對應的。主題是一個在較高層次將數據歸類的標準。基於主題組織的數據,被劃分為各自獨立的領域,每一個領域有自己的邏輯內涵,互不交叉,數據只是為具體處理而組織在一起。傳統的E-R型數據模式能較好的執行聯機事務處理(OLTP),但不適應決策支持分析,而數據倉庫則是為決策管理提供支持信息,根據業務需求從用户的角度基於主題來組織數據,並形成相應的數據視圖,彙總表等,因此適於聯機分析處理(OLAP)。    數據倉庫的第二個特點是集成化,數據從面向應用的操作環境中,提取到數據倉庫中時,都要經過集成化,統一原始數據中的所有矛盾如命名衝突,數據結構轉換等,最終達到:一致的命名,變量度量,編碼結構,物理屬性等。    數據倉庫的另一個特點是非違約性。因為數據倉庫中的數據是歷史數據,數據經集成進入數據倉庫後,一般不需要改變。針對數據進行的基本操作只是裝數據和訪問數據,因此不存在傳統數據庫中的數據恢復,數據同步,修復死鎖等複雜問題.2.2  數據挖掘技術概述   數據挖掘(Data Mining)就是從大量的、不完全的、有噪聲的、模糊的、隨機的數據中,提取隱含在其中的、人們事先不知道的、但又是潛在有用的信息和知識的非平凡過程,這些信息的表現形式為:規則、概念、規律及模式等。它可幫助決策者分析歷史數據及當前數據,並從中發現隱藏的關係和模式,進而預測未來可能發生的行為。當前構件庫系統應用中的困難   隨着構件庫系統的發展,當構件數目逐漸增多時,用户在查詢和選取構件時會碰到以下一些困難:  (1)在查詢的過程中,可能有多個滿足用户查詢條件的構件,如何快速有效地從眾多的候選構件中,準確的判斷並選取所需的構件,這是一個複雜的決策過程,一般都依賴於用户的複用經驗,以及對構件的理解和主觀判斷。  (2)通常用户都是通過刻面、屬性、關鍵詞、關係等表達式, 根據所需構件的特徵,進行構件的查詢。然而訪問構件的用户具有不同的層次,可能不熟悉構件的刻面分類模式,對構件的理解比較困難。  (3)用户查詢前並沒有一個明確的目標,只是想通過查詢構件庫,找到能夠利用和複用的構件,因而,如何通過構件的複用歷史和其它用户的覽勝經驗,為用户提供一定程度的複用幫助是很必要的。  (4)對需求規約、設計、模式、測試計劃等文檔知識的構件複用屬於間接複用,需要複用者首先進行分析和理解。在大多數複用情況下,對構件的複用是白盒複用,也是就根據構件複用者的反饋,對構件進行適應性修改。如何跟蹤軟件複用的經驗和構件的使用歷史,輔助用户選取相應的分析,設計及改動最小的構件是關鍵。   綜上所述,由於當前的構件描述多是基於構件某一方面特徵,如構件接口、構件屬性、運行環境等進行描述,而缺乏對構件的功能及非功能屬性的精確的,形式化的語義描述,這將導致某一候選構件與需求構件在構件的描述匹配中完全一致,但該構件並不一定能完成需求的功能。例如,用户試圖尋找一個計算兩數相加輸出和的加法構件,但候選的是一個計算兩相乘輸出積的乘法構件,需求構件與候構件在構件接口參數描述、環境依賴等方面完全匹配,但功能上卻大相徑庭。因為缺乏非功能屬性上描述,當前的構件匹配也存在着即使候選構件與需求構件在功能上一致但由於在非功能屬性上不合要求仍不能完成用户需求的問題。特別是當用户應用程序在總體的非功能屬性上,例如用户界面、程序安全性、適時性、可靠性等,有特殊要求時,構件的非功能屬性一致性就更加重要。   構件描述必須具有完全性、完備性、易解理性。構件描述完全性指能夠描述構件各個方面的特性,不存在構件的某一特性不能描述的情況,完備性是指所有的構件都能描述,不存在某一構件不能描述的情況。理論的構件描述方法是語義描述,即以形式化手段描述構件的功能或行為語義,系統可以通過定理證明及基於知識的推理過程來尋找語義上等價或相近的構件。遺憾的是這種基於語義的描述方法涉及許多人工智能難題,目前難於支持大型構件庫工程實現。當前基於不同構件模型的較為成功的構件描述語言CORBA IDL,DCOM IDL和EJB IDL以及被認為是最好的通用構件描述語言XML,它們都能夠描述構件多方面的特性,並且具備編譯和瀏覽工具的支持,但是在描述構件接口語義和構件間複雜的交互協議方面缺乏進一步的支持,因此都不能很好的滿足構件描述的完全性、完備性、易理解性三個方面的要求。例如CORBA IDL不能描述符合CORBA標準以外的構件,也不能精確的描述構件的功能及非功能性特點。因此基於當前的各類構件描述語言,它們的描述只能讓用户獲得構件某些方面的,抽象的認識,尚不能讓用户對整個構件有全面清楚的認識,故勢必影響構件選取,構件複用。而構件的複用歷史,早期用户對構件的使用結果,使用評價,修改意件等複用經驗會對後期用户對構件的認識,選取決策起到重要的輔助作用。因此有效的管理構件的複用歷史記錄,先期用户的複用反饋信息非常重要。基於數據倉庫技術的構件管理   傳統的基於聯機事處理理(OLTP)的E-R數據庫並不適於歷史數據的長期存放與管理,而數據倉庫技術正是用於存放歷史數據信息,並對用户提供決策支持的系統,適宜於聯機事務分析(OLAP),故建立基於數據倉庫技術的用户反饋信息庫以支持構件的存儲和檢索是可行的。在用户反饋信息庫中,對反饋信息進行一定程序的量化處理,主要包括七個維度:時間維度Time,製作者維度Provider,用户維Userinfo,組裝維Compositeinfo,測試維Testinfo,描述維Descripinfo,評價維Valuatinoinfo;
兩類反饋事實:細節事實Freedbackfact,聚集事實AggregrateFact。其多維模式如圖1所示:   Feedback Fact                    圖1  用户反饋為數據模式                     用户反饋通過收集工具捕獲用户提交的反饋信息,並對用户反饋信息進行篩選、分類,集成存入數據倉庫。由於用户反饋庫採用多維數據模式,當需要查詢和分析的主題不斷增加時,可以通過為新增的主題建立相應的事實表和維表(可以共享原來的很多維表),數據庫結構不變,集成到原來的信息庫中,逐步完善軟件企業信息倉庫。這是符合數據倉庫開發的原則,即先從某一主題入手不斷加以完善。基於決策樹的分類發現在軟件構件查詢中的應用    數據挖掘所能發現的知識有如下幾種:廣義型知識,反映同類事物共同性質的知識;
特徵型知識,反映事物各方面的特徵知識;
差異型知識,反映不同事物之間屬性差別的知識;
關聯型知識,反映事物之間依賴或關聯的知識;
預測型知識,根據歷史的和當前的數據推測未來數據;
偏離型知識,揭示事物偏離常規的異常現象。所有這些知識都可以在不同的概念層次上被發現,隨着概念樹的提升,從微觀到中觀再到宏觀,以滿足不同用户、不同層次決策的需要。至於發現工具和方法,常用的有分類、聚類、減維、模式識別、可視化、決策樹、遺傳算法、不確定性處理等。本文在基於前述建立的構件倉庫上,使用決策樹分類法對構件進行檢索。

論數據倉庫和數據挖掘技術的構件庫管理系統

5.1  決策樹分類方法   分類在數據挖掘中是一項非常重要的任務,目前在商業上應用最多。分類的目的是學會一個分類函數或分類模型(也常常稱作分類器),該模型能把數據庫中的數據項映射到給定類別中的某一個。給出一個數據集中的一些屬性,分類器可以預測出某一個特定的屬性。被預測的屬性叫做標籤(label),用於預測的其他屬性叫做描述屬性(descriptive attributes)。在生成分類器後,則可以利用它來對數據集中不包含標籤屬性的記錄進行分類,標籤的值可以用分類器來預測。要構造分類器,需要有一個訓練樣本數據集作為輸入。訓練集由一組數據庫記錄或元組構成,每個元組是一個由有關字段(又稱屬性或特徵)值組成的特徵向量,此外,訓練樣本還有一個類別標記。一個具體樣本的形式可為:(v1,v2,...,vn;
c);
vi表示字段值,c表示類別。從訓練集中自動地構造出分類器的算法叫做生成器(inducer),在生成分類器後,可以利用它來對數據集中不包含標籤屬性的記錄進行分類,標籤屬性的值也可以用分類器來預測。    決策樹分類方法屬於分類方法的一種,該方法的輸入是一組帶有類別標記的數據,構造的結果是一棵二叉樹或多叉樹。二叉樹的內部節點(非葉子節點)一般表示為一個邏輯判斷,如形為(ai=vi),基中ai 是屬性,vi是該屬性的某個屬性值;
樹的邊是邏輯判斷的分支結果;
多叉樹(ID3)的內部節結點是屬性,邊是該屬性的所有取值,有幾個屬性值,就有幾條邊,樹的葉子節點都是類別標記。5.2  決策樹方法與構件分類檢索   決策樹分類算法通常包括兩部分:一是樹的生成,開始時所有數據都在根結點,然後根據設定的標準選擇測試屬性,用不同的測試屬性遞歸的進行數據分割;
二是樹的修剪,就是去掉一些可能是噪音或者異常的數據。構造一棵決策樹就是形成一個訓練集的分類,在分類過程中完成對目標的獲取策略與規則提取。   構件倉庫中構件信息包構件描述信息,複用歷史信息及用户反饋信息。構件描述信息如下表1所示,複用歷史信息如表2所示,用户反饋信息如表3所示。 表1  構件描述信息表 

構件號入庫時間提供者功能描述非功能描述應用領域其它
0012006-1-1微軟XP升級視窗界面PC用户。。。
0022006-1-2瑞星殺毒安全性好PC用户。。。
0032006-1-2金算盤財務結算計算精度高金融領域。。。
0042006-1-5創業軟件CT機控制適時性好醫療領域 。。。
。。。。。。。。。。。。。。。。。。 。。。
         表2  複用歷史信息表                                        
構件號複用時間複用者複用結果複用領域其它
0012006-11-7張三成功PC用户。。。
0012006-10-2李四成功PC用户。。。
0032006-7-2金軟d 411      金達軟件   失敗財務軟件公司。。。
0042006-9-19創業軟件部分成功醫療軟件公司 。。。
。。。。。。。。。。。。。。。 。。。
                                 表3用户反饋信息表 
構件號反饋時間反饋者複用結果複用評價修改意件其它
0012006-11-9張三成功良好需要更好的易操作性。。。
0012006-10-3李四成功升級時間更短。。。
0032006-7-12金軟d 411      金達軟件   失敗需更高計算精度及安全性。。。
0042006-9-20創業軟件部分成功一般更快的響應時間 。。。
。。。。。。。。。。。。。。。。。。 。。。
                                    

構件分類模型


圖2  分類模型                                                  圖3  基於ID3算法生成的決策樹    利用ID3算法生成的決策樹可以用一組IF …THEN… ELSE… 的形式表達。例如:IF(應用領域=金融領域 AND 用户反饋=總體良好 AND 複用歷史)=200次)THEN(評價=推薦)   以上只是對構件倉庫中的構件決策樹的簡單介紹,實際應用中還包括更多構件特徵信息如:構件接口,依賴環境,非功能屬性等,這樣就能為用户提供更全面更仔細的描述,確保對用户選擇構件的輔助決策作用的有效發揮。   最後還應對決策結果進行驗證和評價。結果的驗證和評價是數據挖掘中不可或缺的環節。這是一個反覆實驗的過程,可以運用構件庫中其它的樣本進行驗證,也可以選擇新安的樣本集進行評價,直到復得出用户滿意的結果為止。結束語   隨着構件化軟件開發的普及,構件庫系統作為支持軟件開發的基礎設施的作用將越來越重要,構件的有效管理和高效檢索直接關係到基於構件的軟件複用的成功。數據倉庫技術適宜於存放構件及構件複用歷史信息這類變化較少,相對穩定的數據;
同時基於數據倉庫的數據挖掘技術也有較為成熟的技術。本文嘗試將數據倉庫,數據挖掘技術就用於構件庫管理系統,使用數據倉庫存儲構件信息,使用決策樹的方法進行構件挖掘,輔助用户進行構件的檢索和選取,為構件複用成功提供了有效的技術保障。 參考文獻[1] 郭景峯,米浦波,劉國華.決策樹算法的並行性研究[J].計算機工程,2002,28(8):77-78.[2]楊東青,唐世渭.應用的深化推動數據庫技術發展.計算機科學[J],1997,24(2):15-31.[3]王希辰.數據倉庫技術與可複用構件庫系統研究.中國傳媒大學學報自然科學版,2006,13(2):73-77.[4]徐建民,卲豔華,王靜紅.決策樹方法在軟件構件查詢中的應用研究.微機發展.2004.14(9):125-128.[5]徐建民,卲豔華,王靜紅,劉進波.決策樹分類方法在軟件構件檢索中的輔助決策支持研究.計算機應用.25(5):120-125.[6]朱明.機器學習與數據挖掘:方法與應用[M].北京:電子工業出版社,2004,19(2):59-64.