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

一種基于KAOS和XML的橫切關(guān)注點(diǎn)識(shí)別方法

2011-06-12 06:08:10涂成茂何成萬(wàn)
關(guān)鍵詞:定義方法模型

涂成茂,何成萬(wàn)

(武漢工程大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,湖北 武漢 430074)

0 引 言

橫切關(guān)注點(diǎn)會(huì)造成交織和分散的問(wèn)題,降低了軟件的可讀性、可維護(hù)性和可復(fù)用性.關(guān)注點(diǎn)分離作為軟件開(kāi)發(fā)中重要準(zhǔn)則之一,軟件系統(tǒng)一般由多個(gè)關(guān)注點(diǎn)組成,其中包括核心級(jí)關(guān)注點(diǎn)和系統(tǒng)級(jí)關(guān)注點(diǎn).核心級(jí)關(guān)注點(diǎn)指與業(yè)務(wù)邏輯相關(guān)的主過(guò)程,系統(tǒng)級(jí)關(guān)注點(diǎn)是指業(yè)務(wù)邏輯之外的過(guò)程,如日志,安全,性能等.而某些系統(tǒng)級(jí)關(guān)注點(diǎn)會(huì)表現(xiàn)出橫切行為,即一些核心級(jí)關(guān)注點(diǎn)需要使用若干個(gè)系統(tǒng)級(jí)關(guān)注點(diǎn)提供的服務(wù),同時(shí)某些系統(tǒng)級(jí)關(guān)注點(diǎn)也影響多個(gè)核心級(jí)關(guān)注點(diǎn)的狀態(tài)[1].具有橫切行為的關(guān)注點(diǎn)稱(chēng)為橫切關(guān)注點(diǎn),橫切關(guān)注點(diǎn)有兩個(gè)重要特點(diǎn):

(1)交織(Tangling):橫切關(guān)注點(diǎn)參與某關(guān)注點(diǎn)的實(shí)現(xiàn)

(2)分散(Scattering):橫切關(guān)注點(diǎn)分散在多個(gè)關(guān)注點(diǎn)之中

橫切關(guān)注點(diǎn)妨礙了計(jì)算機(jī)軟件設(shè)計(jì)中的低耦合[2],面向方面需求工程(Aspect Oriented Requirement Engineering,AORE)[3]的主要目標(biāo)是需求階段橫切關(guān)注點(diǎn)的分離.在目前AORE提出的各種方法中,有的只能識(shí)別非功能性需求而具有局限性[4],基于Petri網(wǎng)的方法尚不能表明運(yùn)用于大中型系統(tǒng)中[5].

本文提出一種基于KAOS(knowledge acquisition in automated specification)和XML(extensible markup language)的橫切關(guān)注點(diǎn)識(shí)別方法.首先利用KAOS中的目標(biāo)模型(Goal Model)在不同層次上對(duì)待開(kāi)發(fā)系統(tǒng)進(jìn)行需求建模.高層次上將待開(kāi)發(fā)系統(tǒng)分解為各個(gè)子系統(tǒng),以保證對(duì)橫切關(guān)注點(diǎn)進(jìn)行系統(tǒng)的識(shí)別;低層次上將高層次目標(biāo)精細(xì)化,然后將需求模型存儲(chǔ)于XML文件,最后利用XQuery實(shí)現(xiàn)的橫切關(guān)注點(diǎn)識(shí)別算法完成對(duì)橫切關(guān)注點(diǎn)的識(shí)別.

1 橫切關(guān)注點(diǎn)的識(shí)別方法及應(yīng)用

橫切關(guān)注點(diǎn)的識(shí)別分3步:建立目標(biāo)模型、存儲(chǔ)目標(biāo)模型、橫切關(guān)注點(diǎn)識(shí)別.本文將以某酒店管理系統(tǒng)中住宿管理子系統(tǒng)[5]來(lái)詳細(xì)描述橫切關(guān)注點(diǎn)的識(shí)別過(guò)程.該子管理系統(tǒng)的需求如下所述:

(1)顧客請(qǐng)求預(yù)定房間:在接受預(yù)定前,首先檢查是否有空的房間,若有空房間則分配房間并創(chuàng)建預(yù)定記錄,接受顧客預(yù)定請(qǐng)求,否則拒絕顧客請(qǐng)求.

(2)顧客請(qǐng)求入住酒店:顧客在請(qǐng)求入住時(shí),檢查顧客是否有預(yù)定房間,若有則消除預(yù)定記錄;若沒(méi)有則檢查是否有空房間,若有則為顧客分配房間,接受顧客入住請(qǐng)求并為顧客創(chuàng)建賬單,否則拒絕顧客入住請(qǐng)求.

(3)顧客請(qǐng)求離開(kāi)酒店:顧客在請(qǐng)求離開(kāi)前,首先檢查顧客是否有入住記錄和未付費(fèi)的賬單,若有則計(jì)算賬單、為顧客結(jié)賬、消除入住記錄,同時(shí)接受顧客離開(kāi)請(qǐng)求.

(4)系統(tǒng)需提供日志功能:系統(tǒng)中任何操作需要被記錄并保存.

1.1 建立需求目標(biāo)模型

根據(jù)待開(kāi)發(fā)系統(tǒng)的需求描述運(yùn)用KAOS建立目標(biāo)模型(Goal Model).

目標(biāo)是KAOS中的重要概念,KAOS是需求工程中建立需求模型的方法學(xué)[6].在KAOS建立的層次化目標(biāo)模型中,除了最頂層的戰(zhàn)略目標(biāo)外每個(gè)層次中的目標(biāo)都能被上層目標(biāo)證明其存在的合理性,也就是為什么該目標(biāo)存在于模型中;同時(shí)除最底層的葉子目標(biāo)外每個(gè)層次中的目標(biāo)都能被一組子目標(biāo)精細(xì)化,也就是應(yīng)該怎樣實(shí)現(xiàn)此目標(biāo).通過(guò)將待開(kāi)發(fā)系統(tǒng)的戰(zhàn)略目標(biāo)精細(xì)化為各層次子目標(biāo),當(dāng)子目標(biāo)精細(xì)化到其責(zé)任能夠被分配到主體(Agent)時(shí),就得到了目標(biāo)模型,此時(shí)最底層的葉子目標(biāo)也稱(chēng)為不可精細(xì)化的子目標(biāo).

根據(jù)住宿管理子系統(tǒng)需求描述而建立的基于KAOS的目標(biāo)模型(Goal Model)如圖1所示.

圖1 酒店管理系統(tǒng)的目標(biāo)模型

1.2 存儲(chǔ)目標(biāo)模型

在此步中需將目標(biāo)模型映射至XML文件中.XML是一種元標(biāo)記語(yǔ)言,是一套可以自定義特定領(lǐng)域語(yǔ)義標(biāo)記的規(guī)范,這些標(biāo)記將文檔分成許多部件并對(duì)這些部件加以標(biāo)識(shí),利用XML可以方便描述對(duì)象及其關(guān)系[7].

首先將Goal Model層次結(jié)構(gòu)映射至XML模式文件中,然后根據(jù)XML模式文件將Goal Model模型完整映射至XML文件中.在將Goal Model層次結(jié)構(gòu)映射至XML模式文件時(shí),須依據(jù)關(guān)注點(diǎn)流、關(guān)注點(diǎn)、元關(guān)注點(diǎn)的語(yǔ)義創(chuàng)建XML元標(biāo)記,其中包括標(biāo)記名稱(chēng)和類(lèi)型,其映射關(guān)系如表1所示,根據(jù)表中的自定義元標(biāo)記而生成的HotelManager.xml文件如圖2所示,其中存儲(chǔ)了酒店管理系統(tǒng)需求模型.

1.3 橫切關(guān)注點(diǎn)識(shí)別

在此步中,將依據(jù)橫切關(guān)注點(diǎn)的定義給出橫切關(guān)注點(diǎn)識(shí)別算法.

1.3.1 橫切關(guān)注點(diǎn)定義 依據(jù)目標(biāo)模型中各層次目標(biāo)語(yǔ)義,現(xiàn)給出關(guān)注點(diǎn)及橫切關(guān)注點(diǎn)等概念定義:

(1)關(guān)注點(diǎn):目標(biāo)模型中任一層次中一個(gè)特定的目標(biāo).

(2)元關(guān)注點(diǎn):目標(biāo)模型中自上而下精細(xì)化過(guò)程中不可精細(xì)化的子目標(biāo).

(3)關(guān)注點(diǎn)流:目標(biāo)模型中某目標(biāo)被精細(xì)化后的子目標(biāo)集合,規(guī)定元關(guān)注點(diǎn)的關(guān)注點(diǎn)流為其自身.

(4)橫切關(guān)注點(diǎn):在目標(biāo)模型同層次中,任意兩兩關(guān)注點(diǎn)的關(guān)注點(diǎn)流交集中的子目標(biāo).

(5)關(guān)注點(diǎn)擴(kuò)散度:關(guān)注點(diǎn)在目標(biāo)模型中出現(xiàn)的次數(shù).

表1 目標(biāo)模型與XML元標(biāo)記映射關(guān)系

1.3.2 橫切關(guān)注點(diǎn)識(shí)別算法 根據(jù)橫切關(guān)注點(diǎn)定義,則顯然有如下結(jié)論:關(guān)注點(diǎn)是橫切關(guān)注點(diǎn)與關(guān)注點(diǎn)的擴(kuò)散度至少大于1互為充要條件,推導(dǎo)如下:

(1)充要性:若關(guān)注點(diǎn)Concern為橫切關(guān)注點(diǎn),則根據(jù)橫切關(guān)注點(diǎn)定義,C1必然出現(xiàn)于至少2個(gè)關(guān)注點(diǎn)的關(guān)注點(diǎn)流中,由此可以推出C1的關(guān)注點(diǎn)擴(kuò)散度必然大于1.

(2)必要性:若關(guān)注點(diǎn)Concern的擴(kuò)散度至少大于1,則根據(jù)擴(kuò)散度的定義,該關(guān)注點(diǎn)必然出現(xiàn)于至少2個(gè)不同的關(guān)注點(diǎn)流aConcernFlow與bConcernFlow中,令與aConcernFlow與bConcernFlow相對(duì)應(yīng)的關(guān)注點(diǎn)分別為aConcern和bConcern,因此aConcern與bConcern的關(guān)注點(diǎn)流交集中至少包含Concern,因此Concern為橫切關(guān)注點(diǎn).

根據(jù)以上結(jié)論,有如下橫切關(guān)注點(diǎn)識(shí)別算法:

(1)取3個(gè)目標(biāo)集合C1,C2,C3并置為空,C3用于置入橫切關(guān)注點(diǎn);

(2)將需求模型中的目標(biāo)逐一劃入集合C1;同時(shí)將其逐一劃入集合C2,但對(duì)于重復(fù)元素只放入一次;

(3)計(jì)算C2中各個(gè)元素的擴(kuò)散度.遍歷C2集合中的元素,并計(jì)算該元素在C1集合中出現(xiàn)的次數(shù);

(4)將擴(kuò)散度大于1的目標(biāo)劃入橫切關(guān)注點(diǎn)集合C3;

算法所識(shí)別的橫切關(guān)注點(diǎn)存在于C3中.

圖2 XML中的目標(biāo)模型

1.4 方法應(yīng)用及比較

此節(jié)給出算法實(shí)現(xiàn)、案例應(yīng)用以表明方法的可行性和穩(wěn)定性.

1.4.1 算法實(shí)現(xiàn) 運(yùn)用1.3節(jié)中算法思想并基于XQuery的算法實(shí)現(xiàn)如圖3所示,其中行5定義了元關(guān)注點(diǎn)層次上去除重復(fù)元素后的關(guān)注點(diǎn)集合C2,行7統(tǒng)計(jì)了C2中各元素在文檔中出現(xiàn)的次數(shù),行8設(shè)定了選入C3集合的條件,行10至行13定義了C3集合中的元素及其擴(kuò)散度.

圖3 基于XQuery算法實(shí)現(xiàn)

1.4.2 方法可行性實(shí)驗(yàn) 此小節(jié)將識(shí)別算法運(yùn)用于酒店管理系統(tǒng)中表明方法的可行性.圖4顯示了在對(duì)住宿管理子系統(tǒng)運(yùn)用算法后元關(guān)注點(diǎn)(MetaConcern)層次的橫切關(guān)注點(diǎn)識(shí)別結(jié)果.

圖4 元關(guān)注點(diǎn)層次橫切關(guān)注點(diǎn)

由圖4可以看出,住宿管理子系統(tǒng)中有檢查剩余房間和保存日志2個(gè)橫切關(guān)注點(diǎn),它們的擴(kuò)散度分別為2和3,與各個(gè)橫切關(guān)注點(diǎn)相關(guān)聯(lián)的連接點(diǎn)如表2所示.其中保存日志是典型的系統(tǒng)級(jí)橫切關(guān)注點(diǎn),而檢查剩余房間作為核心級(jí)關(guān)注點(diǎn),但它降低了預(yù)定房間與入住登記兩關(guān)注點(diǎn)的內(nèi)聚度,因此是橫切關(guān)注點(diǎn).為了與圖4進(jìn)行比較,圖5顯示了系統(tǒng)中的其它關(guān)注點(diǎn)及其擴(kuò)散度.

表2 橫切關(guān)注點(diǎn)的連接點(diǎn)

圖5 其它關(guān)注點(diǎn)及其擴(kuò)散度

1.4.3 方法穩(wěn)定性實(shí)驗(yàn) 通過(guò)實(shí)驗(yàn)表明在系統(tǒng)需求發(fā)生變更后方法所具有的穩(wěn)定性.

在酒店管理系統(tǒng)中增加如下需求:系統(tǒng)中任何操作之前需要做權(quán)限檢查.本文方法對(duì)此需求變更所做的處理:首先在需求模型中變更對(duì)應(yīng)的需求,然后重新映射于XML文件中,算法實(shí)現(xiàn)不需要做任何的變更.其處理結(jié)果如圖6所示.

圖6 需求變更后的橫切關(guān)注點(diǎn)

1.4.4 方法比較 此小節(jié)通過(guò)與國(guó)外的研究方法的比較進(jìn)一步表明本文方法的優(yōu)越性.

A.Sampaio等人的研究方法[4]只能識(shí)別保存日志橫切關(guān)注點(diǎn),其局限性是顯而易見(jiàn)的;而基于Petri網(wǎng)的方法[5]識(shí)別出的橫切關(guān)注點(diǎn)包括了需求模型中所有的關(guān)注點(diǎn),因此該方法因識(shí)別結(jié)果過(guò)于寬泛而缺乏實(shí)際意義.

2 結(jié) 語(yǔ)

以上敘述的需求階段橫切關(guān)注點(diǎn)識(shí)別方法,首先利用Goal Model對(duì)系統(tǒng)進(jìn)行建模,然后結(jié)合橫切關(guān)注點(diǎn)及擴(kuò)散度的定義給出了橫切關(guān)注點(diǎn)識(shí)別算法.

盡管實(shí)驗(yàn)結(jié)果顯示此方法能識(shí)別橫切關(guān)注點(diǎn),但卻不能識(shí)別橫切關(guān)注點(diǎn)的類(lèi)型,即不能確定橫切關(guān)注點(diǎn)是屬于before型,還是after型,甚至around型,導(dǎo)致此方法不能對(duì)需求階段橫切關(guān)注點(diǎn)的封裝提供支持,因此未來(lái)仍需對(duì)本文方法進(jìn)行更多的研究.

參考文獻(xiàn):

[1] 徐寶文,周超洪,周天琳,等.面向方面的程序設(shè)計(jì):概念、實(shí)現(xiàn)與未來(lái)[J].計(jì)算機(jī)與數(shù)字工程,2005,33(8):1-10.

[2] 何成萬(wàn), 李健,焦素廷. 基于MVC 模式的科研成果管理系統(tǒng)開(kāi)發(fā)[J].武漢工程大學(xué)學(xué)報(bào),2009,31(1):79-82.

[3] He Chengwan,Tu Chengmao.GPRN:A Hierarchical Framework for Aspect-oriented Requirement Modeling[J]. presented in International Journal of Digital Content Technology and its Applications,F(xiàn)ebruary 2011,5(2):165-172.

[4] Sampaio A,Anais Rashid.Mining Early Aspects from Requirements with EA-Miner [C].lCSE’ 08,2008:911-912.

[5] Vahdat Abdelzad,Fereidoon Shams Aliee. A method based on Petri Nets for identification of aspects[J].presented in information science and technologies Bulletin of the ACM Slovakia,2010,2(1):43-49.

[6] KAOS [EB/OL].http://www.objectiver.com/fileadmin/download/documents/KaosTutorial.pdf,2011-4-10.

[7] 何成萬(wàn),焦素廷,李健.支持協(xié)同工作的加解密系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].武漢工程大學(xué)學(xué)報(bào),2009,31(3):74-75.

猜你喜歡
定義方法模型
一半模型
重要模型『一線(xiàn)三等角』
重尾非線(xiàn)性自回歸模型自加權(quán)M-估計(jì)的漸近分布
可能是方法不對(duì)
3D打印中的模型分割與打包
用對(duì)方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
成功的定義
山東青年(2016年1期)2016-02-28 14:25:25
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚(yú)
修辭學(xué)的重大定義
主站蜘蛛池模板: 91在线无码精品秘九色APP| 精品一區二區久久久久久久網站| 亚洲动漫h| 在线精品亚洲国产| 亚洲人成在线精品| 五月天综合网亚洲综合天堂网| 免费又爽又刺激高潮网址| 99视频免费观看| 国产综合另类小说色区色噜噜| 青青草国产在线视频| 一级一毛片a级毛片| 亚洲综合狠狠| 在线免费a视频| 国产在线一区视频| 国产成人综合欧美精品久久| 日本亚洲国产一区二区三区| 亚洲欧美另类中文字幕| 国产大全韩国亚洲一区二区三区| 国产在线观看精品| 2021精品国产自在现线看| 国产91无码福利在线| 人妻熟妇日韩AV在线播放| 女人18毛片水真多国产| 欧美在线一二区| 看你懂的巨臀中文字幕一区二区 | 成人午夜视频免费看欧美| 亚洲国产高清精品线久久| 99久久精品久久久久久婷婷| 91久久夜色精品国产网站| 在线观看国产精美视频| 99视频在线免费观看| 欧美国产精品不卡在线观看 | 91亚洲精品国产自在现线| 久久这里只有精品免费| 美女毛片在线| 久久人妻系列无码一区| 蜜桃视频一区二区| 亚洲91精品视频| 中文无码精品A∨在线观看不卡 | 女人天堂av免费| 久久永久视频| 在线播放91| 久久a毛片| 欧美yw精品日本国产精品| 色噜噜综合网| 国产成人综合亚洲欧美在| 人妻丰满熟妇αv无码| 国产高清免费午夜在线视频| 四虎亚洲国产成人久久精品| 亚洲三级a| 亚洲天堂成人| 国产麻豆精品在线观看| hezyo加勒比一区二区三区| аv天堂最新中文在线| 欧美亚洲综合免费精品高清在线观看 | 国产亚洲欧美日本一二三本道| 亚欧成人无码AV在线播放| 免费看av在线网站网址| 亚洲日韩在线满18点击进入| 五月天福利视频| 精品無碼一區在線觀看 | 99精品伊人久久久大香线蕉| 国产视频资源在线观看| 久久无码av三级| 国产高颜值露脸在线观看| 日韩不卡高清视频| 日本www色视频| 亚洲成AV人手机在线观看网站| 久久国产乱子伦视频无卡顿| 欧美三级日韩三级| 精品国产自在在线在线观看| 伊伊人成亚洲综合人网7777| 国产h视频在线观看视频| 一级成人a做片免费| 国产99在线| 国产免费精彩视频| 日韩精品成人网页视频在线| 国产99免费视频| 亚洲va在线观看| 亚洲无码在线午夜电影| 午夜精品久久久久久久无码软件| 最近最新中文字幕免费的一页|