软件体系结构描述语言C2_第1页
软件体系结构描述语言C2_第2页
软件体系结构描述语言C2_第3页
软件体系结构描述语言C2_第4页
软件体系结构描述语言C2_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件体系结构描述语言C2小组成员:张三李四王五软件体系结构描述语言C2引言软件体系结构是根植于软件工程发展起来的新兴学科,目前已经成为软件工程研究和实践的一个重要领域。软件体系结构设计的一个核心问题是能否使用重复的体系结构模式,即能否达到体系结构级的软件重用。也就是说,能否在不同的软件系统中,使用同一体系结构。C2体系结构风格作为一种经典的体系结构风格,它就具有平衡开发费用与近产品的共同性的特性。按照C2体系结构风格的规则,我们能够把各种粒度的构件集成到一个系统结构中。可以说,C2体系结构风格对软件结构和软件构件交互定义了一个良好的设计规范,同时还具有广泛的试验和工具。因而,它就为软件设计开发者提供了一个有效的软件重用环境。目前,大型企业的组织机构基本上都为树型结构,而且各个机构可能位于不同的地区。随着企业内部信息交互越来越频繁,分布式系统的应用越来越受到重视,且对系统的可扩展性及可维护性的要求也越来越高。软件体系结构描述语言C2背景1995年,

UniversityofCaliforniaIrvine的Richard.N.Taylor等人在一篇题为“AComponentAndMessage-BasedArchitecturalStyleForGUISoftware”的论文中提出了一种新的体系结构风格,将其称为“C2风格”。这种风格的设计是用来支持图形化用户界面应用程序的需要,然而,很明显,它还具有支持其他类型应用程序的潜力。如今,在JAVA平台上有许多中间件可以支持C2风格的实现。软件体系结构描述语言C2定义C2是一种用于用户界面密集的系统的软件体系结构风格。在C2风格的体系结构中,连接件在构件之间转发消息,构件负责维护状态,进行操作,通过两个接口(顶端接口和底端接口)和其他构件交换消息。构件之间的消息交换不能直接进行,而只能通过连接件来完成。每个构件接口最多只能和一个连接件相连,而连接件可以和任意数目的构件或连接件相连。软件体系结构描述语言C2C2风格的中心原则

C2风格的中心原则是有限可视原则,或者说是下层独立的原则:

在C2风格的体系结构中,某一构件只能感知层次高于自己的构件所提供的服务,而不能感知到层次比自己更低的构件的服务。

这种单向的传递性,有利于系统的维护和扩展。软件体系结构描述语言C2C2风格的通信规则

C2中,所有构件间的通信必须通过消息来实现,这也是构件之间的唯一通信途径。每个构件都有一个顶端域、一个底端域。构件的顶端域定义了构件可以对哪些通知做出响应,以及可以发出哪些请求;构件的底端域定义了可以向下层发送哪些通知,以及可以响应下层的哪些请求。软件体系结构描述语言C2C2架构风格

C2风格定义了两种类型的消息:向上发送的请求消息(Requests)和向下发送的通知消息(Notifications)。 请求消息只能向上层传送而通知消息只能向下层传送。 通知消息的传递只对应于构件内部的操作,而和接收消息的构件的需求无关。软件体系结构描述语言C2C2体系结构风格元素构成构件:

分别有top和bottom端口

只能和1个连接件相连顶层域规定了该构件所能响应的通知消息集,以及它能向上产生的请求消息集底层域规定了该构件所能向下产生的通知消息集,以及它能响应的来自于下层的请求消息集。软件体系结构描述语言C2C2构件C2构件包括4个内部成分:内部对象:存储构件状态并实现构件所提供的操作。包装器:内部对象上的包装器监控所有的操作请求,并通过底端接口发送通知。对话:负责把接收到的外部消息映射成内部对象上的操作。域转换器:是一个可选的,它可以修改一些消息使其能被其他构件理解。软件体系结构描述语言C2C2构件的作用

对构件上方的连接件发送过来的通知消息提供响应;对构件下方连接件产生的请求消息执行相应的操作;维护一些在对话框中定义好的约束条件。软件体系结构描述语言C2C2消息 C2风格定义了两种类型的消息:向上发送的请求消息(Requests)和向下发送的通知消息(Notifications)。 请求消息只能向上层传送而通知消息只能向下层传送。 通知消息的传递只对应于构件内部的操作,而和接收消息的构件的需求无关。软件体系结构描述语言C2C2连接件连接件是负责构件之间消息的传递可以连接任何数量的C2构件和连接件。连接件的主要职责是消息的路由和广播,另一个次要职责是消息的过滤。 (不过滤消息、通知消息过滤、优先过滤策略、消息屏蔽)软件体系结构描述语言C2C2风格特点(1)基底独立性:构件不需要知道它下面的构件。一个反映构件内部对象状态改变的通知消息对于构件的对话框是完全透明的。(2)基于消息的通信:构件之间所有的通信只能通过消息进行这种需求最常见的情况是在用户接口系统中,应用需要异步处理的特性。(3)多线程:这是另外一种异步处理的特性,它可以简化对于多用户和并行式应用计算的建模和编程。(4)不共享地址空间:C2体系结构风格允许异构构件的集合,它没有规定构件的实现语言,并且,构件也有它自己的线程控制和内部对象。(5)体系结构和实现相分离:许多潜在的性能问题都可以通过体系结构和具体实现的分离来解决。软件体系结构描述语言C2C2对于构件接口的描述

Component::=Componentcomponent_nameisInterfacecomponent_message_interfaceParameterscomponent_parametersMethodscomponent_methods[behaviorcomponent_behavior][contextcomponent_context]Endcomponent_name;软件体系结构描述语言C2C2对构件的描述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风格软件体系结构描述语言C2C2对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;软件体系结构描述语言C2C2对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);behavior

received_messagesGetPrefSetalways_generatePrefSet;received_messagesAddPrefDatesalways_generatePrefSet;received_messagesGetExclSetalways_generateExclSet;received_messagesGetEqipReqtsalways_generateEqipReqts;received_messagesRemoveExclSetalways_generateExclSet;received_messagesReuestWithdrawalalways_generatenull;received_messagesMarkMtgalways_generatenull;endAttendee;软件体系结构描述语言C2C2对ImportantAttendee构件的描述

componentImportantAttendeeissubtypeAttendee(inandbeh)interfacebottom_domainisoutLocPrefs(l:loc_type);

ExclSet(e:date_mg);

EquipReqts(eq:equip_type);

inGetLocPrefs();

behaviorreceived_messagesGetLocPrefsalways_generateLocPrefs;endImportantAttendee;软件体系结构描述语言C2C2对体系结构的描述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;软件体系结构描述语言C2C2对会议安排系统的描述systemMeetingScheduler_1isarchitectureMeetingSchedulerwithAttendeeinstanceAtt_1,Att_2,Att_3;

ImportantAttendeeinstanceImpAtt_1,ImpAtt_2;

MeetingInitiatorinstanceMtgInit_1;

endMeetingScheduler_1;软件体系结构描述语言C2各种软件体系结构描述语言的比较描述语言特性接口类型语义约束演化非功能属性UniCon支持显式的连接子用role进行建模预定义连接子类型隐含在连接子类型中;可以使用属性列表定义语义信息通过接口进行约束;能够限制指定的role所能连接的player类型 无用于可调度性分析的属性C2SADL支持显式的连接子 通过独立的port与构件进行交互,接口区分provided和required基于协议的可扩展类型系统通过消息过滤器支持部分语义通过语义进行约束;风格不变量(每个port只与一个链接相关)上下文反射接口;可演化的过滤机制无ACME

支持显式的连接子用role进行建模基于协议的可扩展的类型系统;使用模板实现参数化不支持,但可以在属性列表中使用其它ADL的语义模型通过接口和类型对实例进行约束通过extends对结构进行子类型化通过属性列表进行定义,但是不对其进行操作xADL支持显式的连接子 用interface进行建模可扩展的类型系统,可自定义类型不变量和前置,后置条件通过接口和语义进行约束支持产品线建模,版本建模无软件体系结构描述语言C2体系结构描述语言对配置的建模能力的比较描述语言 特性易理解性组装性精化/易追踪性异构性易伸缩性演化性动态性约束非功能属性UniCon使用显式的连接子来描述配置显式的文本和图形化规约;配置描述可以是分布式的 通过复合构件和连接子实现组装支持系统生成;对实现有所限制仅支持预定

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论