軟件體系結構描述語言-C2_第1頁
軟件體系結構描述語言-C2_第2頁
軟件體系結構描述語言-C2_第3頁
軟件體系結構描述語言-C2_第4頁
軟件體系結構描述語言-C2_第5頁
已閱讀5頁,還剩20頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

C2風格的中心原則是有限可視原則,或者說是下層獨立的原則:

在C2風格的體系結構中,某一構件只能感知層次高于自己的構件所提供的服務,而不能感知到層次比自己更低的構件的服務。

這種單向的傳遞性,有利于系統的維護和擴展。C2風格的通信規則

C2中,所有構件間的通信必須通過消息來實現,這也是構件之間的唯一通信途徑。每個構件都有一個頂端域、一個底端域。構件的頂端域定義了構件可以對哪些通知做出響應,以及可以發出哪些請求;構件的底端域定義了可以向下層發送哪些通知,以及可以響應下層的哪些請求。C2架構風格

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

請求消息只能向上層傳送而通知消息只能向下層傳送。

通知消息的傳遞只對應于構件內部的操作,而和接收消息的構件的需求無關。C2體系結構風格元素構成構件:

分別有top和bottom端口

只能和1個連接件相連頂層域規定了該構件所能響應的通知消息集,以及它能向上產生的請求消息集底層域規定了該構件所能向下產生的通知消息集,以及它能響應的來自于下層的請求消息集。C2構件C2構件包括4個內部成分:內部對象:存儲構件狀態并實現構件所提供的操作。包裝器:內部對象上的包裝器監控所有的操作請求,并通過底端接口發送通知。對話:負責把接收到的外部消息映射成內部對象上的操作。域轉換器:是一個可選的,它可以修改一些消息使其能被其他構件理解。C2構件的作用

對構件上方的連接件發送過來的通知消息提供響應;對構件下方連接件產生的請求消息執行相應的操作;維護一些在對話框中定義好的約束條件。C2消息 C2風格定義了兩種類型的消息:向上發送的請求消息(Requests)和向下發送的通知消息(Notifications)。

請求消息只能向上層傳送而通知消息只能向下層傳送。

通知消息的傳遞只對應于構件內部的操作,而和接收消息的構件的需求無關。C2連接件連接件是負責構件之間消息的傳遞可以連接任何數量的C2構件和連接件。連接件的主要職責是消息的路由和廣播,另一個次要職責是消息的過濾。

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

Component::=Componentcomponent_nameisInterfacecomponent_message_interfaceParameterscomponent_parametersMethodscomponent_methods[behaviorcomponent_behavior][contextcomponent_context]Endcomponent_name;C2對構件的描述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]

實例

——會議安排系統的C2風格C2對MeetingInitiator構件的描述

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對Attendee構件的描述

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對ImportantAttendee構件的描述

componentImportantAttendeeissubtypeAttendee(inandbeh)interfacebottom_domainisoutLocPrefs(l:loc_type);

ExclSet(e:date_mg);

EquipReqts(eq:equip_type);

inGetLocPrefs();

behaviorreceived_messagesGetLocPrefsalways_generateLocPrefs;endImportantAttendee;C2對體系結構的描述architectureMeetingSchedulerisconceptual_componentsAttendee;ImportantAttendee;MeetingInitiator;

connectors connectorMainConnismessage_filterno_filtering;

connectorAttConnismessage_filterno_filtering;

connectorImportantAttConnismessage_filterno_filtering;

architectural_topology(配置拓撲結構) connectorAttConnconnections top_portsAttendee;

bottom_portsMainConn;

connectorImportantAttConnconnections top_portsImportantAttendee;

bottom_portsMainConn;

connectorMainConnconnections top_portsAttConn;ImportantAttConn;

bottom_portsMeetingInitiator;endMeetingScheduler;C2對會議安排系統的描述systemMeetingScheduler_1isarchitectureMeetingSchedulerwithAttendeeinstanceAtt_1,Att_2,Att_3;

ImportantAttendeeinstanceImpAtt_1,ImpAtt_2;

MeetingInitiatorinstanceMtgInit_1;

endMeetingScheduler_1;各種軟件體系結構描述語言的比較描述語言特性接口類型語義約束演化非功能屬性UniCon支持顯式的連接子用role進行建模預定義連接子類型隱含在連接子類型中;可以使用屬性列表定義語義信息通過接口進行約束;能夠限制指定的role所能連接的player類型 無用于可調度性分析的屬性C2SADL支持顯式的連接子 通過獨立的port與構件進行交互,接口區分provided和required基于協議的可擴展類型系統通過消息過濾器支持部分語義通過語義進行約束;風格不變量(每個port只與一個鏈接相關)上下文反射接口;可演化的過濾機制無ACME

支持顯式的連接子用role進行建模基于協議的可擴展的類型系統;使用模板實現參數化不支持,但可以在屬性列表中使用其它ADL的語義模型通過接口和類型對實例進行約束通過extends對結構進行子類型化通過屬性列表進行定義,但是不對其進行操作xADL支持顯式的連接子 用interface進行建??蓴U展的類型系統,可自定義類型不變量和前置,后置條件通過接口和語義進行約束支持產品線建模,版本建模無體系結構描述語言對配置的建模能力的比較描述語言 特性易理解性組裝性精化/易追蹤性異構性易伸縮性演化性動態性約束非功能屬性UniCon使用顯式的連接子來描述配置顯式的文本和圖形化規約;配置描述可以是分布式的 通過復合構件和連

溫馨提示

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

評論

0/150

提交評論