999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

設(shè)計(jì)模式識(shí)別的特征信息分類研究

2022-07-12 14:03:26肖卓宇徐運(yùn)標(biāo)王林春
關(guān)鍵詞:模式識(shí)別特征設(shè)計(jì)

肖卓宇 何 锫 徐運(yùn)標(biāo) 陳 果 郭 杰 王林春

1(湖南工業(yè)職業(yè)技術(shù)學(xué)院信息工程學(xué)院 湖南 長(zhǎng)沙 410208) 2(廣州大學(xué)計(jì)算機(jī)科學(xué)與教育軟件學(xué)院 廣東 廣州 510006)

0 引 言

設(shè)計(jì)模式是一種可復(fù)用的設(shè)計(jì)經(jīng)驗(yàn)總結(jié),在軟件生命周期的設(shè)計(jì)階段擔(dān)任重要角色[1],有助于提升面向?qū)ο蟮能浖_發(fā)質(zhì)量[2-3]。設(shè)計(jì)模式識(shí)別有助于程序的理解,并為軟件系統(tǒng)重構(gòu)[4]與維護(hù)[5]降低成本,減少研發(fā)時(shí)間[6-7]。由此可見,設(shè)計(jì)模式識(shí)別對(duì)遺產(chǎn)系統(tǒng)重構(gòu)有著積極的意義[8-9]。Zhu等[10]基于符號(hào)邏輯,通過謂詞表示設(shè)計(jì)模式,為自動(dòng)識(shí)別設(shè)計(jì)模式提供了理論基礎(chǔ)。Zanoni等[11]提出將設(shè)計(jì)模式特征以向量的形式進(jìn)行表示,進(jìn)而通過機(jī)器學(xué)習(xí)的形式識(shí)別設(shè)計(jì)模式。Chihada等[12]通過學(xué)習(xí)問題映射設(shè)計(jì)模式檢測(cè),提出了46種特征指標(biāo)。Fontana等[13-14]提出基于EDP等微結(jié)構(gòu)表示設(shè)計(jì)模式參與者特征,并進(jìn)而實(shí)現(xiàn)設(shè)計(jì)模式識(shí)別。肖卓宇等在之前工作關(guān)注了設(shè)計(jì)模式變體識(shí)[15-16]、設(shè)計(jì)模式參與者角色間的附加關(guān)系[17]、設(shè)計(jì)模式實(shí)例共享問題[18]。文獻(xiàn)[19]與文獻(xiàn)[20]以圖論為基礎(chǔ),通過子圖同構(gòu),以相似積分來檢測(cè)設(shè)計(jì)模式。

綜上所述,現(xiàn)有設(shè)計(jì)模式識(shí)別相關(guān)工作存在如下主要問題:

(1) 對(duì)設(shè)計(jì)模式特征表示不夠完善;

(2) 較少對(duì)設(shè)計(jì)模式按結(jié)構(gòu)型、行為型、創(chuàng)建型進(jìn)行特征分類研究;

(3) 僅針對(duì)Jhotdraw 7、Junit 3.7、Quickuml 2001等基準(zhǔn)系統(tǒng)進(jìn)行了設(shè)計(jì)模式識(shí)別,而較少針對(duì)已上線真實(shí)系統(tǒng)的識(shí)別研究。

為此,本文針對(duì)設(shè)計(jì)模式識(shí)別精確性不夠理想的問題,以Erich Gamma提出的設(shè)計(jì)模式分類為原則,基于本文先前工作[21],提出一種基于特征分類表示的設(shè)計(jì)模式識(shí)別方法,分類歸納了設(shè)計(jì)模式的特征信息,并以Adapter模式、Command模式、Factory Method模式為例,通過4個(gè)經(jīng)典測(cè)試案例進(jìn)行設(shè)計(jì)模式識(shí)別實(shí)驗(yàn)。

本研究主要貢獻(xiàn)如下:

(1) 提出依據(jù)Erich Gamma設(shè)計(jì)模式分類對(duì)設(shè)計(jì)模式特征信息進(jìn)行表示;

(2) 進(jìn)行了深入的設(shè)計(jì)模式識(shí)別結(jié)果研究,發(fā)現(xiàn)了影響識(shí)別結(jié)果精確率的重要原因變體、附加關(guān)系,設(shè)計(jì)模式共享,為后續(xù)優(yōu)化工作奠定了基礎(chǔ);

(3) 提出了基于特征表示的設(shè)計(jì)模式識(shí)別方法。

1 設(shè)計(jì)模式實(shí)例分類研究

先前工作[21]對(duì)設(shè)計(jì)模式進(jìn)行了識(shí)別,并基于設(shè)計(jì)模式識(shí)別工具EA[22],歸納了47條特征信息,見表1。本文工作將基于該條特征信息按照結(jié)構(gòu)型、行為型與創(chuàng)建型3類進(jìn)行設(shè)計(jì)模式分類特征表示,并分別以結(jié)構(gòu)型設(shè)計(jì)模式對(duì)象Adapter、行為型設(shè)計(jì)模式Command、創(chuàng)建型設(shè)計(jì)模式Factory Method為例進(jìn)行具體描述。

1.1 結(jié)構(gòu)型設(shè)計(jì)模式—對(duì)象Adapter設(shè)計(jì)模式

圖1描述了對(duì)象Adapter設(shè)計(jì)模式,包括Target、Adapter、Adaptee三個(gè)主要參與者及其之間存在的關(guān)系。具體特征表示見表2。表2中01行表示圖1對(duì)象Adapte設(shè)計(jì)模式中存在Target、Adapter、Adaptee三個(gè)主要參與者,其中Adapter、Adaptee為類,而Target為接口;02行表示Adapter與Target間存在泛化關(guān)系;03行表示Adapter與Adaptee間存在關(guān)聯(lián)關(guān)系;04行表示Adapter類的request方法與Adaptee類的Specific request方法間存在代理關(guān)系;05行表示Adaptee類存在一個(gè)SpecificRequest方法,且SpecificRequest是一個(gè)具體的方法;06行表示Adapter類的request方法與Adaptee類的Specificrequest方法不存在共同接口;07表示Client不能對(duì)Adaptee類進(jìn)行直接訪問;08行表示Adapte類與Adaptee類間不能存在繼承關(guān)系;09行表示Adapte類與Target類間不能存在繼承關(guān)系。

圖1 對(duì)象Adapter設(shè)計(jì)模式

1.2 行為型設(shè)計(jì)模式—Command設(shè)計(jì)模式

圖2描述了Command設(shè)計(jì)模式,包括Invoker、Command、ConcreteCommand、Receive四個(gè)主要參與者及其之間存在的關(guān)系。具體特征表示見表3。表3中01行表示圖2 Command設(shè)計(jì)模式中存在Invoker、Command、ConcreteCommand、Receiver四個(gè)主要參與者;02行表示Invoker與Command間存在關(guān)聯(lián)關(guān)系;03行表示ConcreteCommand與Command間存在繼承關(guān)系;04行表示Command類與ConcreteCommand類有共同方法Execute;05行表示ConcreteCommand類與Receiver類間存在關(guān)聯(lián)關(guān)系;06行表示ConcreteCommand類的Execute方法與Receiver類的Action方法不存在代理關(guān)系;07表示Client類可以對(duì)Receiver類進(jìn)行直接訪問。

圖2 Command設(shè)計(jì)模式

表3 對(duì)象Command模式特征表示

1.3 創(chuàng)建型設(shè)計(jì)模式—Factory Method設(shè)計(jì)模式

圖3描述了Factory Method設(shè)計(jì)模式,包括Creator、ConcreteCreator、Product、ConcretProduct四個(gè)主要參與者及其之間存在的關(guān)系。具體特征表示見表4。表4中01行表示圖3Factory Method設(shè)計(jì)模式中存在Creator、ConcreteCreator、Product、ConcretProduct四個(gè)主要參與者;02行表示ConcreteCreator類與Creator類間存在泛化關(guān)系;03行表示存在FactoryMethod類,且Factory不是抽象類;04行表示Creator類與ConcreteCreator類有共同方法FactoryMethod;05行表示Factory Method有一個(gè)ConcreteProduct返回類型;06行表示Factory Method方法存在一個(gè)返回值ConcreteProduct;07表示Factory Method類與ConcreteProduct類存在依賴;08表示Concrete Product類與Product類存在繼承關(guān)系;09行表示Product與ConcreteProduct不能通過FactoryMethod方法形成繼承關(guān)系。

圖3 Factory Method設(shè)計(jì)模式

表4 Factory Method模式特征表示

續(xù)表4

2 設(shè)計(jì)模式分類識(shí)別步驟

設(shè)計(jì)模式識(shí)別的框架見圖4,主要分為5個(gè)步驟:

圖4 設(shè)計(jì)模式識(shí)別流程

步驟1用本文先前工作[21]對(duì)源碼進(jìn)行抽取;

步驟2將抽取源碼結(jié)果進(jìn)行特征表示;

步驟3通過EA[22]工具進(jìn)行設(shè)計(jì)模式識(shí)別;

步驟4將設(shè)計(jì)模式進(jìn)行定義及特征表示;

步驟5將設(shè)計(jì)模式識(shí)別結(jié)果與P-Mart案例庫(kù)[23]進(jìn)行匹配。

3 實(shí)驗(yàn)設(shè)計(jì)與分析

實(shí)驗(yàn)采用先前已實(shí)現(xiàn)的四個(gè)MIS系統(tǒng)進(jìn)行測(cè)試,其具體指標(biāo)見表5。其中,KLOC表示程序代碼行數(shù),每個(gè)測(cè)試系統(tǒng)中的Adapter模式、Command模式、Factory Method模式基準(zhǔn)已通過人工的形式增加了標(biāo)簽。如測(cè)試系統(tǒng)A中的代碼數(shù)量KLOC為87.73千行,類的數(shù)目為167,其中有Adapter模式5個(gè)、Command模式2個(gè)、Factory Method模式1個(gè)。

表5 測(cè)試系統(tǒng)指標(biāo)基準(zhǔn)

續(xù)表5

Erich Gmma[24]將GOF設(shè)計(jì)模式分為結(jié)構(gòu)型、行為型、創(chuàng)建型3個(gè)大類,共計(jì)23種設(shè)計(jì)模式。作者在先前工作中對(duì)設(shè)計(jì)模式進(jìn)行了初步的識(shí)別,但是缺乏對(duì)三類設(shè)計(jì)模式進(jìn)行具體的分類歸納與表示[21]。為此,本實(shí)驗(yàn)以先前工作為基礎(chǔ)展開,并獲取了表6所示的結(jié)果。

表6 設(shè)計(jì)模式識(shí)別精確率

由表6可見,在測(cè)試系統(tǒng)A中對(duì)于Adapter模式、Command模式識(shí)別效果較好,識(shí)別精確率為100%,而對(duì)Factory Method模式識(shí)別精確率為0%。在測(cè)試系統(tǒng)B中對(duì)于Adapter模式、Command模式識(shí)別效果較好,分別為100%與66.7%,而對(duì)于Factory Method模式識(shí)別精確率為50%。在測(cè)試系統(tǒng)C中也對(duì)于Adapter模式、Command模式識(shí)別效果較好,分別為91.7%與83.3%,而對(duì)于Factory Method模式識(shí)別精確率為50%。在測(cè)試系統(tǒng)D中對(duì)于Adapter模式、Command模式識(shí)別效果較好,分別為95.5%與77.8%,而對(duì)于Factory Method模式識(shí)別精確率為71.4%。

探究其原因歸納為如下幾點(diǎn):

(1) 創(chuàng)建型設(shè)計(jì)模式識(shí)別難度高于行為型設(shè)計(jì)模式,而行為型設(shè)計(jì)模式難于結(jié)構(gòu)型設(shè)計(jì)模式。由表7可知,Adapter模式識(shí)別的平均精確率最高,為96.8%;Command模式識(shí)別的平均精確率次之為81.95%;而Factory Method模式的平均精確率僅為42.85%。究其原因,Adapter模式屬于結(jié)構(gòu)型設(shè)計(jì)模式,Command模式屬于行為型模式,F(xiàn)actory Method模式屬于創(chuàng)建型模式。結(jié)構(gòu)性模式?jīng)]有涉及到動(dòng)態(tài)的時(shí)序機(jī)制,故識(shí)別難度較低,識(shí)別效果較好;行為型模式要涉及動(dòng)態(tài)時(shí)序機(jī)制,故識(shí)別難度要高于結(jié)構(gòu)型模式,故識(shí)別效果居中;而Factory Method模式屬于創(chuàng)建型設(shè)計(jì)模式,除開動(dòng)態(tài)時(shí)序機(jī)制,還需要考慮代理機(jī)制等居多問題,故識(shí)別難度最大,平均識(shí)別精確率最低。

表7 三個(gè)測(cè)試系統(tǒng)平均精確率

(2) 設(shè)計(jì)模式變體易導(dǎo)致識(shí)別結(jié)果不精確。對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行深入分析之后發(fā)現(xiàn),測(cè)試系統(tǒng)中一個(gè)標(biāo)準(zhǔn)設(shè)計(jì)模式存在多個(gè)版本的問題,即設(shè)計(jì)模式變體[15-16]。設(shè)計(jì)模式變體能夠降低研發(fā)成本,縮短研發(fā)時(shí)間,故目前研發(fā)人員通常會(huì)在不改變?cè)O(shè)計(jì)意圖的前提下用設(shè)計(jì)模式變體進(jìn)行程序設(shè)計(jì),而目前設(shè)計(jì)模式識(shí)別方法或工具對(duì)變體的識(shí)別效果考慮不夠深入,這可視為設(shè)計(jì)模式識(shí)別的重要挑戰(zhàn)。

(3) 設(shè)計(jì)模式參與角色間的附加關(guān)系干擾了識(shí)別結(jié)果。同樣,設(shè)計(jì)模式變體是在不改變?cè)O(shè)計(jì)意圖的前提下對(duì)標(biāo)準(zhǔn)設(shè)計(jì)模式進(jìn)行了演化,但這種演化可能導(dǎo)致嚴(yán)重的后果。通過實(shí)驗(yàn)研究,發(fā)現(xiàn)一些設(shè)計(jì)模式變體通過增加參與者角色間多余的關(guān)系會(huì)改變?cè)O(shè)計(jì)意圖,即附加關(guān)系[17],從而導(dǎo)致實(shí)現(xiàn)程序與目標(biāo)需求的差異,這部分改變了設(shè)計(jì)意圖的變體難以識(shí)別。

(4) 設(shè)計(jì)模式實(shí)例共享問題。通過研究設(shè)計(jì)模式識(shí)別結(jié)果,發(fā)現(xiàn)存在部分設(shè)計(jì)模式參與者角色同時(shí)承擔(dān)兩個(gè)或多個(gè)設(shè)計(jì)模式的參與者問題,而這類問題易導(dǎo)致只能隨機(jī)識(shí)別一個(gè)先檢測(cè)到參與者角色的設(shè)計(jì)模式,而與其承擔(dān)角色相關(guān)的其余設(shè)計(jì)模式卻難以識(shí)別成功。

本文先前工作[2,3,15-18]通過Jhotdraw 7、Junit 3.7、Quickuml 2001等基準(zhǔn)系統(tǒng)進(jìn)行了設(shè)計(jì)模式識(shí)別,部分效果要優(yōu)于本文工作。分析其原因發(fā)現(xiàn):

(1) 設(shè)計(jì)模式識(shí)別在訓(xùn)練階段效果較好,而在驗(yàn)證階段略不足,說明存在過擬合問題。識(shí)別效果在遷移、普適性等方面需要進(jìn)一步加強(qiáng)。

(2) 數(shù)據(jù)集不夠大,尤其在測(cè)試系統(tǒng)A中Factory Method設(shè)計(jì)模式基準(zhǔn)數(shù)量為1,由于識(shí)別未成功,導(dǎo)致對(duì)于Factory Method設(shè)計(jì)模式識(shí)別精確率為0%,以至于表6的4個(gè)測(cè)試系統(tǒng)中的Factory Method模式平均識(shí)別精確率僅為42.85%。為此,還需要通過更多的設(shè)計(jì)模式實(shí)例或系統(tǒng)進(jìn)行大規(guī)模的驗(yàn)證。

(3) 通過研究發(fā)現(xiàn),大部分測(cè)試系統(tǒng)中創(chuàng)建型設(shè)計(jì)模式在軟件設(shè)計(jì)中使用頻率少于行為型設(shè)計(jì)模式,而行為型設(shè)計(jì)模式在軟件設(shè)計(jì)中使用頻率少于結(jié)構(gòu)型設(shè)計(jì)模式。

4 結(jié) 語

依據(jù)Erich Gamma[24]提出的設(shè)計(jì)模式分類標(biāo)準(zhǔn),對(duì)結(jié)構(gòu)型、行為型及創(chuàng)建型設(shè)計(jì)模式進(jìn)行了深入研究,歸納了設(shè)計(jì)模式的特征信息表示,以Adapter模式、Command模式、Factory Method模式為例,通過本文先前工作[21]對(duì)4個(gè)經(jīng)典測(cè)試系統(tǒng)進(jìn)行了設(shè)計(jì)模式識(shí)別實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明對(duì)結(jié)構(gòu)型Adapter模式與行為型Command模式取得了較好的識(shí)別效果。未來工作將致力于創(chuàng)建型設(shè)計(jì)模式的識(shí)別,以及對(duì)設(shè)計(jì)模式變體、設(shè)計(jì)模式附加關(guān)系、設(shè)計(jì)模式共享等領(lǐng)域前沿問題的追蹤。

猜你喜歡
模式識(shí)別特征設(shè)計(jì)
如何表達(dá)“特征”
不忠誠(chéng)的四個(gè)特征
瞞天過海——仿生設(shè)計(jì)萌到家
抓住特征巧觀察
設(shè)計(jì)秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設(shè)計(jì)叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
淺談模式識(shí)別在圖像識(shí)別中的應(yīng)用
第四屆亞洲模式識(shí)別會(huì)議
第3屆亞洲模式識(shí)別會(huì)議
線性代數(shù)的應(yīng)用特征
河南科技(2014年23期)2014-02-27 14:19:15
主站蜘蛛池模板: 99国产精品免费观看视频| 午夜日韩久久影院| 尤物亚洲最大AV无码网站| 亚洲毛片一级带毛片基地 | 99re免费视频| 久久无码高潮喷水| 欧美黑人欧美精品刺激| 成人毛片免费观看| 伊人久久大香线蕉成人综合网| 波多野结衣第一页| 一级毛片免费观看不卡视频| 91久久夜色精品国产网站| 国产精品污污在线观看网站| 亚洲AV色香蕉一区二区| 日本伊人色综合网| 国产精品露脸视频| 成人一区专区在线观看| 日本91视频| 久久精品66| 亚洲大尺码专区影院| 欧美亚洲国产精品久久蜜芽| 99在线视频免费观看| 久久永久免费人妻精品| 老司机精品一区在线视频| 国产爽爽视频| 99r在线精品视频在线播放| 99激情网| 婷婷伊人久久| 久久人体视频| 欧美性精品| 国产一区亚洲一区| 精品无码专区亚洲| 中文字幕色站| 久久久四虎成人永久免费网站| 热久久这里是精品6免费观看| 国产在线观看精品| 国产成年女人特黄特色大片免费| 亚洲一级色| 在线毛片免费| 国产麻豆91网在线看| 国产一级毛片网站| 最新国产高清在线| 国产精品美乳| 国产精品妖精视频| 成人在线天堂| 亚洲视频一区在线| 中文字幕一区二区人妻电影| 国产成人亚洲日韩欧美电影| 亚洲成人福利网站| 日韩欧美91| 四虎国产永久在线观看| 国产成人亚洲欧美激情| 99国产精品国产| 狠狠色综合久久狠狠色综合| 国产精品主播| 日韩人妻少妇一区二区| 狠狠v日韩v欧美v| 亚洲精品无码av中文字幕| 亚洲美女视频一区| 国产亚洲精品精品精品| 亚洲综合极品香蕉久久网| 亚洲无码日韩一区| 国产区人妖精品人妖精品视频| 天天综合网在线| 久久99国产精品成人欧美| 久一在线视频| 久久综合婷婷| 亚洲床戏一区| 国产成人免费手机在线观看视频| 亚洲人精品亚洲人成在线| 91视频99| 五月婷婷激情四射| 国产成人无码Av在线播放无广告| 精品一区二区三区四区五区| 大陆国产精品视频| 欧美天堂久久| 国产成人综合亚洲网址| 日本www在线视频| 日日碰狠狠添天天爽| 久久婷婷人人澡人人爱91| 亚洲激情99| 91最新精品视频发布页|