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

一種基于KAOS和XML的橫切關注點識別方法

2011-06-12 06:08:10涂成茂何成萬
武漢工程大學學報 2011年9期
關鍵詞:定義方法模型

涂成茂,何成萬

(武漢工程大學 計算機科學與工程學院,湖北 武漢 430074)

0 引 言

橫切關注點會造成交織和分散的問題,降低了軟件的可讀性、可維護性和可復用性.關注點分離作為軟件開發中重要準則之一,軟件系統一般由多個關注點組成,其中包括核心級關注點和系統級關注點.核心級關注點指與業務邏輯相關的主過程,系統級關注點是指業務邏輯之外的過程,如日志,安全,性能等.而某些系統級關注點會表現出橫切行為,即一些核心級關注點需要使用若干個系統級關注點提供的服務,同時某些系統級關注點也影響多個核心級關注點的狀態[1].具有橫切行為的關注點稱為橫切關注點,橫切關注點有兩個重要特點:

(1)交織(Tangling):橫切關注點參與某關注點的實現

(2)分散(Scattering):橫切關注點分散在多個關注點之中

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

本文提出一種基于KAOS(knowledge acquisition in automated specification)和XML(extensible markup language)的橫切關注點識別方法.首先利用KAOS中的目標模型(Goal Model)在不同層次上對待開發系統進行需求建模.高層次上將待開發系統分解為各個子系統,以保證對橫切關注點進行系統的識別;低層次上將高層次目標精細化,然后將需求模型存儲于XML文件,最后利用XQuery實現的橫切關注點識別算法完成對橫切關注點的識別.

1 橫切關注點的識別方法及應用

橫切關注點的識別分3步:建立目標模型、存儲目標模型、橫切關注點識別.本文將以某酒店管理系統中住宿管理子系統[5]來詳細描述橫切關注點的識別過程.該子管理系統的需求如下所述:

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

(2)顧客請求入住酒店:顧客在請求入住時,檢查顧客是否有預定房間,若有則消除預定記錄;若沒有則檢查是否有空房間,若有則為顧客分配房間,接受顧客入住請求并為顧客創建賬單,否則拒絕顧客入住請求.

(3)顧客請求離開酒店:顧客在請求離開前,首先檢查顧客是否有入住記錄和未付費的賬單,若有則計算賬單、為顧客結賬、消除入住記錄,同時接受顧客離開請求.

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

1.1 建立需求目標模型

根據待開發系統的需求描述運用KAOS建立目標模型(Goal Model).

目標是KAOS中的重要概念,KAOS是需求工程中建立需求模型的方法學[6].在KAOS建立的層次化目標模型中,除了最頂層的戰略目標外每個層次中的目標都能被上層目標證明其存在的合理性,也就是為什么該目標存在于模型中;同時除最底層的葉子目標外每個層次中的目標都能被一組子目標精細化,也就是應該怎樣實現此目標.通過將待開發系統的戰略目標精細化為各層次子目標,當子目標精細化到其責任能夠被分配到主體(Agent)時,就得到了目標模型,此時最底層的葉子目標也稱為不可精細化的子目標.

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

圖1 酒店管理系統的目標模型

1.2 存儲目標模型

在此步中需將目標模型映射至XML文件中.XML是一種元標記語言,是一套可以自定義特定領域語義標記的規范,這些標記將文檔分成許多部件并對這些部件加以標識,利用XML可以方便描述對象及其關系[7].

首先將Goal Model層次結構映射至XML模式文件中,然后根據XML模式文件將Goal Model模型完整映射至XML文件中.在將Goal Model層次結構映射至XML模式文件時,須依據關注點流、關注點、元關注點的語義創建XML元標記,其中包括標記名稱和類型,其映射關系如表1所示,根據表中的自定義元標記而生成的HotelManager.xml文件如圖2所示,其中存儲了酒店管理系統需求模型.

1.3 橫切關注點識別

在此步中,將依據橫切關注點的定義給出橫切關注點識別算法.

1.3.1 橫切關注點定義 依據目標模型中各層次目標語義,現給出關注點及橫切關注點等概念定義:

(1)關注點:目標模型中任一層次中一個特定的目標.

(2)元關注點:目標模型中自上而下精細化過程中不可精細化的子目標.

(3)關注點流:目標模型中某目標被精細化后的子目標集合,規定元關注點的關注點流為其自身.

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

(5)關注點擴散度:關注點在目標模型中出現的次數.

表1 目標模型與XML元標記映射關系

1.3.2 橫切關注點識別算法 根據橫切關注點定義,則顯然有如下結論:關注點是橫切關注點與關注點的擴散度至少大于1互為充要條件,推導如下:

(1)充要性:若關注點Concern為橫切關注點,則根據橫切關注點定義,C1必然出現于至少2個關注點的關注點流中,由此可以推出C1的關注點擴散度必然大于1.

(2)必要性:若關注點Concern的擴散度至少大于1,則根據擴散度的定義,該關注點必然出現于至少2個不同的關注點流aConcernFlow與bConcernFlow中,令與aConcernFlow與bConcernFlow相對應的關注點分別為aConcern和bConcern,因此aConcern與bConcern的關注點流交集中至少包含Concern,因此Concern為橫切關注點.

根據以上結論,有如下橫切關注點識別算法:

(1)取3個目標集合C1,C2,C3并置為空,C3用于置入橫切關注點;

(2)將需求模型中的目標逐一劃入集合C1;同時將其逐一劃入集合C2,但對于重復元素只放入一次;

(3)計算C2中各個元素的擴散度.遍歷C2集合中的元素,并計算該元素在C1集合中出現的次數;

(4)將擴散度大于1的目標劃入橫切關注點集合C3;

算法所識別的橫切關注點存在于C3中.

圖2 XML中的目標模型

1.4 方法應用及比較

此節給出算法實現、案例應用以表明方法的可行性和穩定性.

1.4.1 算法實現 運用1.3節中算法思想并基于XQuery的算法實現如圖3所示,其中行5定義了元關注點層次上去除重復元素后的關注點集合C2,行7統計了C2中各元素在文檔中出現的次數,行8設定了選入C3集合的條件,行10至行13定義了C3集合中的元素及其擴散度.

圖3 基于XQuery算法實現

1.4.2 方法可行性實驗 此小節將識別算法運用于酒店管理系統中表明方法的可行性.圖4顯示了在對住宿管理子系統運用算法后元關注點(MetaConcern)層次的橫切關注點識別結果.

圖4 元關注點層次橫切關注點

由圖4可以看出,住宿管理子系統中有檢查剩余房間和保存日志2個橫切關注點,它們的擴散度分別為2和3,與各個橫切關注點相關聯的連接點如表2所示.其中保存日志是典型的系統級橫切關注點,而檢查剩余房間作為核心級關注點,但它降低了預定房間與入住登記兩關注點的內聚度,因此是橫切關注點.為了與圖4進行比較,圖5顯示了系統中的其它關注點及其擴散度.

表2 橫切關注點的連接點

圖5 其它關注點及其擴散度

1.4.3 方法穩定性實驗 通過實驗表明在系統需求發生變更后方法所具有的穩定性.

在酒店管理系統中增加如下需求:系統中任何操作之前需要做權限檢查.本文方法對此需求變更所做的處理:首先在需求模型中變更對應的需求,然后重新映射于XML文件中,算法實現不需要做任何的變更.其處理結果如圖6所示.

圖6 需求變更后的橫切關注點

1.4.4 方法比較 此小節通過與國外的研究方法的比較進一步表明本文方法的優越性.

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

2 結 語

以上敘述的需求階段橫切關注點識別方法,首先利用Goal Model對系統進行建模,然后結合橫切關注點及擴散度的定義給出了橫切關注點識別算法.

盡管實驗結果顯示此方法能識別橫切關注點,但卻不能識別橫切關注點的類型,即不能確定橫切關注點是屬于before型,還是after型,甚至around型,導致此方法不能對需求階段橫切關注點的封裝提供支持,因此未來仍需對本文方法進行更多的研究.

參考文獻:

[1] 徐寶文,周超洪,周天琳,等.面向方面的程序設計:概念、實現與未來[J].計算機與數字工程,2005,33(8):1-10.

[2] 何成萬, 李健,焦素廷. 基于MVC 模式的科研成果管理系統開發[J].武漢工程大學學報,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,February 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] 何成萬,焦素廷,李健.支持協同工作的加解密系統設計與實現[J].武漢工程大學學報,2009,31(3):74-75.

猜你喜歡
定義方法模型
一半模型
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
可能是方法不對
3D打印中的模型分割與打包
用對方法才能瘦
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
捕魚
修辭學的重大定義
當代修辭學(2014年3期)2014-01-21 02:30:44
主站蜘蛛池模板: 亚洲第一色网站| 国产麻豆aⅴ精品无码| 国产精品第一区在线观看| 好吊日免费视频| 欧美一级一级做性视频| 国产 日韩 欧美 第二页| 欧美成人综合在线| 久久人午夜亚洲精品无码区| 成人精品区| 中文字幕 日韩 欧美| 国产自在线播放| 色综合a怡红院怡红院首页| 无码国产偷倩在线播放老年人| 日本尹人综合香蕉在线观看| 91小视频在线播放| 依依成人精品无v国产| 亚洲色图欧美在线| 国产无码性爱一区二区三区| 色婷婷天天综合在线| 免费一级大毛片a一观看不卡| 六月婷婷精品视频在线观看| www亚洲天堂| 五月激情婷婷综合| 成人免费视频一区二区三区| 呦视频在线一区二区三区| 欧美曰批视频免费播放免费| 四虎成人在线视频| 一本久道热中字伊人| 日韩欧美91| 91在线视频福利| 91口爆吞精国产对白第三集| 国产区福利小视频在线观看尤物| 色婷婷久久| 爱做久久久久久| 久久免费视频6| 69av免费视频| 国产成+人+综合+亚洲欧美| 老色鬼久久亚洲AV综合| 精品剧情v国产在线观看| AV不卡无码免费一区二区三区| 人妻21p大胆| 久久成人免费| 999国产精品| 九色免费视频| 丰满的熟女一区二区三区l| 免费人成在线观看视频色| 久久精品人人做人人综合试看| 谁有在线观看日韩亚洲最新视频 | 日韩 欧美 小说 综合网 另类| 久久久久免费精品国产| 国产亚洲欧美日韩在线观看一区二区| 色综合五月婷婷| 日韩黄色大片免费看| 亚洲精品福利网站| 97超碰精品成人国产| 亚洲色无码专线精品观看| 亚洲男人在线天堂| 国产综合欧美| 午夜小视频在线| 欧美日韩中文国产va另类| 试看120秒男女啪啪免费| 3D动漫精品啪啪一区二区下载| 欧美性精品不卡在线观看| 一区二区三区在线不卡免费| 亚洲人成色在线观看| 日韩经典精品无码一区二区| 国产又粗又爽视频| 乱人伦视频中文字幕在线| 在线中文字幕网| 亚洲无码不卡网| 精品夜恋影院亚洲欧洲| 激情综合网激情综合| 国产精品综合色区在线观看| 全裸无码专区| 欧美成人一级| 久久久久无码精品| 农村乱人伦一区二区| 亚洲水蜜桃久久综合网站| 无码不卡的中文字幕视频| 国产成人av大片在线播放| 亚洲bt欧美bt精品| 性色生活片在线观看|