您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 软件体系结构描述语言-C2ppt课件
软件体系结构描述语言C2小组成员:1引言软件体系结构是根植于软件工程发展起来的新兴学科,目前已经成为软件工程研究和实践的一个重要领域。软件体系结构设计的一个核心问题是能否使用重复的体系结构模式,即能否达到体系结构级的软件重用。也就是说,能否在不同的软件系统中,使用同一体系结构。C2体系结构风格作为一种经典的体系结构风格,它就具有平衡开发费用与近产品的共同性的特性。按照C2体系结构风格的规则,我们能够把各种粒度的构件集成到一个系统结构中。可以说,C2体系结构风格对软件结构和软件构件交互定义了一个良好的设计规范,同时还具有广泛的试验和工具。因而,它就为软件设计开发者提供了一个有效的软件重用环境。目前,大型企业的组织机构基本上都为树型结构,而且各个机构可能位于不同的地区。随着企业内部信息交互越来越频繁,分布式系统的应用越来越受到重视,且对系统的可扩展性及可维护性的要求也越来越高。2背景1995年,UniversityofCaliforniaIrvine的Richard.N.Taylor等人在一篇题为“AComponentAndMessage-BasedArchitecturalStyleForGUISoftware”的论文中提出了一种新的体系结构风格,将其称为“C2风格”。这种风格的设计是用来支持图形化用户界面应用程序的需要,然而,很明显,它还具有支持其他类型应用程序的潜力。如今,在JAVA平台上有许多中间件可以支持C2风格的实现。3定义C2是一种用于用户界面密集的系统的软件体系结构风格。在C2风格的体系结构中,连接件在构件之间转发消息,构件负责维护状态,进行操作,通过两个接口(顶端接口和底端接口)和其他构件交换消息。构件之间的消息交换不能直接进行,而只能通过连接件来完成。每个构件接口最多只能和一个连接件相连,而连接件可以和任意数目的构件或连接件相连。4C2风格的中心原则C2风格的中心原则是有限可视原则,或者说是下层独立的原则:在C2风格的体系结构中,某一构件只能感知层次高于自己的构件所提供的服务,而不能感知到层次比自己更低的构件的服务。这种单向的传递性,有利于系统的维护和扩展。5C2风格的通信规则C2中,所有构件间的通信必须通过消息来实现,这也是构件之间的唯一通信途径。每个构件都有一个顶端域、一个底端域。构件的顶端域定义了构件可以对哪些通知做出响应,以及可以发出哪些请求;构件的底端域定义了可以向下层发送哪些通知,以及可以响应下层的哪些请求。6C2架构风格C2风格定义了两种类型的消息:向上发送的请求消息(Requests)和向下发送的通知消息(Notifications)。请求消息只能向上层传送而通知消息只能向下层传送。通知消息的传递只对应于构件内部的操作,而和接收消息的构件的需求无关。7C2体系结构风格元素构成构件:分别有top和bottom端口只能和1个连接件相连顶层域规定了该构件所能响应的通知消息集,以及它能向上产生的请求消息集底层域规定了该构件所能向下产生的通知消息集,以及它能响应的来自于下层的请求消息集。8C2构件C2构件包括4个内部成分:内部对象:存储构件状态并实现构件所提供的操作。包装器:内部对象上的包装器监控所有的操作请求,并通过底端接口发送通知。对话:负责把接收到的外部消息映射成内部对象上的操作。域转换器:是一个可选的,它可以修改一些消息使其能被其他构件理解。9C2构件的作用对构件上方的连接件发送过来的通知消息提供响应;对构件下方连接件产生的请求消息执行相应的操作;维护一些在对话框中定义好的约束条件。10C2消息C2风格定义了两种类型的消息:向上发送的请求消息(Requests)和向下发送的通知消息(Notifications)。请求消息只能向上层传送而通知消息只能向下层传送。通知消息的传递只对应于构件内部的操作,而和接收消息的构件的需求无关。11C2连接件连接件是负责构件之间消息的传递可以连接任何数量的C2构件和连接件。连接件的主要职责是消息的路由和广播,另一个次要职责是消息的过滤。(不过滤消息、通知消息过滤、优先过滤策略、消息屏蔽)12C2风格特点(1)基底独立性:构件不需要知道它下面的构件。一个反映构件内部对象状态改变的通知消息对于构件的对话框是完全透明的。(2)基于消息的通信:构件之间所有的通信只能通过消息进行这种需求最常见的情况是在用户接口系统中,应用需要异步处理的特性。(3)多线程:这是另外一种异步处理的特性,它可以简化对于多用户和并行式应用计算的建模和编程。(4)不共享地址空间:C2体系结构风格允许异构构件的集合,它没有规定构件的实现语言,并且,构件也有它自己的线程控制和内部对象。(5)体系结构和实现相分离:许多潜在的性能问题都可以通过体系结构和具体实现的分离来解决。13C2对于构件接口的描述Component::=Componentcomponent_nameisInterfacecomponent_message_interfaceParameterscomponent_parametersMethodscomponent_methods[behaviorcomponent_behavior][contextcomponent_context]Endcomponent_name;14C2对构件的描述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]15实例——会议安排系统的C2风格16C2对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;17C2对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;18C2对ImportantAttendee构件的描述componentImportantAttendeeissubtypeAttendee(inandbeh)interfacebottom_domainisoutLocPrefs(l:loc_type);ExclSet(e:date_mg);EquipReqts(eq:equip_type);inGetLocPrefs();behaviorreceived_messagesGetLocPrefsalways_generateLocPrefs;endImportantAttendee;19C2对体系结构的描述architectureMeetingSchedulerisconceptual_componentsAttendee;ImportantAttendee;MeetingInitiator;connectorsconnectorMainConnismessage_filterno_filtering;connectorAttConnismessage_filterno_filtering;connectorImportantAttConnismessage_filterno_filtering;architectural_topology(配置拓扑结构)connectorAttConnconnectionstop_portsAttendee;bottom_portsMainConn;connectorImportantAttConnconnectionstop_portsImportantAttendee;bottom_portsMainConn;connectorMainConnconnectionstop_portsAttConn;ImportantAttConn;bottom_ports
本文标题:软件体系结构描述语言-C2ppt课件
链接地址:https://www.777doc.com/doc-7099760 .html