• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于語義和結(jié)構(gòu)的UML類圖的檢索

      2020-02-15 06:08:24袁中臣馬宗民
      關(guān)鍵詞:類圖子圖相似性

      袁中臣, 馬宗民

      (1. 東北大學(xué) 軟件學(xué)院, 遼寧 沈陽 110169; 2. 沈陽工業(yè)大學(xué) 化工過程自動化學(xué)院, 遼寧 遼陽 111003)

      隨著軟件復(fù)雜性的日益增強,對于軟件重用的需求在不斷增加.重用的內(nèi)容也不再僅限于代碼,而是涉及到軟件生命周期的各個階段[1].實際上,軟件開發(fā)過程中產(chǎn)生的任意產(chǎn)品都在重用范圍之內(nèi),這種重用被視為軟件工程師的知識和經(jīng)驗的重用.因為軟件設(shè)計對接下來的開發(fā)階段將產(chǎn)生重要的影響,所以軟件設(shè)計的重用受到了關(guān)注.作為建模工具,UML類圖被廣泛地應(yīng)用于設(shè)計階段,已成為軟件設(shè)計事實上的標(biāo)準(zhǔn)[2],所以UML類圖的重用成為研究熱點[3-4].

      隨著語義web的發(fā)展,大量的本體被開發(fā).本體是共享概念的明確而詳細的說明,概念通過特定的關(guān)系建立聯(lián)系[5].本體分為通用本體和領(lǐng)域本體.通用本體覆蓋了若干領(lǐng)域的概念知識,如WordNet;領(lǐng)域本體是由來自單個領(lǐng)域的概念構(gòu)成的,如基因組學(xué)領(lǐng)域的基因本體(gene ontology,GO)等.本體為概念之間的相似性度量提供了途徑.例如,在WordNet中提供了基于路徑和信息共享兩種方法來衡量概念之間的相似性[6].相似性度量被廣泛應(yīng)用于分類、聚類和檢索等.在軟件產(chǎn)品的重用過程中,檢索是核心工作,檢索是基于相似性.UML類圖所呈現(xiàn)的信息包含語義和結(jié)構(gòu),類、屬性和操作屬于語義范疇;UML類圖的結(jié)構(gòu)通過類之間的關(guān)系來表達,類之間的關(guān)系包含不同的類型(關(guān)聯(lián)、泛化、聚合、組合、依賴和實現(xiàn)).所以,UML類圖的相似性度量既包含語義相似性也包括結(jié)構(gòu)相似性.

      現(xiàn)有的基于重用的類圖檢索可以歸結(jié)為兩種策略.第一種是基于語義的匹配[7],類圖之間的相似性是通過語義相似性來衡量.其中,類圖的關(guān)系被定義為向量R=[端點類1,關(guān)系類型,端點類2],關(guān)系的相似性通過向量R的差異或距離來度量.第二種是基于模型查詢語言[8],解析類圖元素并基于模型查詢語言重寫類圖,并提出模式匹配方法.

      第一種策略僅僅考慮了語義,而沒有考慮結(jié)構(gòu).即使考慮了概念之間關(guān)系,本質(zhì)上也是語義匹配,在僅考慮類圖的結(jié)構(gòu)而不考慮語義的檢索要求時,這種策略不能很好地工作.實際上,結(jié)構(gòu)對于一個UML類圖是非常重要的.在使用UML模型化一個系統(tǒng)時,首要考慮的是系統(tǒng)的結(jié)構(gòu)而不是單個類.第二種策略雖然考慮了結(jié)構(gòu),但元素匹配是基于關(guān)鍵字而不是基于語義,沒有考慮檢索結(jié)果的非精確性.最后,兩種方法都沒有對檢索條件給出一種形式化的定義.實際上,檢索需求經(jīng)常是復(fù)雜的,通常不僅僅是一個簡單的類或類圖,這就需要一個檢索條件的明確表達.同時,每個檢索元素在檢索條件中的權(quán)重應(yīng)該被考慮,因為類圖中的不同元素在模型化一個系統(tǒng)時的重要程度不同.

      本文正是基于語義和結(jié)構(gòu)兩個方面實現(xiàn)對類圖的檢索,定義了語義相似性和結(jié)構(gòu)相似性度量方法.基于檢索流程,形式化地定義了檢索表達,并提出了檢索算法.實驗驗證了所提算法的有效性.

      1 UML類圖及其重用模型

      1.1 UML類圖

      UML類圖是由類和類之間的關(guān)系兩部分構(gòu)成.圖1是類圖的一個樣例,表示類“Professor”繼承類“Teacher”.

      一系列工具能被用來編輯UML類圖,如Rose和MyEclipse等.對象管理組織(object management group,OMG)為所有UML模型定義了文檔類型定義(document type definition,DTD) 標(biāo)準(zhǔn)[9],UML模型被描述為遵守DTD的基于XML元數(shù)據(jù)交換(XML-based metadata interchange,XMI)文檔.

      1.2 重用模型

      UML類圖的重用模型被描述為一個過程,如圖2所示.這一過程包含4個階段,分別是類圖的檢索、候選類圖返回、候選類圖調(diào)整并應(yīng)用到新項目和新類圖被抽取并加入到重用庫.在這幾個階段中,檢索是關(guān)鍵,決定著重用質(zhì)量和效率.重用庫存儲大量的可重用類圖,重用庫的有效管理和組織對于提高檢索效率也是非常重要的.重用庫中的類圖被分為“域”和“目錄”兩級,如圖3所示.

      2 相似性度量

      2.1 語義相似性

      現(xiàn)有的語義相似性能被歸結(jié)為同一類,就是基于本體來計算兩個概念的語義相似性.本文選擇被廣泛使用的基于本體路徑語義距離來計算UML類圖概念之間的語義相似性.在本文中,除了類,屬性和方法也被認為在語義范疇內(nèi),所以類圖之間的語義相似性為

      式中:cd1和cd2是兩個類圖;類Ci來自類圖cd1,Ai和Oi分別是類Ci的屬性集合和操作集合;同理,類Cj來自類圖cd2;Aj和Oj分別是類Cj的屬性集合和操作集合;Ci被匹配到Cj,Ai被匹配到Aj,Qi被匹配到Qj;SimC,SimA和SimO分別表示類相似性、屬性相似性和操作相似性.在計算屬性和操作相似性時,除了考慮概念語義還考慮到屬性的類型和操作的返回值類型.類圖之間的語義相似性實際上就是類圖概念元素之間的相似性.這里僅計算平均相似性,|cdi|表示類圖cdi中包含的類的數(shù)目;α,β和γ是權(quán)重因子,且α+β+γ=1.

      2.2 結(jié)構(gòu)相似性

      由于UML類圖的半形式化,圖和UML類圖兩種模型在結(jié)構(gòu)上的相似性(類對應(yīng)于頂點,關(guān)系對應(yīng)于邊),本文提出采用圖來表示UML類圖的結(jié)構(gòu),目的是進行結(jié)構(gòu)相似性度量.UML類圖中的類被轉(zhuǎn)換成圖的頂點,UML類圖中的關(guān)聯(lián)、泛化、聚合、組合、依賴和實現(xiàn)等關(guān)系被轉(zhuǎn)換成邊,并分別被標(biāo)記為e1,e2,e3,e4,e5和e6.這樣類圖之間的結(jié)構(gòu)相似性就被轉(zhuǎn)換成對應(yīng)的兩個圖的相似性.兩個圖之間的結(jié)構(gòu)相似性可以通過最大公共子圖(maximum common subgraph,MCS)度量[10].公式為

      其中:NMCS表示存在于MCS中的邊的數(shù)目;|gi|是表示圖gi中邊的數(shù)目.

      當(dāng)然,這里求解最大公共子圖是基于邊,而不是頂點,并且邊的匹配是基于上面所述的標(biāo)記.求解最大公共子圖的算法見算法1.

      算法1 搜索圖g1和g2之間的最大公共子圖

      輸入:圖g1和g2

      輸出:最大公共子圖(MCS)

      1.初始化狀態(tài)空間S=NULL;

      2.//在g1中與S相連的下一條邊ek

      while(nextEdge(g1,S,ek)) do

      3.begin

      4.//ek是否使得g1和g2的公共子圖尺寸增加

      if(IsFeasible(g1,g2,S,ek)) then

      5. begin //更新公共子圖

      6.S=S+ek;//更新狀態(tài)

      7. if(size(S)>z)then

      8.z=size(S); //更新尺寸

      9. end;

      10. else //退回S的上一個狀態(tài)

      11. backState(S);

      12.end;

      13.returnS;

      算法執(zhí)行了一個深度優(yōu)先搜索.S是一個狀態(tài)空間,用于存儲圖g1和g2之間的公共子圖.S的尺寸會隨著更多邊的加入而變大直至最后形成最大公共子圖.

      3 類圖檢索

      3.1 檢索流程

      UML類圖的檢索過程描述如圖4所示.用戶首先輸入檢索需求,用戶的輸入可以是單個類(屬性和操作),也可以是類圖結(jié)構(gòu).解析是從檢索要求獲取檢索元素,任何基于SAX(simple API for XML)的工具能被用來解析XMI文檔[11].檢索需求經(jīng)常是復(fù)雜的,包含著用戶的多種意愿,所以將檢索需求轉(zhuǎn)換成一個形式化表述,作為檢索算法的輸入.檢索算法是核心,這里提到的檢索應(yīng)該是非精確的,目的是發(fā)現(xiàn)最貼近檢索需求的候選類圖序列.

      3.2 檢索表達

      在輸入檢索需求時,經(jīng)常會有如下幾種情況:

      1) 希望幾個檢索元素在候選類圖中同時出現(xiàn).可以被表達為

      e1∧e2∧e3∧∧em.

      2) 希望在候選類圖中某些元素部分出現(xiàn)或者同時出現(xiàn).可以被表述為

      e1∨e2∨e3∨∨ep.

      3) 希望有些檢索元素在候選類圖中不要出現(xiàn).可以被表述為

      !(e1∨e2∨e3∨∨en) .

      所以,綜合上述幾種情況,檢索需求能被形式化地描述如下:

      UCD_QS=

      3.3 檢索算法

      一般情況下,在類圖的檢索中,候選類圖不一定完全滿足檢索需求.這里設(shè)定一個閾值σ,當(dāng)檢索元素被匹配到重用庫中的類圖所取得的相似性值大于σ時,重用庫中的類圖即被列為候選類圖.因為不同的元素(概念和結(jié)構(gòu))在模型化一個系統(tǒng)時具有不同的重要程度,所以不同的檢索元素在檢索條件中被分別賦予權(quán)重,W=[w1,w2,,wn].類圖的檢索算法被描述為算法2.

      算法 2 類圖的檢索算法

      輸入:檢索表達UCD_QS,W和重用庫L

      輸出:候選類圖序列

      1.//初始化目標(biāo)類圖所在域、目錄和候選類圖序列

      d=NULL;c=NULL;l={NULL};

      2.//獲取檢索元素

      classElements=getClass(UCD_QS); //概念元素

      noClassElements=getNoClass(UCD_QS);

      strucElements=getStructures(UCD_QS);//結(jié)構(gòu)元素

      noStrucElements=getNoStructures(UCD_QS);

      3.//賦予權(quán)重

      assignWeight(classElements, strucElements,W);

      4.//候選類圖所在的域

      if(classElements!=NULL) then

      5.for eachDiinLdo

      6.begin

      7.FCi=getFeatClass(Di); //獲取特征概念

      8.SimDi=SimCS(classElements,F(xiàn)Ci); //域相似性

      9.end;

      10.SimDx=max(SimD);

      11.d=Dx;

      12.//候選類圖所在的目錄

      if(strucElements!=NULL) then

      13.for eachCiinddo

      14.begin

      15.FSi=getFeatStrucs(Ci); //獲取特征結(jié)構(gòu)

      16.SimCi=SimSS(strucElements,F(xiàn)Si); //目錄相似性

      17.end;

      18.SimCy=max(SimC);

      19.c=Cy;

      20.//計算類圖相似性,并插入候選序列

      for each cdkincdo

      21.if(μ*SimCS(classElements, cdk)+(1-μ) *

      SimSS(strucElements, cdk)>σ) then

      22.insertCD(cdk,l);

      23.//刪除不期望包含元素的類圖

      for eacheifrom noClassElements and eachsifrom noStrucElements do

      24.for each cdqinldo

      25.if(eiorsi) in cdqthen

      26.deleteCD(cdq,l);

      27.returnl; //返回候選類圖序列

      在檢索算法中,基于定義的特征概念和特征結(jié)構(gòu),通過相似性計算分別決定候選類圖所在的域和目錄,這樣能過濾掉大量的類圖,大大提高檢索的效率.檢索元素被匹配到已經(jīng)確定目錄內(nèi)的每個目標(biāo)類圖并計算相似性,當(dāng)相似性的值高于指定閾值σ,目標(biāo)類圖被插入候選序列.最后,從候選序列中刪除不期望的元素所在類圖.μ為相似性權(quán)重,在應(yīng)用中可以根據(jù)檢索需求進行調(diào)整.

      4 實 驗

      使用Java語言實現(xiàn)了本文所提出的檢索算法,并且在PC機(Win 10, Intel Core i7, RAM 8GB)上執(zhí)行.實驗中使用的類圖來自3個領(lǐng)域,分別為教育、醫(yī)療和房地產(chǎn),每個類圖中類的數(shù)目在15~25之間.所有類圖均來自公司已經(jīng)開發(fā)的項目,每個領(lǐng)域的類圖、目錄、特征概念以及每個目錄包含的特征結(jié)構(gòu)數(shù)量如表1所示.

      表1 重用庫中UML類圖

      本文做三種檢索類型(概念、結(jié)構(gòu)和混合)操作,如表2所示.每種檢索類型操作基于不同領(lǐng)域元素被執(zhí)行3次,檢索條件的設(shè)定主要從檢索元素數(shù)量和分布考慮.

      表2 檢索條件設(shè)定

      注:括號中數(shù)字表示不允許出現(xiàn)在候選列表中的概念或結(jié)構(gòu)的數(shù)量.

      提出的檢索算法和其他方法(語義檢索[6]和模型語言檢索[8])進行比較,本文提出的檢索方法被稱為二級檢索,主要從檢索質(zhì)量和檢索效率兩個方面進行比較.參數(shù)設(shè)置α=0.5,β=0.25,γ=0.25,σ=0.5.在三種檢索方法中,相似性計算權(quán)重μ分別被設(shè)定為1.0,0和0.5.檢索元素權(quán)重設(shè)定為平均權(quán)重.

      衡量檢索質(zhì)量可以從查準(zhǔn)率P、查全率R和二者調(diào)和平均值F三個指標(biāo)來度量[12].這里設(shè)定A表示正確地出現(xiàn)在查詢結(jié)果中候選類圖的數(shù)量;B表示錯誤地出現(xiàn)在查詢結(jié)果中候選類圖的數(shù)量;C表示應(yīng)該出現(xiàn)但沒有出現(xiàn)在檢索結(jié)果中的類圖數(shù)量.P,R和F計算公式為

      平均查準(zhǔn)率P、查全率R和調(diào)和平均值F的對比分別如圖5,圖6和圖7所示.可以看出,三種檢索方法查準(zhǔn)率差別不大,如圖5所示.但查全率出現(xiàn)較大差別,特別是結(jié)構(gòu)和混合檢索,如圖6所示.綜合來看,對于概念檢索(Q1),三種檢索方法呈現(xiàn)的結(jié)果差別不大;而對于結(jié)構(gòu)檢索(Q2),本文提出算法和模型語言檢索得出的結(jié)果要明顯優(yōu)于語義檢索;對于混合檢索(Q3),本文提出的算法的檢索結(jié)果要優(yōu)于其他兩種方法,如圖7所示.原因是本文的檢索算法同時考慮了語義和結(jié)構(gòu),而其他兩種方法存在片面性.

      檢索效率是指執(zhí)行檢索的響應(yīng)時間.三種檢索方法分別在不同檢索類型數(shù)據(jù)上執(zhí)行檢索所需的響應(yīng)時間如圖8所示.

      可見,對于每種檢索類型,本文算法的檢索響應(yīng)時間要少于其他兩種方法.類圖檢索的響應(yīng)時間主要取決檢索元素和重用庫中目標(biāo)類圖匹配的次數(shù).本文提出的算法的匹配次數(shù)決定于重用庫中域的數(shù)、候選類圖所在域包含的結(jié)構(gòu)目錄數(shù)以及候選類圖所在結(jié)構(gòu)目錄包含的類圖數(shù),所以匹配次數(shù)要遠遠少于其他兩種方法.關(guān)于重用庫中類圖分類的這部分內(nèi)容將會在接下來的工作中討論.

      所以,無論從檢索質(zhì)量還是從檢索效率上,本文提出的算法都是可行的并且要優(yōu)于其他兩種方法.由于特征概念和特征結(jié)構(gòu)的引入,算法對數(shù)據(jù)量越大的存儲庫檢索表現(xiàn)越好.

      5 結(jié) 語

      本文基于軟件重用從語義和結(jié)構(gòu)兩個方面提出對UML類圖的檢索.通過本體和圖的引入,分別提出了類圖之間語義相似性和結(jié)構(gòu)相似性度量方法.基于檢索流程,提出了類圖的檢索算法.實驗結(jié)果表明,本文提出的算法在語義、結(jié)構(gòu)和混合三種檢索類型都獲得較好的檢索質(zhì)量,特別是對結(jié)構(gòu)和混合檢索,與其他檢索方法相比具有明顯的優(yōu)勢.同時,本文提出的算法的檢索效率也是可以接受的,并且優(yōu)于其他兩種方法.

      猜你喜歡
      類圖子圖相似性
      一類上三角算子矩陣的相似性與酉相似性
      淺析當(dāng)代中西方繪畫的相似性
      河北畫報(2020年8期)2020-10-27 02:54:20
      臨界完全圖Ramsey數(shù)
      基于頻繁子圖挖掘的數(shù)據(jù)服務(wù)Mashup推薦
      低滲透黏土中氯離子彌散作用離心模擬相似性
      UML類圖元模型基于描述邏輯的表示及驗證
      UML構(gòu)造型類圖到XMI的映射方法研究
      UML類圖的一種表示方法
      關(guān)于0類圖的一個注記
      不含2K1+K2和C4作為導(dǎo)出子圖的圖的色數(shù)
      饶平县| 乌恰县| 辉南县| 精河县| 余姚市| 积石山| 永仁县| 荥阳市| 怀来县| 赫章县| 青海省| 封丘县| 马鞍山市| 吉木乃县| 满洲里市| 绥棱县| 磐安县| 定日县| 阆中市| 黔西| 海盐县| 新野县| 衡南县| 英德市| 咸丰县| 汶上县| 南部县| 烟台市| 林甸县| 洛南县| 清徐县| 清原| 杭锦后旗| 呈贡县| 扶沟县| 龙游县| 云南省| 来凤县| 松阳县| 长阳| 汾阳市|