軟件體系結(jié)構(gòu)描述語(yǔ)言-C2_第1頁(yè)
軟件體系結(jié)構(gòu)描述語(yǔ)言-C2_第2頁(yè)
軟件體系結(jié)構(gòu)描述語(yǔ)言-C2_第3頁(yè)
軟件體系結(jié)構(gòu)描述語(yǔ)言-C2_第4頁(yè)
軟件體系結(jié)構(gòu)描述語(yǔ)言-C2_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

軟件體系結(jié)構(gòu)描述語(yǔ)言C2軟件體系結(jié)構(gòu)描述語(yǔ)言C2引言軟件體系結(jié)構(gòu)是根植于軟件工程發(fā)展起來(lái)的新興學(xué)科,目前已經(jīng)成為軟件工程研究和實(shí)踐的一個(gè)重要領(lǐng)域。軟件體系結(jié)構(gòu)設(shè)計(jì)的一個(gè)核心問(wèn)題是能否使用重復(fù)的體系結(jié)構(gòu)模式,即能否達(dá)到體系結(jié)構(gòu)級(jí)的軟件重用。也就是說(shuō),能否在不同的軟件系統(tǒng)中,使用同一體系結(jié)構(gòu)。C2體系結(jié)構(gòu)風(fēng)格作為一種經(jīng)典的體系結(jié)構(gòu)風(fēng)格,它就具有平衡開(kāi)發(fā)費(fèi)用與近產(chǎn)品的共同性的特性。按照C2體系結(jié)構(gòu)風(fēng)格的規(guī)則,我們能夠把各種粒度的構(gòu)件集成到一個(gè)系統(tǒng)結(jié)構(gòu)中??梢哉f(shuō),C2體系結(jié)構(gòu)風(fēng)格對(duì)軟件結(jié)構(gòu)和軟件構(gòu)件交互定義了一個(gè)良好的設(shè)計(jì)規(guī)范,同時(shí)還具有廣泛的試驗(yàn)和工具。因而,它就為軟件設(shè)計(jì)開(kāi)發(fā)者提供了一個(gè)有效的軟件重用環(huán)境。目前,大型企業(yè)的組織機(jī)構(gòu)基本上都為樹(shù)型結(jié)構(gòu),而且各個(gè)機(jī)構(gòu)可能位于不同的地區(qū)。隨著企業(yè)內(nèi)部信息交互越來(lái)越頻繁,分布式系統(tǒng)的應(yīng)用越來(lái)越受到重視,且對(duì)系統(tǒng)的可擴(kuò)展性及可維護(hù)性的要求也越來(lái)越高。背景1995年,

UniversityofCaliforniaIrvine的Richard.N.Taylor等人在一篇題為“AComponentAndMessage-BasedArchitecturalStyleForGUISoftware”的論文中提出了一種新的體系結(jié)構(gòu)風(fēng)格,將其稱為“C2風(fēng)格”。這種風(fēng)格的設(shè)計(jì)是用來(lái)支持圖形化用戶界面應(yīng)用程序的需要,然而,很明顯,它還具有支持其他類型應(yīng)用程序的潛力。如今,在JAVA平臺(tái)上有許多中間件可以支持C2風(fēng)格的實(shí)現(xiàn)。定義C2是一種用于用戶界面密集的系統(tǒng)的軟件體系結(jié)構(gòu)風(fēng)格。在C2風(fēng)格的體系結(jié)構(gòu)中,連接件在構(gòu)件之間轉(zhuǎn)發(fā)消息,構(gòu)件負(fù)責(zé)維護(hù)狀態(tài),進(jìn)行操作,通過(guò)兩個(gè)接口(頂端接口和底端接口)和其他構(gòu)件交換消息。構(gòu)件之間的消息交換不能直接進(jìn)行,而只能通過(guò)連接件來(lái)完成。每個(gè)構(gòu)件接口最多只能和一個(gè)連接件相連,而連接件可以和任意數(shù)目的構(gòu)件或連接件相連。C2風(fēng)格的中心原則

C2風(fēng)格的中心原則是有限可視原則,或者說(shuō)是下層獨(dú)立的原則:

在C2風(fēng)格的體系結(jié)構(gòu)中,某一構(gòu)件只能感知層次高于自己的構(gòu)件所提供的服務(wù),而不能感知到層次比自己更低的構(gòu)件的服務(wù)。

這種單向的傳遞性,有利于系統(tǒng)的維護(hù)和擴(kuò)展。C2風(fēng)格的通信規(guī)則

C2中,所有構(gòu)件間的通信必須通過(guò)消息來(lái)實(shí)現(xiàn),這也是構(gòu)件之間的唯一通信途徑。每個(gè)構(gòu)件都有一個(gè)頂端域、一個(gè)底端域。構(gòu)件的頂端域定義了構(gòu)件可以對(duì)哪些通知做出響應(yīng),以及可以發(fā)出哪些請(qǐng)求;構(gòu)件的底端域定義了可以向下層發(fā)送哪些通知,以及可以響應(yīng)下層的哪些請(qǐng)求。C2架構(gòu)風(fēng)格

C2風(fēng)格定義了兩種類型的消息:向上發(fā)送的請(qǐng)求消息(Requests)和向下發(fā)送的通知消息(Notifications)。

請(qǐng)求消息只能向上層傳送而通知消息只能向下層傳送。

通知消息的傳遞只對(duì)應(yīng)于構(gòu)件內(nèi)部的操作,而和接收消息的構(gòu)件的需求無(wú)關(guān)。C2體系結(jié)構(gòu)風(fēng)格元素構(gòu)成構(gòu)件:

分別有top和bottom端口

只能和1個(gè)連接件相連頂層域規(guī)定了該構(gòu)件所能響應(yīng)的通知消息集,以及它能向上產(chǎn)生的請(qǐng)求消息集底層域規(guī)定了該構(gòu)件所能向下產(chǎn)生的通知消息集,以及它能響應(yīng)的來(lái)自于下層的請(qǐng)求消息集。C2構(gòu)件C2構(gòu)件包括4個(gè)內(nèi)部成分:內(nèi)部對(duì)象:存儲(chǔ)構(gòu)件狀態(tài)并實(shí)現(xiàn)構(gòu)件所提供的操作。包裝器:內(nèi)部對(duì)象上的包裝器監(jiān)控所有的操作請(qǐng)求,并通過(guò)底端接口發(fā)送通知。對(duì)話:負(fù)責(zé)把接收到的外部消息映射成內(nèi)部對(duì)象上的操作。域轉(zhuǎn)換器:是一個(gè)可選的,它可以修改一些消息使其能被其他構(gòu)件理解。C2構(gòu)件的作用

對(duì)構(gòu)件上方的連接件發(fā)送過(guò)來(lái)的通知消息提供響應(yīng);對(duì)構(gòu)件下方連接件產(chǎn)生的請(qǐng)求消息執(zhí)行相應(yīng)的操作;維護(hù)一些在對(duì)話框中定義好的約束條件。C2消息 C2風(fēng)格定義了兩種類型的消息:向上發(fā)送的請(qǐng)求消息(Requests)和向下發(fā)送的通知消息(Notifications)。

請(qǐng)求消息只能向上層傳送而通知消息只能向下層傳送。

通知消息的傳遞只對(duì)應(yīng)于構(gòu)件內(nèi)部的操作,而和接收消息的構(gòu)件的需求無(wú)關(guān)。C2連接件連接件是負(fù)責(zé)構(gòu)件之間消息的傳遞可以連接任何數(shù)量的C2構(gòu)件和連接件。連接件的主要職責(zé)是消息的路由和廣播,另一個(gè)次要職責(zé)是消息的過(guò)濾。

(不過(guò)濾消息、通知消息過(guò)濾、優(yōu)先過(guò)濾策略、消息屏蔽)C2風(fēng)格特點(diǎn)(1)基底獨(dú)立性:構(gòu)件不需要知道它下面的構(gòu)件。一個(gè)反映構(gòu)件內(nèi)部對(duì)象狀態(tài)改變的通知消息對(duì)于構(gòu)件的對(duì)話框是完全透明的。(2)基于消息的通信:構(gòu)件之間所有的通信只能通過(guò)消息進(jìn)行這種需求最常見(jiàn)的情況是在用戶接口系統(tǒng)中,應(yīng)用需要異步處理的特性。(3)多線程:這是另外一種異步處理的特性,它可以簡(jiǎn)化對(duì)于多用戶和并行式應(yīng)用計(jì)算的建模和編程。(4)不共享地址空間:C2體系結(jié)構(gòu)風(fēng)格允許異構(gòu)構(gòu)件的集合,它沒(méi)有規(guī)定構(gòu)件的實(shí)現(xiàn)語(yǔ)言,并且,構(gòu)件也有它自己的線程控制和內(nèi)部對(duì)象。(5)體系結(jié)構(gòu)和實(shí)現(xiàn)相分離:許多潛在的性能問(wèn)題都可以通過(guò)體系結(jié)構(gòu)和具體實(shí)現(xiàn)的分離來(lái)解決。C2對(duì)于構(gòu)件接口的描述

Component::=Componentcomponent_nameisInterfacecomponent_message_interfaceParameterscomponent_parametersMethodscomponent_methods[behaviorcomponent_behavior][contextcomponent_context]Endcomponent_name;C2對(duì)構(gòu)件的描述1Component_message_interface::=2Top_domain_interface3Bottom_domain_interface4Top_domain_interface::=5Top_domainis6Outinterface_requests7Ininterface_notifications8Bottom_domain_interface::=9Bottom_domainis10Outinterface_notifications11Ininterface_requests12Interface_requests::=13{request;}|null;14Interface_notifications::=15{notification;}|null;16Request::=17Messagename(request_parameters)18Request_parmeters::=19[tocomponent_name][parameter_list]20Notification::=21Message_name[parameter_liat]

實(shí)例

——會(huì)議安排系統(tǒng)的C2風(fēng)格C2對(duì)MeetingInitiator構(gòu)件的描述

componentMeetingInitiatorisinterfacetop_domainisoutGetPrefSet();

GetExclSet();

GetEquipReqts();

GetLocPrefs();

RemoveExclSet();

RequestWithdrawal(toAttendee);

RequestWithdrawal(toImportantAttendee);

AddPrefDates();

MarkMtg(d:date;l:lov_type);inPrefSet(p:date_mg);ExclSet(e:data_mg);EquipReqts(eq:equip_type);

LocPref(l:loc_type);

behaviorstartupalways_generateGetPrefSet,GetExclSet,GetEquipReqts,

GetLocPrefs;

received_messagesPrefSetmay_generateRemoveExclSetxorRequestWithdrawalxorMarkMtg;

received_messagesExclSetmay_generateAddPrefDatesxorRemoveExclSetxorRequestWithdrawalxorMarkMtg;

received_messagesEquipReqtsmay_generateAddPrefDatesxorRemoveExclSetxorRequestWithdrawalxorMarkMtg;

received_messagesLocPrefalways_generatenull;endMeetingInitiator;C2對(duì)Attendee構(gòu)件的描述

componentAttendeeisinterfacebottom_domainisoutPrefSet(p:date_mg);

ExclSet(e:date_mg);

EquipReqts(eq:equip_type);

inGetPrefSet();

GetExclSet();

GetEquipReqts();

RemoveExclSet();

RequestWithdrawal();

AddPrefDates();

MarkMtg(d:date;l:loc_type);behaviorreceived_messagesGetPrefSetalways_generatePrefSet;received_messagesAddPrefDatesalways_generatePrefSet;received_messagesGetExclSetalways_generateExclSet;received_messagesGetEqipReqtsalways_generateEqipReqts;received_messagesRemoveExclSetalways_generateExclSet;received_messagesReuestWithdrawalalways_generatenull;received_messagesMarkMtgalways_generatenull;endAttendee;C2對(duì)ImportantAttendee構(gòu)件的描述

componentImportantAttendeeissubtypeAttendee(inandbeh)interfacebottom_domainisoutLocPrefs(l:loc_type);

ExclSet(e:date_mg);

EquipReqts(eq:equip_type);

inGetLocPrefs();

behaviorreceived_messagesGetLocPrefsalways_generateLocPrefs;endImportantAttendee;C2對(duì)體系結(jié)構(gòu)的描述architectureMeetingSchedulerisconceptual_componentsAttendee;ImportantAttendee;MeetingInitiator;

connectors connectorMainConnismessage_filterno_filtering;

connectorAttConnismessage_filterno_filtering;

connectorImportantAttConnismessage_filterno_filtering;

architectural_topology(配置拓?fù)浣Y(jié)構(gòu)) connectorAttConnconnections top_portsAttendee;

bottom_portsMainConn;

connectorImportantAttConnconnections top_portsImportantAttendee;

bottom_portsMainConn;

connectorMainConnconnections top_portsAttConn;ImportantAttConn;

bottom_portsMeetingInitiator;endMeetingScheduler;C2對(duì)會(huì)議安排系統(tǒng)的描述systemMeetingScheduler_1isarchitectureMeetingSchedulerwithAttendeeinstanceAtt_1,Att_2,Att_3;

ImportantAttendeeinstanceImpAtt_1,ImpAtt_2;

MeetingInitiatorinstanceMtgInit_1;

endMeetingScheduler_1;各種軟件體系結(jié)構(gòu)描述語(yǔ)言的比較描述語(yǔ)言特性接口類型語(yǔ)義約束演化非功能屬性UniCon支持顯式的連接子用role進(jìn)行建模預(yù)定義連接子類型隱含在連接子類型中;可以使用屬性列表定義語(yǔ)義信息通過(guò)接口進(jìn)行約束;能夠限制指定的role所能連接的player類型 無(wú)用于可調(diào)度性分析的屬性C2SADL支持顯式的連接子 通過(guò)獨(dú)立的port與構(gòu)件進(jìn)行交互,接口區(qū)分provided和required基于協(xié)議的可擴(kuò)展類型系統(tǒng)通過(guò)消息過(guò)濾器支持部分語(yǔ)義通過(guò)語(yǔ)義進(jìn)行約束;風(fēng)格不變量(每個(gè)port只與一個(gè)鏈接相關(guān))上下文反射接口;可演化的過(guò)濾機(jī)制無(wú)ACME

支持顯式的連接子用role進(jìn)行建?;趨f(xié)議的可擴(kuò)展的類型系統(tǒng);使用模板實(shí)現(xiàn)參數(shù)化不支持,但可以在屬性列表中使用其它ADL的語(yǔ)義模型通過(guò)接口和類型對(duì)實(shí)例進(jìn)行約束通過(guò)extends對(duì)結(jié)構(gòu)進(jìn)行子類型化通過(guò)屬性列表進(jìn)行定義,但是不對(duì)其進(jìn)行操作xADL支持顯式的連接子 用interface進(jìn)行建??蓴U(kuò)展的類型系統(tǒng),可自定義類型不變量和前置,后置條件通過(guò)接口和語(yǔ)義進(jìn)行約束支持產(chǎn)品線建模,版本建模無(wú)體系結(jié)構(gòu)描述語(yǔ)言對(duì)配置的建模能力的比較描述語(yǔ)言 特性易理解性組裝性精化/易追蹤性異構(gòu)性易伸縮性演化性動(dòng)態(tài)性約束非功能屬性UniCon使用顯式的連接子來(lái)描述配置顯式的文本和圖形化規(guī)約;配置描述可以是分布式的 通過(guò)復(fù)合構(gòu)件和連

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論