摘 要:提出了一種將構件的通用屬性和特殊屬性分開描述及管理的構件通用屬性描述方法CGADM及其擴展機制,闡述了該描述方法的定義,分析了其特點。基于該描述方法設計實現了一個構件管理實驗系統,證明了該描述方法具有良好的描述性能和擴展性能。
關鍵詞:構件屬性; 構件描述方法; 構件庫; 刻面分類
中圖分類號:TP311.1 文獻標志碼:A
文章編號:1001-3695(2010)03-0941-04
doi:10.3969/j.issn.1001-3695.2010.03.036
Study of component general attribute described method
CHEN Zhi-yong , SHU Yuan-zhong,PENG Xiao-hong, LIU Yan-pei
(School of Computing, Nanchang Hangkong University, Nanchang 330063, China)
Abstract:This paper proposed a component general attribute described method(CGADM) which separated the description and the management of the generic component attributes from the special component attributes and its extendable mechanism. Defined detailedly the CGADM, discussed and analyzed its features. The better described performance and expansibility of the CGADM were proved by an experimental component library which was designed and achieved based on CGADM.
Key words:component attribute; component described method; component library; faceted classification
構件描述方法是對構件本質特征的抽象描述,從而反映構件性質。它定義了構件的本質屬性,規定了構件接口的結構以及構件與容器之間、構件與構件之間的交互機制,是構件描述的基礎[1]。目前構件表示方法可以分為人工智能、超文本和信息科學三類[2]。其中信息科學方法在目前實際復用項目中應用較為成功,它主要包括枚舉、刻面、屬性值、關鍵詞四種分類方法。刻面分類方法將關鍵詞和術語置于一定的語境中,反映構件本質特性的不同視角。構件的描述術語僅限在給定的刻面之中選取,術語間也存在一般/特殊關系或同義詞關系,從而形成由刻面與術語組成的樹狀結構。例如REBOOT模型通過對構件屬性進行分析,從抽象、操作、操作對象和依賴四個刻面描述構件。國內青鳥構件庫采用以刻面分類描述為主、多種分類模式相結合的JBCDL描述語言[3]從九個刻面描述構件。Prieto-Diaz等人創造了一種基于庫科學的分類計劃, 提出基于標準術語詞匯的構件描述方法。
隨著構件復用的實踐和新技術的出現,構件描述方法也得到了很大的發展,一些文獻中提出了新的構件描述方法。文獻[2]提出了將刻面法和規格說明相結合的綜合刻面法來描述構件。文獻[4]提出了基于本體(ontology)的構件描述方法,它從構件本體出發對構件進行描述,并加入了構件的語義描述。其他一些文獻也提出了不同的構件描述方法,如面向對象的OOCDL[5]、支持系統組裝的擴充CDL[6]以及基于XML的XCODE[7]、WACDL[8]等。
目前雖然已經存在多種構件描述方法,但由于不同的描述語言從不同的方面,運用不同的方法對構件進行描述,在一定程度上都具有其獨特性。但是,如果需要將這些描述方法描述的構件資源進行整合,則需要通過屬性轉換器轉換之后才能形成更大的構件資源庫,其代價是相當巨大的。本文通過對目前已經提出的構件描述方法中提及的構件屬性進行整理和分析,提出了一種新的五元組構件通用屬性的描述方法(component general attribute described method,CGADM),通過將通用屬性和特殊屬性分開描述的方法實現構件描述方法的通用性,并提出擴展機制實現構件新屬性的描述,以滿足構件描述信息不斷更新的要求,最后給出其實驗應用。
1 構件通用屬性描述方法
1.1 構件通用屬性描述方法的原則
構件通用屬性的描述方法是對構件通用本質特征及構件間一般關系的抽象描述,主要是為構件的不同生產者和使用者提供一個共同能接受的表達方式。為了達到這種交互,除了文獻[9]提出的構件描述方法的七個一般原則之外,該方法還具有以下三個原則:
a)通用性。對所有構件的一般通用屬性進行高度概括,盡量不涉及到特殊屬性,以增強該方法的通用性。
b)易維護性。在不破壞現有構件描述信息基礎的情況下,該方法中的刻面分類信息應易于維護,即可以容易、準確地更新刻面分類信息,以適應其不斷更新。
c)易擴展性。該方法應該既支持通用屬性的擴展,也支持特殊屬性擴展,構件生產者可以通過屬性擴展方式擴展構件的新屬性。
1.2 構件的通用屬性選取準則
在遵循上述基本原則的情況下,該方法還必須從用戶角度上去選取構件的通用屬性。參照文獻[11]提出的使用質量模型,針對構件的本質特點,增加了軟件構件的可理解性使用質量特性,其模型如圖1所示。
1.3 CGADM:構件通用屬性的描述方法
在刻面分類策略中,構件庫管理者通過將刻面與對應的術語相連接,可以在構件間建立復雜的聯系。與一般的層次分類策略相比,其具有以下優點:
a)刻面分類策略易于修改、富有彈性,因為對一個刻面的修改不會影響到其他刻面。
b)每個刻面對應一個結構化的術語空間,避免了一般的關鍵詞分類策略的雜亂無章,使得對關鍵詞的管理更為方便和有序。
c)構件庫中的每個構件都具有一組屬性,這些屬性有的是構件制作者或提供者提供的,有的是構件庫根據構件的使用情況加入的。
由于刻面分類策略的上述優點,在遵循上述構件描述的基本原則下,參考現有的構件描述刻面,參照RIG(Reuse Library Interoperability Group)[10]開發的UDM(uniform data method)、《軟件構件產品質量》標準[11]、軟件構件標準[12]提出的一些標準,再結合國內青鳥系統的構件刻面分類描述方法[13]與上海構件庫注冊信息的實際應用,提出一種能夠在較高層次上理解構件信息、能有效地支持構件檢索和構件庫管理的改進構件通用屬性的刻面描述方法。其刻面分類如圖2所示。
構件通用屬性的描述方法(component general attribute described method,CGADM)可以抽象地表示成一個五元組CGADM::={COI,CII,CSI,CFI,CAD}。
CGADM:構件描述信息的集合。
COI:構件本體信息(component ontology information)。
CII:構件接口信息(component interface information)。
CSI:構件安全信息(component security information)。
CFI:構件反饋信息(component feedback information)。
CAD:構件相關文檔(component associate document)。
定義1 構件本體信息是對構件靜態信息的概述,由構件名稱、構件作者、構件描述、構件版本、構件大小、構件發布日期、構件編寫語言、構件類型、構件來源、構件的預覽、操作環境、應用領域、構件入庫時間等組成。
COI::={C_Name,C_Author,C_Description,C_Version,C_Size,C_ReleasedDate,C_Language,C_Type,C_Source,C_ Preview,C_Environment,C_ Domain, C_StockingDate}
說明:構件本體信息主要是為了滿足使用質量模型中的可理解性要求。
定義2 構件類型是指構件開發層次的集合。
說明:構件類型可以分為需求分析構件、設計構件、代碼構件、測試構件等類型。
定義3 操作環境指構件運行時的環境配置,主要由硬件環境和軟件環境組成。
Operation_Setting::={Handware_Setting,Software_Setting}
定義4 構件接口信息指服務請求接口和服務提供接口。主要由接口名稱、接口函數、接口關系、訪問控制組成。
CII::={Interface_Name,Interface_Function,Interface_ Relationship, Access _Control}
說明:構件接口信息是為了滿足使用質量模型中的有效性和生產率要求。其中有效性體現在構件接口是構件與其他構件或外部環境交互的信息的主要渠道。生產率體現在清晰的構件接口能為構件組裝提供有力的支持,也是構件復用的一個關鍵因素。
定義5 接口函數是對構件接口的操作描述,主要由函數名、函數功能、輸入參數、輸出值組成。
Interface_Function::={Function_Name,Function_Action,Input_parameter,Output_ parameter}
定義6 構件安全信息是指構件采用的安全措施,主要由安全策略和安全等級組成。
CSI::={ Security_ Strategy,Security _ Rating}
說明:構件安全信息是為了滿足使用質量模型中的安全性要求,也是構件復用價值的一個重要指標。
定義7構件反饋信息是用戶對構件使用情況的反饋。主要由構件使用次數、異常反饋和滿意度組成。
CFI::={Use_Time,Exception_Feedback,Satisfactory }
說明:構件反饋信息是為了滿足使用質量模型中的滿意度和可信度要求,也是構件擴展與改進的重要指南。
定義8 構件相關文檔是指構件包含的文檔,主要由操作信息文檔、設計文檔、構件源碼文檔和其他文檔組成。
CAD::={Document_Operation,Document_Desgin,Document_Code,Document_Others}
說明:構件相關文檔是對使用質量模型中的可理解性的補充。
以上五個刻面彼此間相互隔離,未涉及到構件的特殊屬性,比較充分地概括了構件的靜態與動態信息,可以描述各個領域的構件,為構件庫的建立、查詢、維護、更新和擴展提供了堅實的基礎。
2 CGADM擴展機制
隨著構件技術的發展以及構件庫的擴充,CGADM將不能滿足新的構件屬性描述需求,主要表現在以下三個方面:
a)構件刻面分類信息需要擴充。不同的應用領域、不同的企業在使用CGADM對構件進行描述時,所需要的刻面分類模式會根據自己的需求有所不同,需要根據描述需求的不同定制新的刻面分類。
b)術語信息需要擴充。大量的構件管理經驗表明,不同構件所需的術語空間各不相同。由于構件庫中的構件具有多形態、多層次的特點,必須允許描述構件時能從大量的術語空間中選取,才能保證對庫中新增構件提供足夠的表達能力。因此,必要提供一種構件描述術語擴充機制,使其能夠靈活擴充術語空間。
c)刻面與術語信息需要調整。一方面隨著構件技術的發展和構件描述信息的更新,原有的刻面分類信息和術語空間可能不再合理,需作出調整;另一方面構件描述的刻面與術語空間擴展時由于對原有信息缺乏理解,新增的刻面分類信息或者術語信息與原有的信息可能具有相似的意義,或者因為其他原因而使新增的信息不合理。這兩種情況將對構件生產者描述構件信息時選取正確的刻面和術語帶來困惑。因此需要提供一種刻面分類信息與術語空間的調整方法,以修正不合理的刻面分類信息和術語空間。
為了解決上述問題,以CGADM為基礎,提出了一種構件描述擴充機制,主要包括以下四部分:
a)刻面擴充機制。分為新增與繼承兩種方式,每個構件的刻面描述信息都可以轉換為一個樹型結構。新增刻面時,管理者首先需定義新刻面的基本信息,其次定義刻面的名稱、術語。其擴展原則為必須包含至少一個刻面,且每個刻面的術語信息不能為空。
若采用繼承方式時,則繼承刻面必須與被繼承刻面擁有一樣的刻面與術語結構。例如CII描述時宜采用刻面分類方式為接口1,2,…,n。其中,接口1,2,…,n繼承CII刻面,則每個接口的刻面和術語與CII的刻面和術語結構相同。
b)術語空間擴充機制。通過定制類型為屬性—值對的方式,擴充到該術語對應的刻面下,但必須保證刻面與術語信息的樹型結構,同時將其添加到術語空間。
c)刻面術語管理機制。通過修改或者刪除來排除不合理的刻面分類信息或者術語信息。其遵循原則如下:
(a)修改某個術語,如果構件庫中的構件描述信息中包含該術語描述信息,必須修改其術語信息。
刻面以ID為惟一標志(如01代表構件本體信息),已存在的構件信息只是記錄該刻面的ID,所以修改刻面名稱并不影響已存在的記錄。
(b)刪除某個刻面時,其對應的子刻面以及術語都要刪除,如果某個構件已經存在該刻面與術語的描述信息,則必須將該刻面與術語的描述信息刪除。
d) 特殊屬性管理機制。構件生產者作為構件庫中的一個智能主體[14],可以在滿足構件庫管理者對刻面與術語數量、字符串長度、數據庫一致性等所作的一些硬性條件限制下,自由地管理(添加、刪除、修改)自定義的特殊屬性。
該機制將通用屬性管理機制和特殊屬性管理機制結合使用,使構件刻面分類信息和術語空間擴展更加靈活。
3 CGADM的實驗應用
下面以一構件庫管理系統為例說明怎樣使用CGADM有效地實現構件庫中構件描述管理。
3.1 系統簡介
構件庫管理系統采用本文提出的刻面描述方法CGADM。構件庫管理者對CGADM中提出的通用屬性進行管理。構件生產者可以引用這些通用屬性對構件進行約束性描述,再對構件的特殊屬性進行個性化描述。構件使用者可以對構件規范的通用屬性和個性化的特殊屬性進行一般查詢或者特殊查詢,從查詢結果中可以比較全面地了解構件信息。
3.2 系統設計
通過分析CGADM中提出的構件通用屬性的刻面分類,可以將其在構件庫中的存儲模式分為三種類型,即輸入型、自動記錄型和動態分析型。其中大部分術語信息屬于輸入型如構件名稱,通過構件生產者輸入,管理員審核后直接存在數據庫中。自動記錄型包括構件ID(系統分配的構件惟一標志)和構件入庫時間。動態分析型包括構件反饋信息刻面下的所有術語信息。例如滿意度可以通過用戶評分或者用戶投票結果產生。
通過3.1節的分析,將構件庫管理系統的角色分為構件庫管理員、構件生產者、構件使用者三種。用例圖如圖3所示。其中構件庫各個角色功能設計如下:
a)Manager(構件庫管理者)。管理構件的通用屬性,對特殊屬性作一些必要的硬性條件限制。
b)Producer(構件生產者)。注冊通用屬性信息和管理特殊屬性。
c)User(構件使用者)。查詢構件的通用屬性和特殊屬性信息。
3.3 CGADM的擴展實現
構件庫為用戶缺省提供了構件本體信息、構件接口信息、構件安全信息、構件反饋信息、構件相關文檔五項構件描述刻面信息。在現實應用中,如果某生產者還希望管理系統能夠描述其生產的一個計費構件的價格、試用期、使用權限等與生產者利益密切相關的信息,這就對CGADM提出了新的要求。
根據第2章提出的擴展機制,圖4給出了針對上述需求,對CGADM擴展后的示意圖。圖中虛線框表示刻面待定,需通過管理員添加該擴展屬性至某個刻面下,或者在滿足特殊屬性的限制之下構件生產者自行添加為特殊屬性。管理員在添加某個通用屬性刻面需經過與構件生產者、構件使用者進行交互和對歷史數據的分析,經過慎重的考慮,確定能成為構件通用屬性才予以添加。構件生產者也可以應用其他構件生產者優秀的特殊屬性分類模式為構件添加更多的分類信息。
3.4 CGADM的分析
雖然現在構件描述方法有很多,但由于其面向使用對象和應用領域的不同,可以很好地適應其特定的應用對象和應用領域,但不能達到通用的效果。CGADM的思想就是將通用屬性和特殊屬性分開管理,采用分而治之的模式。它具有如下特點:
a)易于被使用者理解和使用。不同性質構件面向不同的用戶群體,所以可理解性是構件描述方法的一個評價標準。CGADM可以適應不同的用戶群體。一般用戶只需通過通用屬性即可很好地理解和使用構件。特殊用戶可以訪問特殊屬性而獲得更多的構件信息。
b)支持不同構件生產者的個性化描述。構件生產者可以自主、靈活地管理屬于自己的特殊屬性描述,并對自己的構件進行個性化描述,使其發布的構件更受使用者的歡迎。
c)較好地支持構件的各種查詢方式并擴展了查詢范圍。該方法可以支持一般用戶的簡單查詢和特殊用戶的特殊屬性查詢。用戶在查詢時,可以以通用屬性的刻面作為查詢條件,也可以將特殊屬性的刻面作為查詢條件進行更深層次的查詢。在查詢特殊屬性時,用戶可以通過該生產者的特殊屬性的定義和其所有可見構件來學習該生產者生產的構件特性以及其生產經驗。企業在復用構件時,構件查詢的范圍可擴大到整個分布式構件庫。
d)易于實現構件庫的維護和管理。構件通用屬性和特殊屬性分開后,管理員只需維護構件的通用屬性,對特殊屬性只需作一些必要的限定即可。特殊屬性將由生產者自行維護和管理,從而在一定程度上減輕了管理員的工作。
4 結束語
CGADM通過對現存構件描述方法提出的刻面分類分析,得到一種比較完善、通用、高層次的構件通用屬性的描述方法。它的主要思想就是將構件的通用屬性和特殊屬性分開描述和管理,一方面能夠較好地提高構件描述的準確性和規范性,另一方面也可以滿足不同構件生產者對構件個性化的描述需求。該方法同智能主體和術語擴展的思想相結合,將能夠更好地優化和完善構件庫的構件分類和管理,同時也適用于分布式構件庫系統。
參考文獻:
[1]湯敏.基于構件通用屬性描述語言的構件注冊與檢索[D].武漢:武漢理工大學,2008:10-12.
[2]袁兆山,王淑紅.可復用構件表示模型研究[J]. 計算機應用,2001,21(1):1-3.
[3]WU Qiong, CHANG Ji-chun, MEI Hong, et al. JBCDL:an object-oriented component description language [C]//Proc of Technology of Object-Oriented Languages and Tools.1997:198-205.
[4]SIDNEY C B.Software reuse as ontology negotiation[C]//Proc of the 8th International Conference on Software Reuse.2004:242-253.
[5]馬亮,孫艷春,孫家. 一個可擴展的OO構件模型的設計[J].小型微型計算機系統,2001,22(10):1202-1205.
[6]鐘林輝,謝冰,邵維忠. 擴充CDL支持基于構件的系統組裝與演化[J]. 計算機研究與發展, 2002,39(10):1361-1365.
[7]TENG Qi-ming,CHEN Xiang-qun. XCODE:an extensible component description language for system software[J]. Acta Scicentiarum Naturalum Universitis Pekinesis,2004, 40 (3) :388-396.
[8]譚建,王平濤,許滿武. WACDL:基于XML的Web應用構件描述定義語言[J]. 計算機應用研究,2004,21(9):98-101.
[9]馬錕. 基于刻面分類模式的構件檢索技術研究[D]. 大連:大連海事大學,2008:18-19.
[10]Reuse Library Interoperability Group.RIG uniform data method for reuse libraries(UDM),RPS-0002[R].1994.
[11]李曉麗,劉超,金茂忠,等.《軟件構件產品質量》標準介紹[J]. 信息技術與標準化,2006(6):19-24.
[12]趙俊峰. 軟件構件標準概述[J]. 信息技術與標準化,2006(6):10-13.
[13]常繼傳,李克勤,郭立峰,等. 青鳥系統中可復用軟件構件的表示與檢索[J]. 電子學報,2000,28(8):20-23.
[14]薛云皎. 基于智能主體的分布式構件庫相關技術研究[D].上海:復旦大學,2006:16-25.