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

面向方面的UML建模方法及應用

2010-09-11 09:54:28
紅河學院學報 2010年4期
關鍵詞:系統

余 強

(安徽水利水電職業技術學院,安徽合肥231603)

面向方面的UML建模方法及應用

余 強

(安徽水利水電職業技術學院,安徽合肥231603)

面向方面編程(Aspect-Oriented Programming,AOP)提供了一種描述和實現橫切關注點的機制。分析面向方面軟件設計原則與方法步驟后,利用統一建模語言(UML)對系統建模橫切的關注點實現了分離和織入。最后通過一個實例來驗證了這種方法能增強軟件的模塊性與重用性。

面向方面編程;面向方面建模;UML;網上書店

面向方面編程(AOP)[1]是1997年由施樂公司帕洛阿爾托研究中心開發的一種新的編程范型,它提供了一種明確捕獲和模塊化橫切關注點的機制,有效解決了由于橫切屬性引起的代碼分散和代碼混亂等問題。AOP大都用在程序級和執行級實現橫切關注點的模塊化,AOP技術提供了一種在編程階段實現關注點分離的有效有段。

AOP是一種新的編程范型,尚未提供正式的建模技術和建模工具,研究人員僅僅在建模語言、建模工具、建模方法以及建模思想等方面對其進行了研究。而統一建模語言(UML)可以描述軟件開發中從需求分析直到實現和測試的全過程。AOP思想引入到軟件開發的需求分析階段實現模塊化橫切關注點的分離,并用UML的實現面向方面的系統類圖和狀態圖,并對方面進行織入,完成系統建模的整個過程。

1 面向方面編程技術

1.1 面向方面編程的定義

面向方面編程(AOP),是一種基于關注分離的新技術,是建立在已有的如面向對象編程(OOP)和面向過程的程序設計方法之上的,AOP是對OOP的繼承和發展,AOP增加了一些概念和結構用來模塊化橫切關注點,并能夠自動將橫切關注點植入到面向對象的軟件系統中[2]。

在AOP中增加方面(Aspect)來封裝橫切關注點,目的就是清晰地分離關注點,解決代碼混亂和分散的問題。面向方面的軟件開發采用先進的技術來分離關注點,并強調分離和組合關注點。其目標是通過使系統的功能需求、非功能需求、平臺特性等諸多不同的關注點相互獨立,實現更好的模塊化,構建易于理解、易于擴展、高復用性、高質量的軟件系統。

1.2 面向方面編程中核心概念

面向方面編程的核心概念有:

1.方面(Aspect):所謂的Aspect,從抽象意義上講,是對系統組件的性能和語法產生一定的影響的一些屬性[3];從設計上講,是橫切系統的一些軟件系統關注點;從實現上講,Aspect是一種程序結構單元,它支持將橫切系統的關注點封裝到單獨的模塊單位中[4],典型的Aspect應用情況如系統異常和出錯處理、同步和并發控制、內存訪問模式以及特定于應用的程序關注點等。

2.連接點(joinpoint):是代碼中激活advice被執行的觸發點,是在程序執行過程中明確定義的某個執行點,在這些點中執行Aspect的代碼。

3.切點(pointcut):是捕捉連接點的結構,用來指明所需連接的程序結構,是advice的激發條件,同時還為連接點上執行的通知提供上下文環境。

4.通知(advice):定義了方面的實現,比如日志寫入的實際代碼,或者是安全檢查的實際代碼。也就是說,通知是指在定義好的切入點處,所要執行的程序代碼。通知包含自身的一組規則,這組規則規定了何時調用通知,這是與被觸發的連接點相關的。通知分為“before”、“after”等[5]。

5.織入(wave):以自動化的方式把方面代碼組織到業務核心代碼的相關類中,形成最后完整的程序的過程稱為織入。

2 面向方面軟件設計

2.1 面向方面軟件設計原則

面向方面軟件設計遵循的原則有:

1.方面(Aspect)描述模塊應具有通用性;

2.方面(Aspect)描述模塊應與現行程序模塊具有兼容性;

3.方面(Aspect)描述模塊應具有可擴展性。

2.2 面向方面編程開發步驟

AOP采用一種松散耦合的方式來實現獨立的關注點,然后再組合這些實現,建立最終的系統。采用AOP所建立的系統是由松散耦合的、模塊化實現的橫切關注點來搭建的,基于AOP的軟件開發方式包括3個清晰的步驟[6],如圖1所示:

圖1 面向方面開發步驟

1.Aspect分解:分解需求提取出一般關注點和橫切關注點,即將一個系統的核心模塊關注點和橫切關注點分離開來。

2.關注點實現:對于核心關注點,采用面向對象技術來實現;而對于橫切關注點,將采用AOP技術。

3.Aspect重新組合:Aspect織入器通過創建的Aspect來指定重組的規則,該規則規定了實現的Aspect如何與OOP實現基礎。

2.3 面向方面的UML建模方法

面向方面建模的目的是用圖形方式顯示出包括方面的整體結構,并且具有詳細的語義定義說明。面向方面建模方法分兩個階段完成,首先需將方面抽取出來進行單獨的分析與設計,然后按照織入規則將方面織入到原型中并與其它模塊組件緊密結合[7]。

對于關注點的分離,在UML中,可將方面定義為一個方面類,用{Aspect}表示。{Aspect}中由方面名與操作組成,其中操作必須包含切入操作:{pointcut} pointcut(),{advice}advice(),也可包含其他功能操作,如讀、寫等。方面類是擴充的方面UML中的類,是UML的事物構造模塊中結構事物的一個基本元素,建模時方面類的使用方法與基本類相似。

織入階段的主要任務是分析關注點與方面的特性,識別出合適的切入點,然后在根據織入規則通知機制將方面切入到原模型中。在用例圖中,方面可以作為用例圖中的一個擴展用例加入織入其中,擴展點不是被真正插入到基礎用例的事件流中,而是被添加到事件流頂部的外罩。擴展的方面用例也可以有前置條件和后置條件。必須滿足前置條件,否則不執行橫切操作,后置條件在方面執行后約束系統的狀態。切入點相當于方面中的聯結點。

方面的織入是UML的事物構造中行為構造的一個基本元素,表示在特定上下文中方面類與基本類或方面類之間,為達到某一目的而進行的一系列消息交換而組成的動作。這些動作是動態進行的,表示模型隨時間環境等條件的改變不斷變化,從而實現了動態建模,提高了系統在設計階段的仿真能力并為軟件實現階段提供了可靠的支撐依據。

3 面向方面的UML建模實例分析

該實例是一個網上書店系統,利用UML進行建模。由于書店店主要了解本書店書籍的銷售情況以及退書原因,以便書店主對銷售書籍品種的及時改進和調整。

網上書店系統中涉及有客戶類、訂單類、書店類、書籍類、倉庫類等。客戶要了解訂單狀態,從而了解購買活動所處的狀態;書商根據客戶訂單情況,進行訂單的確認,然后根據用戶付款信息通知倉庫備貨送貨;倉庫根據訂單執行狀態,決定是送貨還是積極備貨。在訂單查詢系統中,客戶類、訂單類、書店類、書籍類、倉庫類中都包含跟蹤trace()操作,追蹤訂單的運行狀態。

圖2 網上書店面向對象的類圖

面向對象的類圖2中,在客戶類、訂單類、書店類和倉庫類中均要進行描述,出現大量的重復代碼,效率下降,影響程序的效率。如果要對trace()進行修改,工作量也是極大的。在這種情況下必須利用AOP技術中的方面構建來描述,對橫切關注點進行分離,經分離后的跟蹤放到trace()操作中,并單獨寫為如下代碼形式:Public aspect trace{

……

before():execution(**.*(..))

{Trace.write();}

after():execution(**.*(..))}

Trace.free();

……

} 然后在訂單適當的時候切入到系統中,這樣可以大大減少修改的工作量、另外也減少了代碼重復行、達到高復用的代碼,也便于對代碼運行效率的提高。

圖3 網上書店面向方面的類圖

面向方面編程中不但要把方面從系統中分離出來,另外也必須使用新的方法將方面重新織入系統。圖3網上書店面向方面的類圖中,將追蹤分離出來構造了一個追蹤方面,建立了一比較完整的追蹤模型來建模系統中的追蹤事件,從而提高了改事件的可重用性。

圖4 面向方面的系統活動圖

接下來是如何是將方面織入系統中,實現完整性,在如圖4面向方面的系統活動圖中,按照aspect (trace)描述的機制,在創建訂單將訂單Aspect(trace)方面織入系統中。當系統創建訂單時,追蹤使用寫操作記錄下訂單的一些必要信息,系統進行訂單核對和商品檢查后,回復客戶(接受訂單或拒絕訂單),此時追蹤也必須記錄此信息,當回復完成后,追蹤執行free()操作。

4 結論

本文介紹了面向方面編程的原理、方法和步驟的基礎上,利用UML技術實現方面建模。結合網上書店訂單查詢系統實例,在面向對象的類圖基礎上,引入方面trace,構建了面向方面的網上書店類圖,并用系統活動圖反映出方面的織入機制。AOP中增加方面(Aspect)來封裝橫切關注點,達到清晰地分離關注點,解決了代碼混亂和分散的問題,實現更好的模塊化,構建易于理解、易于擴展、高復用性、高質量的軟件系統。

參考文獻:

[1]Kiczales G,Lamping J,Mendhekar A Macda G,Lapes B, Longtier J M,Ir min J.Aspect-oriented romramming,Proceeding of ECOOP’97(springer verlag,1997).

[2]周屹,郁哲.一種基于AOP和UML的用例擴展關系建模方法[J].黑龍江工程學院學報,2009,23(1):51.

[3]The Aspect J team.Aspect-Oriented Programming with AspectJ.Available at:http://aspect.org.

[4]Joseph D.Gradecki,NicholasLesiecki.面向方面的Java編程指南[M].北京:清華大學出版社,2005.

[5]黃興華,胡飛.AOP技術在面向用戶的軟件組件測試中的應用[J].計算機應用與軟件,2009,26(8):126.

[6]馬欣,楊連賀.面向方面編程技術的研究[J].儀器儀表用戶,2009,16(2):72-73.

[7]李婷,劉建勛,尹雁青.面向方面建模方法的研究及其應用[J].計算機技術與發展,2009,19(1):113-115.

[責任編輯 姜仁達]

Face aspect UML modelling method and application

YU Q iang
(Anhui Technical College ofWater ResourcesAnd Hydroelecric Power,Hefei 231603,China)

AbstractAspect-oriented programming(AOP)Provides a description and i mplementation mechanis ms for crosscutting concerns.Analysis of aspect-oriented software design principles and methods of procedure,the use ofUnifiedModelingLanguage(UML)on modeling crosscutting concerns to achieve a separation and weaving.,Finally,an example to validate thismethod enhances software modularity and reuse.

aspect-oriented programming;aspect-oriented modeling;UML;Online Bookstore

book=8,ebook=165

TP31 文獻標碼:A

1008-9128(2010)04-0059-04

2010-05-13

余強(1973-),男,安徽岳西人,講師,碩士。研究方向:信息系統與電子商務。

猜你喜歡
系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
基于UG的發射箱自動化虛擬裝配系統開發
半沸制皂系統(下)
FAO系統特有功能分析及互聯互通探討
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
一德系統 德行天下
PLC在多段調速系統中的應用
主站蜘蛛池模板: 操操操综合网| 欧美五月婷婷| 国产成人免费手机在线观看视频| 亚洲视频一区| 永久免费精品视频| 最新国产麻豆aⅴ精品无| 小说 亚洲 无码 精品| 午夜欧美在线| 婷婷五月在线视频| 中国国产A一级毛片| 特级做a爰片毛片免费69| 71pao成人国产永久免费视频 | 国产视频大全| 日本道中文字幕久久一区| 亚洲91精品视频| 免费毛片视频| 色综合天天综合中文网| 欧美一级高清免费a| 国产男人的天堂| 99精品福利视频| 精品成人一区二区三区电影 | 啪啪啪亚洲无码| 成色7777精品在线| 亚洲无码视频一区二区三区| 女人爽到高潮免费视频大全| 美女黄网十八禁免费看| 精品国产www| 国产精品成人免费视频99| 无码中文AⅤ在线观看| 国产精品偷伦在线观看| 亚洲欧美综合在线观看| 91精品国产91久无码网站| 成人在线第一页| 国产精品免费福利久久播放| 日韩色图区| 亚洲天堂网在线播放| 欧美不卡在线视频| 日韩久久精品无码aV| 制服丝袜无码每日更新| 久久婷婷人人澡人人爱91| www.99精品视频在线播放| 青青草原国产免费av观看| 欧美成人免费一区在线播放| 人妻无码中文字幕一区二区三区| 久久这里只有精品66| 四虎国产永久在线观看| 国产精品13页| 在线免费观看a视频| 青青青视频免费一区二区| 欧美日韩在线亚洲国产人| 国产区在线看| 尤物精品视频一区二区三区| 91热爆在线| 国产麻豆aⅴ精品无码| 91精品免费高清在线| 婷婷六月综合网| 麻豆国产精品一二三在线观看| 欧美日韩国产成人在线观看| 狠狠色丁香婷婷| 狠狠色噜噜狠狠狠狠色综合久 | 麻豆国产在线观看一区二区| 日韩一区二区在线电影| 97色伦色在线综合视频| 久久精品国产精品国产一区| 黄色成年视频| 91精品啪在线观看国产60岁| 91久久偷偷做嫩草影院电| 欧美亚洲欧美区| 中文无码日韩精品| 亚洲无码37.| 日本尹人综合香蕉在线观看| 成人无码区免费视频网站蜜臀| 亚洲男女天堂| 国内精品视频| 91九色国产在线| 欧美成人在线免费| 国产成人禁片在线观看| 国产精品国产主播在线观看| 国产亚洲男人的天堂在线观看| 亚洲无码精彩视频在线观看| 欧美另类一区| 亚洲一区毛片|