版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件体系结构描述语言 C2,小组成员:张三 李四 王五,引言,软件体系结构是根植于软件工程发展起来的新兴学科,目前已经成为软件工程研究和实践的一个重要领域。软件体系结构设计的一个核心问题是能否使用重复的体系结构模式,即能否达到体系结构级的软件重用。也就是说,能否在不同的软件系统中,使用同一体系结构。 C2体系结构风格作为一种经典的体系结构风格,它就具有平衡开发费用与近产品的共同性的特性。按照C2体系结构风格的规则,我们能够把各种粒度的构件集成到一个系统结构中。可以说,C2体系结构风格对软件结构和软件构件交互定义了一个良好的设计规范,同时还具有广泛的试验和工具。因而,它就为软件设计开发者提供了一
2、个有效的软件重用环境。 目前,大型企业的组织机构基本上都为树型结构,而且各个机构可能位于不同的地区。随着企业内部信息交互越来越频繁,分布式系统的应用越来越受到重视,且对系统的可扩展性及可维护性的要求也越来越高。,背景,1995年, University of California Irvine的RichardNTaylor等人在一篇题为“A Component And Message-Based Architectural Style For GUI Software”的论文中提出了一种新的体系结构风格,将其称为“C2风格”。这种风格的设计是用来支持图形化用户界面应用程序的需要,然而,很明显,
3、它还具有支持其他类型应用程序的潜力。如今,在JAVA平台上有许多中间件可以支持C2风格的实现。,定义,C2是一种用于用户界面密集的系统的软件体系结构风格。 在C2风格的体系结构中,连接件在构件之间转发消息,构件负责维护状态,进行操作,通过两个接口(顶端接口和底端接口)和其他构件交换消息。 构件之间的消息交换不能直接进行,而只能通过连接件来完成。每个构件接口最多只能和一个连接件相连,而连接件可以和任意数目的构件或连接件相连。,C2风格的中心原则,C2风格的中心原则是有限可视原则,或者说是下层独立的原则: 在C2风格的体系结构中,某一构件只能感知层次高于自己的构件所提供的服务,而不能感知到层次比自
4、己更低的构件的服务。 这种单向的传递性,有利于系统的维护和扩展。,C2风格的通信规则,C2中,所有构件间的通信必须通过消息来实现,这也是构件之间的唯一通信途径。每个构件都有一个顶端域、一个底端域。构件的顶端域定义了构件可以对哪些通知做出响应,以及可以发出哪些请求;构件的底端域定义了可以向下层发送哪些通知,以及可以响应下层的哪些请求。,C2架构风格,C2风格定义了两种类型的消息:向上发送的请求消息(Requests)和向下发送的通知消息(Notifications)。请求消息只能向上层传送而通知消息只能向下层传送。 通知消息的传递只对应于构件内部的操作,而和接收消息的构件的需求无关。,C2体系结
5、构风格元素构成,构件: 分别有top和bottom端口 只能和1个连接件相连 顶层域规定了该构件所能响应的通知消息集,以及它能向上产生的请求消息集 底层域规定了该构件所能向下产生的通知消息集,以及它能响应的来自于下层的请求消息集。,C2构件,C2构件包括4个内部成分: 内部对象:存储构件状态并实现构件所提供的操作。 包装器:内部对象上的包装器监控所有的操作请求,并通过底端接口发送通知。 对话:负责把接收到的外部消息映射成内部对象上的操作。 域转换器:是一个可选的,它可以修改一些消息使其能被其他构件理解。,C2构件的作用,对构件上方的连接件发送过来的通知消息提供响应; 对构件下方连接件产生的请求
6、消息执行相应的操作; 维护一些在对话框中定义好的约束条件。,C2消息,C2风格定义了两种类型的消息:向上发送的请求消息(Requests)和向下发送的通知消息(Notifications)。 请求消息只能向上层传送而通知消息只能向下层传送。 通知消息的传递只对应于构件内部的操作,而和接收消息的构件的需求无关。,C2连接件,连接件是负责构件之间消息的传递可以连接任何数量的C2构件和连接件。 连接件的主要职责是消息的路由和广播,另一个次要职责是消息的过滤。 (不过滤消息、通知消息过滤、优先过滤策略、消息屏蔽),C2风格特点,(1)基底独立性:构件不需要知道它下面的构件。一个反映构件内部对象状态改变
7、的通知消息对于构件的对话框是完全透明的。 (2)基于消息的通信:构件之间所有的通信只能通过消息进行这种需求最常见的情况是在用户接口系统中,应用需要异步处理的特性。 (3)多线程:这是另外一种异步处理的特性,它可以简化对于多用户和并行式应用计算的建模和编程。 (4)不共享地址空间:C2体系结构风格允许异构构件的集合,它没有规定构件的实现语言,并且,构件也有它自己的线程控制和内部对象。 (5)体系结构和实现相分离:许多潜在的性能问题都可以通过体系结构和具体实现的分离来解决。,C2对于构件接口的描述,Component : = Component component_name is Interfac
8、e component_message_interface Parameters component_parameters Methods component_methods behavior component_behavior context component_context End component_name;,C2对构件的描述,1 Component_message_interface := 2 Top_domain_interface 3 Bottom_domain_interface 4 Top_domain_interface : = 5 Top_domain is 6 Ou
9、t interface_requests 7 In interface_notifications 8 Bottom_domain_interface := 9 Bottom_domain is 10 Out interface_notifications 11 In interface_requests,12 Interface_requests := 13 request; | null; 14 Interface_notifications := 15 notification; | null; 16 Request := 17 Message name(request_paramete
10、rs) 18 Request_parmeters : = 19 to component_nameparameter_list 20 Notification := 21 Message_name parameter_liat,实例会议安排系统的C2风格,C2对MeetingInitiator构件的描述,component MeetingInitiator is interface top_domain is out GetPrefSet(); GetExclSet(); GetEquipReqts(); GetLocPrefs(); RemoveExclSet(); RequestWithd
11、rawal(to Attendee); RequestWithdrawal(to ImportantAttendee); AddPrefDates(); MarkMtg(d:date;l:lov_type); in PrefSet(p:date_mg); ExclSet(e:data_mg);,EquipReqts(eq:equip_type); LocPref(l:loc_type); behavior startup always_generate GetPrefSet, GetExclSet, GetEquipReqts, GetLocPrefs; received_messages P
12、refSet may_generate RemoveExclSet xor RequestWithdrawal xor MarkMtg; received_messages ExclSet may_generate AddPrefDates xor RemoveExclSet xor RequestWithdrawal xor MarkMtg; received_messages EquipReqts may_generate AddPrefDates xor RemoveExclSet xor RequestWithdrawal xor MarkMtg; received_messages
13、LocPref always_generate null; end MeetingInitiator;,C2对Attendee构件的描述,component Attendee is interface bottom_domain is out PrefSet(p:date_mg); ExclSet(e:date_mg); EquipReqts(eq:equip_type); in GetPrefSet(); GetExclSet(); GetEquipReqts(); RemoveExclSet(); RequestWithdrawal();,AddPrefDates(); MarkMtg(d
14、:date;l:loc_type); behavior received_messages GetPrefSet always_generate PrefSet; received_messages AddPrefDates always_generate PrefSet; received_messages GetExclSet always_generate ExclSet; received_messages GetEqipReqts always_generate EqipReqts; received_messages RemoveExclSet always_generate Ex
15、clSet; received_messages ReuestWithdrawal always_generate null; received_messages MarkMtg always_generate null; end Attendee;,C2对ImportantAttendee构件的描述,component ImportantAttendee is subtype Attendee(in and beh) interface bottom_domain is out LocPrefs(l:loc_type); ExclSet(e:date_mg); EquipReqts(eq:e
16、quip_type); in GetLocPrefs(); behavior received_messages GetLocPrefs always_generate LocPrefs; end ImportantAttendee;,C2对体系结构的描述,architecture MeetingScheduler is conceptual_components Attendee;ImportantAttendee;MeetingInitiator; connectors connector MainConn is message_filter no_filtering; connector
17、 AttConn is message_filter no_filtering; connector ImportantAttConn is message_filter no_filtering; architectural_topology(配置拓扑结构) connector AttConn connections top_ports Attendee; bottom_ports MainConn; connector ImportantAttConn connections top_ports ImportantAttendee; bottom_ports MainConn; connector MainConn connections top_ports AttConn;ImportantAttConn; bottom_ports MeetingInitiator; end MeetingScheduler;,C2对会议安排
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学美术艺术审美能力考察试卷及答案
- 医院信息化建设实施手册
- 现代家居设计理念与技巧讲座冲刺卷试卷及答案
- 家居装饰施工与验收规范
- 酒店餐饮服务创新与营销策略指南(标准版)
- 网络安全攻防演练与技术指南(标准版)
- 2025年音乐教师专业水平考核试题及答案
- 2025年农家乐项目策划师能力测试试题及答案
- 建筑节能技术与项目管理指南
- 交通运输行业安全管理与规范指南
- 2026年高考化学专项复习讲义:化学用语的正误判断(含详解)
- 餐饮店火灾事故
- 传染性疾病控制副高考试真题及答案
- 现场提升活动方案
- 混凝土环保管理制度
- 个人投资公司合同标准文本
- 医保管理工作制度96012
- GB/T 18983-2017淬火-回火弹簧钢丝
- 兰州大学引进人才专项经费管理实施细则
- 暖通施工组织设计暖通技术标
评论
0/150
提交评论