软件体系结构描述语言-C2ppt课件.ppt
25页篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统软件体系结构描述语言软件体系结构描述语言 C2小组成员:1篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统引言引言软件体系结构是根植于软件工程发展起来的新兴学科,目前已经成为软件工程研究和实践的一个重要领域软件体系结构设计的一个核心问题是能否使用重复的体系结构模式,即能否达到体系结构级的软件重用也就是说,能否在不同的软件系统中,使用同一体系结构C2体系结构风格作为一种经典的体系结构风格,它就具有平衡开发费用与近产品的共同性的特性按照C2体系结构风格的规则,我们能够把各种粒度的构件集成到一个系统结构中可以说,C2体系结构风格对软件结构和软件构件交互定义了一个良好的设计规范,同时还具有广泛的试验和工具因而,它就为软件设计开发者提供了一个有效的软件重用环境目前,大型企业的组织机构基本上都为树型结构,而且各个机构可能位于不同的地区随着企业内部信息交互越来越频繁,分布式系统的应用越来越受到重视,且对系统的可扩展性及可维护性的要求也越来越高。
2篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统背景1995年, University of California Irvine的Richard.N.Taylor等人在一篇题为“A Component And Message-Based Architectural Style For GUI Software”的论文中提出了一种新的体系结构风格,将其称为“C2风格”这种风格的设计是用来支持图形化用户界面应用程序的需要,然而,很明显,它还具有支持其他类型应用程序的潜力如今,在JAVA平台上有许多中间件可以支持C2风格的实现3篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统定义定义C2是一种用于用户界面密集的系统的软件体系结构风格在C2风格的体系结构中,连接件在构件之间转发消息,构件负责维护状态,进行操作,通过两个接口(顶端接口和底端接口)和其他构件交换消息构件之间的消息交换不能直接进行,而只能通过连接件来完成每个构件接口最多只能和一个连接件相连,而连接件可以和任意数目的构件或连接件相连。
4篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统C2风格的中心原则 C2风格的中心原则是有限可视原则,或者说是下层独立的原则:在C2风格的体系结构中,某一构件只能感知层次高于自己的构件所提供的服务,而不能感知到层次比自己更低的构件的服务 这种单向的传递性,有利于系统的维护和扩展5篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统C2风格的通信规则 C2中,所有构件间的通信必须通过消息来实现,这也是构件之间的唯一通信途径每个构件都有一个顶端域、一个底端域构件的顶端域定义了构件可以对哪些通知做出响应,以及可以发出哪些请求;构件的底端域定义了可以向下层发送哪些通知,以及可以响应下层的哪些请求6篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统C2架构风格C2风格定义了两种类型的消息:向上发送的请求消息(Requests)和向下发送的通知消息(Notifications)请求消息只能向上层传送而通知消息只能向下层传送。
通知消息的传递只对应于构件内部的操作,而和接收消息的构件的需求无关7篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统C2体系结构风格元素构成构件:分别有top和bottom端口只能和1个连接件相连顶层域规定了该构件所能响应的通知消息集,以及它能向上产生的请求消息集底层域规定了该构件所能向下产生的通知消息集,以及它能响应的来自于下层的请求消息集8篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统C2构件C2构件包括4个内部成分:内部对象:存储构件状态并实现构件所提供的操作包装器:内部对象上的包装器监控所有的操作请求,并通过底端接口发送通知对话:负责把接收到的外部消息映射成内部对象上的操作域转换器:是一个可选的,它可以修改一些消息使其能被其他构件理解9篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统C2构件的作用对构件上方的连接件发送过来的通知消息提供响应;对构件下方连接件产生的请求消息执行相应的操作;维护一些在对话框中定义好的约束条件。
10篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统C2消息C2风格定义了两种类型的消息:向上发送的请求消息(Requests)和向下发送的通知消息(Notifications)请求消息只能向上层传送而通知消息只能向下层传送通知消息的传递只对应于构件内部的操作,而和接收消息的构件的需求无关11篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统C2连接件连接件是负责构件之间消息的传递可以连接任何数量的C2构件和连接件连接件的主要职责是消息的路由和广播,另一个次要职责是消息的过滤不过滤消息、通知消息过滤、优先过滤策略、消息屏蔽)12篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统C2风格特点(1)基底独立性:构件不需要知道它下面的构件一个反映构件内部对象状态改变的通知消息对于构件的对话框是完全透明的(2)基于消息的通信:构件之间所有的通信只能通过消息进行这种需求最常见的情况是在用户接口系统中,应用需要异步处理的特性。
(3)多线程:这是另外一种异步处理的特性,它可以简化对于多用户和并行式应用计算的建模和编程(4)不共享地址空间:C2体系结构风格允许异构构件的集合,它没有规定构件的实现语言,并且,构件也有它自己的线程控制和内部对象(5)体系结构和实现相分离:许多潜在的性能问题都可以通过体系结构和具体实现的分离来解决13篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统C2对于构件接口的描述 Component :: = Component component_name is Interface component_message_interface Parameters component_parameters Methods component_methods [behavior component_behavior] [context component_context] End component_name;14篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统C2对构件的描述1 Component_message_interface ::= 2 Top_domain_interface3 Bottom_domain_interface4 Top_domain_interface :: =5 Top_domain is 6 Out interface_requests7 In interface_notifications8 Bottom_domain_interface ::=9 Bottom_domain is10 Out interface_notifications11 In interface_requests12 Interface_requests ::=13 {request; } | null;14 Interface_notifications ::=15 {notification; } | null;16 Request ::=17 Message name(request_parameters)18 Request_parmeters :: =19 [to component_name][parameter_list]20 Notification ::=21 Message_name [parameter_liat] 15篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统实例实例——会议安排系统的会议安排系统的C2风格风格16篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统C2对MeetingInitiator构件的描述component MeetingInitiator is interface top_domain is out GetPrefSet(); GetExclSet(); GetEquipReqts(); GetLocPrefs(); RemoveExclSet(); RequestWithdrawal(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 PrefSet 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 LocPref always_generate null;end MeetingInitiator; 17篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统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: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 ExclSet; received_messages ReuestWithdrawal always_generate null; received_messages MarkMtg always_generate null; end Attendee; 18篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统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:equip_type); in GetLocPrefs(); behaviorreceived_messages GetLocPrefs always_generate LocPrefs;end ImportantAttendee;19篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统C2对体系结构的描述architecture MeetingScheduler is conceptual_components Attendee;ImportantAttendee;MeetingInitiator; connectors connector MainConn is message_filter no_filtering; connector AttConn is message_filter no_filtering; connector ImportantAttConn is message_filter no_filtering; architectural_topology(配置拓扑结构) connector AttConn connectionstop_ports Attendee;bottom_ports MainConn;connector ImportantAttConn connectionstop_ports ImportantAttendee;bottom_ports MainConn;connector MainConn connectionstop_ports AttConn;ImportantAttConn;bottom_ports MeetingInitiator;end MeetingScheduler;20篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统C2对会议安排系统的描述system MeetingScheduler_1 is architecture MeetingScheduler with Attendee instance Att_1,Att_2,Att_3; ImportantAttendee instance ImpAtt_1,ImpAtt_2; MeetingInitiator instance MtgInit_1; end MeetingScheduler_1;21篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统各种软件体系结构描述语言的比较各种软件体系结构描述语言的比较描述语描述语言言特性特性接口接口类型类型语义语义约束约束演化演化非功能属性非功能属性UniCon支持显式的连接子用role进行建模预定义连接子类型隐含在连接子类型中;可以使用属性列表定义语义信息通过接口进行约束;能够限制指定的role所能连接的player类型无用于可调度性分析的属性C2 SADL支持显式的连接子通过独立的port与构件进行交互,接口区分provided和required基于协议的可扩展类型系统通过消息过滤器支持部分语义通过语义进行约束;风格不变量(每个port只与一个链接相关)上下文反射接口;可演化的过滤机制无ACME支持显式的连接子用role进行建模基于协议的可扩展的类型系统;使用模板实现参数化不支持,但可以在属性列表中使用其它ADL的语义模型通过接口和类型对实例进行约束通过extends对结构进行子类型化通过属性列表进行定义,但是不对其进行操作xADL支持显式的连接子用interface进行建模可扩展的类型系统,可自定义类型不变量和前置,后置条件通过接口和语义进行约束支持产品线建模,版本建模无22篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统体系结构描述语言对配置的建模能力的比较体系结构描述语言对配置的建模能力的比较 描述语言特性易理解性组装性精化/易追踪性异构性易伸缩性演化性动态性约束非功能属性UniCon使用显式的连接子来描述配置显式的文本和图形化规约;配置描述可以是分布式的通过复合构件和连接子实现组装支持系统生成;对实现有所限制仅支持预定义的构件和连接子类型;支持构件的包装受益于显式的配置和可变数目的连接子角色对体系结构的局部描述提供了部分支持;受益于显式的配置无连接子只能和role相连无C2 SADL显式的体系结构拓扑结构显式的精确的文本与图形化规约支持组装;通过内部构件的体系结构加以支持无通过内部构件的体系结构加以支持;支持Java、C++和Ada的开发得益于显式的配置和可变的连接子端口;用于自身工具集的构建支持体系结构的局部描述;受益于显式的的配置;构件间的相互依赖最小化;异构的连接子不可预期的动态性;支持元素的插入,删除与重新连接确定的风格不变量无23篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统体系结构描述语言对配置的建模能力的比较体系结构描述语言对配置的建模能力的比较 描述语言特性易理解性组装性精化/易追踪性异构性易伸缩性演化性动态性约束非功能属性ACME显式的attachment显式的精确的文本规约模版,表示层以及表示层映射表示层映射开放的属性列表;需要显式的ADL之间的映射得益于显式的配置;但受制于固定的角色数量受益于显式的配置;一阶的家族概念无Port只能与role相连通过属性列表进行定义,但是不对其进行操作xADL使用显式的连接子来描述配置显式的精确的文本规约通过复合构件和连接子实现组装支持系统生成;有一定的工具支持支持不同语言的实现体;实现与规约分离得益于显式的配置;使用schema从而具有schema的可扩展性受益于显式的配置;支持产品线和版本概念使用variant支持一定的动态能力构件的interface只能与连接子的interface相连无24篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统谢谢!25。





