版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、徐寶文徐寶文 周毓明周毓明 盧紅敏盧紅敏徐寶文徐寶文 周毓明周毓明 盧紅敏盧紅敏2徐寶文徐寶文 周毓明周毓明 盧紅敏盧紅敏3n將uml看作是一種軟件體系結(jié)構(gòu)描述語言進行軟件體系結(jié)構(gòu)建模n利用uml的擴展機制約束uml元模型以支持軟件體系結(jié)構(gòu)建模的需要n對uml的元模型進行擴展,使其直接支持軟件體系結(jié)構(gòu)的概念 徐寶文徐寶文 周毓明周毓明 盧紅敏盧紅敏4n第一種方法最簡單,其實質(zhì)是利用現(xiàn)有的uml符號表示軟件體系結(jié)構(gòu)numl用戶能很容易地理解所建立的軟件體系結(jié)構(gòu)模型,并可以用與uml兼容的工具對其進行操縱n現(xiàn)有的uml結(jié)構(gòu)無法和軟件體系結(jié)構(gòu)的概念顯式地直接對應。因此,它們之間的對應關系必須由建模人
2、員維護 徐寶文徐寶文 周毓明周毓明 盧紅敏盧紅敏5n第二種方法是使用帶約束的uml進行軟件體系結(jié)構(gòu)建模n這種方法能顯式地表示軟件體系結(jié)構(gòu)的約束,所建立的軟件體系結(jié)構(gòu)模型仍然可用標準的uml工具進行操縱,uml用戶理解起來也比較容易n對ocl約束進行檢查的工具還不是太多。 元元模型元模型模型用戶對象顯式約束顯式約束uml模型以支持體系結(jié)構(gòu)建模模型以支持體系結(jié)構(gòu)建模徐寶文徐寶文 周毓明周毓明 盧紅敏盧紅敏6n第三種方法是對uml的元模型進行擴展,這種擴展使uml能引入新的建模能力n可使uml中包含各種adl所具有的優(yōu)良特性,并且具有直接支持軟件體系結(jié)構(gòu)建模的能力n擴展后的概念不符合uml標準,因而
3、與uml工具不兼容元模型模型用戶對象元元模型擴展擴展uml元模型以支持體系結(jié)構(gòu)建模元模型以支持體系結(jié)構(gòu)建模徐寶文徐寶文 周毓明周毓明 盧紅敏盧紅敏7n“到底什么是軟件體系結(jié)構(gòu)”這個問題上還存在著爭議,更不用說在“如何使用uml進行軟件體系結(jié)構(gòu)建?!眓為評估uml對軟件體系結(jié)構(gòu)建模的支持程度,下面用uml以與專門的體系結(jié)構(gòu)描述語言adl相同的方式進行應用程序的軟件體系結(jié)構(gòu)建模n評價uml的軟件體系結(jié)構(gòu)建模能力n將之與adl的軟件體系結(jié)構(gòu)建模能力進行直接比較 徐寶文徐寶文 周毓明周毓明 盧紅敏盧紅敏8n會議的發(fā)起者在安排會議時為了保證盡可能多的人參加,會向每個擬與會人員詢問他們可以參加會議的日期(
4、簡稱“選擇集”)以及不能出席會議的日期(簡稱“排除集”)n會議的發(fā)起者也向素來表現(xiàn)積極的會議參與者征求有關會議方式、會議地點等方面的意見n會議發(fā)起者還向一些重要的會議參與者征求會議位置方面的其它問題 徐寶文徐寶文 周毓明周毓明 盧紅敏盧紅敏9n最后定的會議日期應該在會議發(fā)起者所指定的日期范圍之內(nèi),且在任何一個排除集之外。理想情況下,它應在盡可能多的選擇集之內(nèi)。若無法找到滿足這些條件的日期,那么稱出現(xiàn)沖突n強沖突: 若在指定的日期范圍內(nèi)和所有的排除集之外都找不到滿足條件的會議日期n弱沖突: 若能在指定的日期范圍之內(nèi)和所有的排除集之外但無法在所有選擇集的交集內(nèi)找到滿足條件的日期 徐寶文徐寶文 周毓
5、明周毓明 盧紅敏盧紅敏10沖突可以通過如下幾種方法解決:n讓會議發(fā)起者擴大會議日期范圍n讓某些會議參與者擴大其選擇集或縮小其排除集n讓某些會議參與者不參加會議徐寶文徐寶文 周毓明周毓明 盧紅敏盧紅敏11nc2風格要求構(gòu)件之間只能通過消息傳遞的方式通信,而不能通過共享內(nèi)存通信n一個c2體系結(jié)構(gòu)是一個通過連接子將各并發(fā)構(gòu)件連接在一起而構(gòu)成的層次狀網(wǎng)絡。其中,每個構(gòu)件所發(fā)送的通知消息應與其操作相對應,而不是與接收通知消息的構(gòu)件的操作相對應 徐寶文徐寶文 周毓明周毓明 盧紅敏盧紅敏12n每個構(gòu)件只知道位于其所在層之上的各構(gòu)件所提供的服務,而不了解位于其所在層之下的各構(gòu)件分別能提供什么服務。這就使體系結(jié)
6、構(gòu)中的一個高層構(gòu)件可以具有不同的底層構(gòu)件nc2風格改善了構(gòu)件的可重用性和系統(tǒng)的風格改善了構(gòu)件的可重用性和系統(tǒng)的易擴展性易擴展性nc2風格沒有對構(gòu)件或連接子的實現(xiàn)語言、風格沒有對構(gòu)件或連接子的實現(xiàn)語言、構(gòu)件到主機之間的映射、連接子之間使構(gòu)件到主機之間的映射、連接子之間使用的通信協(xié)議以及構(gòu)件的執(zhí)行線程做任用的通信協(xié)議以及構(gòu)件的執(zhí)行線程做任何約定何約定徐寶文徐寶文 周毓明周毓明 盧紅敏盧紅敏13nc2 sadl是一個支持按照c2風格進行軟件體系結(jié)構(gòu)建模的一種體系結(jié)構(gòu)描述語言n用c2 sadl對會議調(diào)度者問題進行體系結(jié)構(gòu)建模,目的是為了體會按照c2風格規(guī)則進行體系結(jié)構(gòu)分解的細微之處,同時也作為評價相應
7、uml模型的基礎徐寶文徐寶文 周毓明周毓明 盧紅敏盧紅敏14attendee-1attendee-mim portantattendee-1im portantattendee-nmeetinginitiatorim portantattconnattconnmainconn.會議調(diào)度系統(tǒng)會議調(diào)度系統(tǒng)c2風格的體系結(jié)構(gòu)風格的體系結(jié)構(gòu)徐寶文徐寶文 周毓明周毓明 盧紅敏盧紅敏15meetinginitiator構(gòu)件僅通過上構(gòu)件僅通過上面的端口和體系結(jié)構(gòu)的其它部分面的端口和體系結(jié)構(gòu)的其它部分進行通信,它在進行通信,它在behavior部分部分的的startup段說明啟動計算請求段說明啟動計算請求 徐
8、寶文徐寶文 周毓明周毓明 盧紅敏盧紅敏16n每個attendee-n和importantattendee-n構(gòu)件從initiator接收會議調(diào)度請求,并且向它發(fā)送合適的信息。這兩種類型的構(gòu)件僅通過下面的端口和體系結(jié)構(gòu)的其它部分進行通信徐寶文徐寶文 周毓明周毓明 盧紅敏盧紅敏17nimportantattendee是attendee構(gòu)件的一個特化,它具有attendee的所有功能并且增加了對會議地點進行選擇的規(guī)約component importantattendee is subtype attendee (int and beh) interface bottom_domain is out
9、locprefs(i : loc_type); in getlocprefs( ); behavior received_messages getlocprefs always_generate locprefs;end importantattendee徐寶文徐寶文 周毓明周毓明 盧紅敏盧紅敏18nmeetingscheduler的軟件體系結(jié)構(gòu)對應的文本描述如下:徐寶文徐寶文 周毓明周毓明 盧紅敏盧紅敏19numl提供了用來對軟件構(gòu)件、構(gòu)件之間接口以及它們在主機上配置情況等進行建模的各種符號。但這些內(nèi)部預定義符號并不適合于體系結(jié)構(gòu)層構(gòu)件的描述,其原因在于它們的抽象程度不是太高就是太低 num
10、l中的構(gòu)件是需要消耗諸如存儲器等機器資源的具體的可執(zhí)行的程序片段。相反,軟件體系結(jié)構(gòu)中的構(gòu)件是用來表示系統(tǒng)狀態(tài)和行為的抽象概念。盡管體系結(jié)構(gòu)構(gòu)件的實例可由uml構(gòu)件的實例來實現(xiàn),但體系結(jié)構(gòu)構(gòu)件自身不是具體的 徐寶文徐寶文 周毓明周毓明 盧紅敏盧紅敏20numl構(gòu)件可以有任意數(shù)目的接口,其內(nèi)部結(jié)構(gòu)也可以千變?nèi)f化,但體系結(jié)構(gòu)的構(gòu)件必須滿足某些規(guī)則或約束從這個角度看,使用從這個角度看,使用uml中的類來模擬中的類來模擬軟件體系結(jié)構(gòu)的構(gòu)件比較合適軟件體系結(jié)構(gòu)的構(gòu)件比較合適 徐寶文徐寶文 周毓明周毓明 盧紅敏盧紅敏21n將uml作為一種adl進行軟件體系結(jié)構(gòu)建模的關鍵是要確保uml設計既要受uml中現(xiàn)有
11、建模特征的約束,也要受adl自身所具有的特征的約束從這個角度看,用從這個角度看,用uml進行軟件體系結(jié)構(gòu)建模過進行軟件體系結(jié)構(gòu)建模過程的第一步是用程的第一步是用uml為所要建模的應用開發(fā)一個為所要建模的應用開發(fā)一個域模型,并且開發(fā)一個非形式化的體系結(jié)構(gòu)圖。域模型,并且開發(fā)一個非形式化的體系結(jié)構(gòu)圖。其中,體系結(jié)構(gòu)圖是將域模型中的類映射為體系其中,體系結(jié)構(gòu)圖是將域模型中的類映射為體系結(jié)構(gòu)構(gòu)件的關鍵結(jié)構(gòu)構(gòu)件的關鍵 徐寶文徐寶文 周毓明周毓明 盧紅敏盧紅敏22personattendeeimportantattendeelocationdatemeetingmeetinginitiatorstrong
12、lyconflictswithconflictswith0.*0.*0.*0.*0.*0.*0.*0.*1.* 1.*121111111invitesproposesexcludesprefersprefers1會議調(diào)度系統(tǒng)的會議調(diào)度系統(tǒng)的uml類圖類圖(省去了每個類的細節(jié)省去了每個類的細節(jié))徐寶文徐寶文 周毓明周毓明 盧紅敏盧紅敏23mtginitg etprefset ()g etexclset()rem oveexclset ()requestwithdrawal(attendee)addprefdates ()im portantmtginitg etlocprefs ()mtgatt
13、endprefset (date_rng)exclset(date_rng)equipreqts(equip_type)im portantmtgattend locprefs (loc_type)會議調(diào)度系統(tǒng)的類接口會議調(diào)度系統(tǒng)的類接口徐寶文徐寶文 周毓明周毓明 盧紅敏盧紅敏24attconng etprefset ()g etexclset()rem oveexclset ()requestwithdrawal(attendee)addprefdates ()prefset (date_rng)exclset(date_rng)equipreqts (equip_type)im porta
14、ntattconng etlocprefs ()locprefs (loc_type)mainconnc2連接子的連接子的uml類圖表示類圖表示徐寶文徐寶文 周毓明周毓明 盧紅敏盧紅敏25attendeeimportantattendeeattconnimportantattconnmainconnmeetinginitator0.*0.*1111mtginitmtginitimportant mtginitimportant mtginitimportant mtginitimportantmtgattendimportantmtgattendimportantmtgattendmtgatt
15、endmtgattend會議調(diào)度系統(tǒng)以會議調(diào)度系統(tǒng)以c2體系結(jié)構(gòu)風格描述的體系結(jié)構(gòu)風格描述的uml類圖類圖徐寶文徐寶文 周毓明周毓明 盧紅敏盧紅敏26ac : attconniac : importantattconnmc :mainconnmi :meetinginitator1:getprefset()10:prefset(date_rng)11:prefset(date_rng)2:getprefset()4:getprefset()5:getprefset()3:getprefset()7:prefset(date_rng)6:prefset(date_rng)8:prefset(da
16、te_rng)9:prefset(date_rng) : importantattendee: attendee會議調(diào)度系統(tǒng)的一個協(xié)作圖會議調(diào)度系統(tǒng)的一個協(xié)作圖徐寶文徐寶文 周毓明周毓明 盧紅敏盧紅敏27 利用uml進行體系結(jié)構(gòu)建模的第二種方法是用ocl對uml元模型中的現(xiàn)有元類施加某些約束。這種方法需要:n從uml元模型中選擇一個或多個元類,使它們適合充當給定的adl建模結(jié)構(gòu)n定義一個能應用于這些元類的衍型,目的是將這些元類的語義約束為相關adl特征所具有的語義徐寶文徐寶文 周毓明周毓明 盧紅敏盧紅敏28n該方法把uml看作是一種能為支持特定體系結(jié)構(gòu)需求而進行擴展的核心符號n這和元模型擴展是
17、不同的:通過uml提供的擴展機制對其進行概念上的擴展,從而為體系結(jié)構(gòu)設計者提供了uml中原來并不存在的其它建模工具,但uml元模型本身并未改變,ocl設施用來將uml約束為一個特定的uml兼容子集n當開發(fā)中遇到新的需求時,進行新的擴展以支持這些新需求。核心符號的語義總是由與uml兼容的工具實施的,擴展符號的語義則由擴展之上的約束來實施。不同的擴展之間可能會產(chǎn)生依賴和沖突,它們應由開發(fā)人員來處理徐寶文徐寶文 周毓明周毓明 盧紅敏盧紅敏29n c2提供了根據(jù)相當通用的體系結(jié)構(gòu)風格進行結(jié)構(gòu)分解和基于事件交互的指南n wright支持對單個體系結(jié)構(gòu)元素的行為和交互建模n rapid支持局部和全局行為約
18、束的規(guī)約徐寶文徐寶文 周毓明周毓明 盧紅敏盧紅敏30attendeeimportantattendeeattconnimportantattconnmainconnmeetinginitator0.*0.*111111111以帶以帶“約束約束”的的uml表示的會議調(diào)度系統(tǒng)的體系結(jié)表示的會議調(diào)度系統(tǒng)的體系結(jié)構(gòu)構(gòu)徐寶文徐寶文 周毓明周毓明 盧紅敏盧紅敏31wright從三個方面描述一個體系結(jié)構(gòu):n構(gòu)件和連接子的類型n構(gòu)件和連接子的實例n構(gòu)件和連接子實例的配置 與與c2語言不同的是,語言不同的是,wright語言并不要求以某種特定風格語言并不要求以某種特定風格來進行軟件體系結(jié)構(gòu)的建模,而可以采用多種
19、體系結(jié)構(gòu)風格。來進行軟件體系結(jié)構(gòu)的建模,而可以采用多種體系結(jié)構(gòu)風格。然而,然而,wright仍然對體系結(jié)構(gòu)施加了某些拓撲上的約束。仍然對體系結(jié)構(gòu)施加了某些拓撲上的約束。例如,例如,wright規(guī)定兩個構(gòu)件不能直接相連,而必須通過連規(guī)定兩個構(gòu)件不能直接相連,而必須通過連接子相連,這一點和接子相連,這一點和c2的約定相同。另一面,的約定相同。另一面,wright也不也不允許兩個連接子直接相連允許兩個連接子直接相連 徐寶文徐寶文 周毓明周毓明 盧紅敏盧紅敏32nwright語言使用csp的一個子集描述構(gòu)件和連接子的行為以及它們的接口元素所支持的協(xié)議。如果csp的這個子集定義的是“具有有限狀態(tài)的進程”
20、,那么可用uml狀態(tài)機模擬wright的行為規(guī)約ncsp進程是通過事件進行通信的實體(a) e?x(b) e!xe(x)/e(x)用用uml狀態(tài)機模擬狀態(tài)機模擬csp的輸入和輸出事件的輸入和輸出事件n這兩種類型的狀態(tài)變遷可用來模擬wright所能支持的更復雜的csp表達式 徐寶文徐寶文 周毓明周毓明 盧紅敏盧紅敏33csp概念csp符號uml狀態(tài)圖前綴p = a q二選一(確定性選擇)p = b q c r判定(非確定性選擇)p = d q e r并行復合p = q | r成功的事件p =qqrpdebcqrppqrappwright的的csp表達式的表達式的uml狀態(tài)機模版狀態(tài)機模版徐寶文徐
21、寶文 周毓明周毓明 盧紅敏盧紅敏34 請注意,請注意,csp事件可能沒有相關的數(shù)據(jù),事件可能沒有相關的數(shù)據(jù),此時狀態(tài)機的語義要求指明哪些實體生此時狀態(tài)機的語義要求指明哪些實體生成事件以及哪些實體觀察事件成事件以及哪些實體觀察事件n每個wright接口(構(gòu)件的一個端口或者是連接子的一個角色)具有一個或多個操作。在wright語言中,這些操作是隱式說明的,它們是一個端口或角色的csp協(xié)議的一部分 徐寶文徐寶文 周毓明周毓明 盧紅敏盧紅敏35n在wright中,一個連接子由一個角色集和一個膠水組成。其中,前者描述了交互構(gòu)件所期望的行為,后者通過說明連接子的各角色交互方式來定義其行為。下面用uml元類
22、定義wright連接子。一個wright連接子可以提供多個接口,并且能與其它類之間存在關聯(lián)關系。wright連接子是沒有狀態(tài)的,即它們沒有直接的屬性 n在wright中,一個構(gòu)件實際上是由一個端口集和一個計算規(guī)約所組成的。其中,前者定義了構(gòu)件的接口,后者則描述了構(gòu)件的行為 徐寶文徐寶文 周毓明周毓明 盧紅敏盧紅敏36connector pipe =role writer = write writer close role reader =let exitonly = close in let doread = (read reader read-eof exitonly)in doread e
23、xitonlyglue = let readonly = reader.read readonly reader.read-eof reader.close reader.close in let writeonly = writer.write writeonly writer.close in writer.write glue reader.read glue writer.close readonly reader.close writeonly一個用一個用wright描述的連接子描述的連接子徐寶文徐寶文 周毓明周毓明 盧紅敏盧紅敏37r e a d e rr e a d e rw r
24、ite r/w _ c lo s e/w _ w rited o r e a d/r _ re a d -e o fexito n ly/r _ c lo s e/r _ re a dw rite o n lyw _ c lo s er e a d o n lyr _ re a d -e o fr _ c lo s er _ c lo s er _ re a dr _ c lo s ew _ c lo s ew _ w ritep ip e管道連接子的管道連接子的uml狀態(tài)機模型狀態(tài)機模型 徐寶文徐寶文 周毓明周毓明 盧紅敏盧紅敏38nrapide是一種具有豐富語義并可以支持體系結(jié)構(gòu)約束規(guī)約的
25、軟件體系結(jié)構(gòu)描述語言 nrapide語言的基本行為模型是事件的偏序集。在rapide中,構(gòu)件的行為主要是通過事件來刻畫的。對一個構(gòu)件而言,它既可以觀察到其外部環(huán)境中發(fā)生的事件,也可以生成其外部環(huán)境能觀察到的事件。構(gòu)件可以是多線程的,構(gòu)件內(nèi)的或構(gòu)件間的多個線程的同步會導致各構(gòu)件事件流之間的因果依賴關系徐寶文徐寶文 周毓明周毓明 盧紅敏盧紅敏39n第一種規(guī)約方法利用狀態(tài)變遷規(guī)則描述構(gòu)件的行為,也即指出構(gòu)件在觀察到一種事件模式后它應該產(chǎn)生何種事件模式作為回應n第二種規(guī)約方法利用事件模式約束描述構(gòu)件或體系結(jié)構(gòu)所生成的事件偏序集內(nèi)容上的限制。當前的rapide工具中所使用的事件模式約束指出構(gòu)件或者體系結(jié)
26、構(gòu)的行為中不應發(fā)生的事件模式rapide支持兩種類型的基于事件的規(guī)約方法支持兩種類型的基于事件的規(guī)約方法 : 徐寶文徐寶文 周毓明周毓明 盧紅敏盧紅敏40這兩種類型的規(guī)約中都用到了事件模式。我們可這兩種類型的規(guī)約中都用到了事件模式。我們可通過各種各樣的組合操作構(gòu)作復雜的事件模式,通過各種各樣的組合操作構(gòu)作復雜的事件模式,這些操作能說明各事件在何時應該按照因果順序這些操作能說明各事件在何時應該按照因果順序依次發(fā)生、在何時可以獨立發(fā)生、在何時必須一依次發(fā)生、在何時可以獨立發(fā)生、在何時必須一起發(fā)生以及在何時只有其中的一個能發(fā)生等等起發(fā)生以及在何時只有其中的一個能發(fā)生等等徐寶文徐寶文 周毓明周毓明 盧
27、紅敏盧紅敏41n每個平行的子狀態(tài)中都包含一個循環(huán),從而可達到重復選擇執(zhí)行規(guī)則以及重復檢查約束的目的。顯然,每次只能觸發(fā)狀態(tài)機中的一個規(guī)則,但具體觸發(fā)哪個規(guī)則不確定。每當觸發(fā)狀態(tài)機中的一個約束,就生成一個表示違背了該約束的特殊信號 . . . . .規(guī)則 1規(guī)則 m約束 1約束 n模擬模擬rapide構(gòu)件行為及行為約構(gòu)件行為及行為約束的束的uml狀態(tài)機模版狀態(tài)機模版 徐寶文徐寶文 周毓明周毓明 盧紅敏盧紅敏42bankrule 1entry/last:=last+1open_account(rule1:c)last100/assign_account(last)rule 2deposit(rule2:a ,rule2:d)/new_balance(rule2:a ,a ccountsrule2:a )entry/a ccountsrule2:a :=a ccountsrule2:a +rule2:drule 3w ithdraw(rule3:a ,rule3:d)/new_balance(rule3:a ,a ccountsrule3:a )ent
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 項目委托合同條款與風險管理
- 貨物供應合同模板
- 2024試用工勞動合同范本
- 2024裝修合同范本版
- 個人倉庫租賃協(xié)議樣本
- 小學食堂食品供應合同
- 2024年冷鏈車運輸合同
- 校企合作框架協(xié)議書范例
- 2024售樓處物業(yè)服務合同(物業(yè))
- 2024英文股份合同范本英文股份合同
- 優(yōu)秀團員競選主題班會課件
- 用戶運營專員工作職責與任職要求(7篇)
- 杜甫生平介紹最終版課件
- 專題七馬克思主義剩余的價值理論課件
- 超星爾雅學習通《改革開放史(王向明)》章節(jié)測試答案
- 手術患者輸血反應的應急預案流程圖
- 三級數(shù)學下冊 面積1 滬教
- 圓面積公式的推導優(yōu)秀課件
- 科學實驗:磁懸浮課件
- 六病區(qū)護理創(chuàng)新 改良冰敷袋課件
- ??低?視頻監(jiān)控原理培訓教材課件
評論
0/150
提交評論