软件体系结构-第5章.ppt
《软件体系结构-第5章.ppt》由会员分享,可在线阅读,更多相关《软件体系结构-第5章.ppt(64页珍藏版)》请在三一办公上搜索。
1、1,软件体系结构,北京理工大学计算机科学技术学院,徐 进,第五章,2,课程内容第一章 软件体系结构基本概念第二章 软件体系结构经典风格第三章 软件体系结构应用第四章 软件体系结构设计模式第五章 软件体系结构研究与发展,3,第5章 软件体系结构研究与发展5.1 软件体系结构的研究现状5.2 软件体系结构语言 5.1.1 ADL核心模型 5.1.2 ADL构成要素 5.1.3 几种ADL介绍5.3 软件体系结构形式化描述 形式化方法简述 软件体系结构抽象模型 5.2.3 Z标记形式化描述语言,4,5.1 软件体系结构的研究现状,软件体系结构已经成为国内外软件研究的热点,人们已经把解决复杂软件设计的
2、难题,以及提高软件设计效率和质量寄托在软件体系结构研究的突破上。然而,软件体系结构的技术研究从理论到实践还处在发展时期。主要研究包括:,1)软件体系结构形式化2)软件体系结构的描述语言、工具和环境3)软件体系结构经典风格、应用框架和设计模式的总结,5,1)软件体系结构形式化,用形式化体系解释体系结构抽象定义体系结构的精确语义,证明某种体系结构运用的必然性和充分性,进而扩展证明它的使用性,并且,作为验证结构合理性的基础,用于系统设计中的结构选取。主要软件体系结构的形式化体系:形式化对象关系表达:类属理论(Category Theory)形式化描述语言:Z标记语言(Z Notation)抽象代数理
3、论:抽象模型等等,形式化方法的两方面研究:,6,体系结构描述语言ADL(Architecture Description Language)用形式化的符号表示体系,进行建模和结构分析。抽象描述结构的形式,便于掌握系统全局和特征,便于分析系统的构成角色和特性,便于复用和继承已有结构,目标是体系结构自动化。,研究进展:ACME:描述系统结构交互机制Aesop:对体系结构特定风格的规范性描述C2:描述分布式可延展动态系统的结构MetaH:用于描述导航和控制体系结构Rapide:对体系结构描述中的动态行为建模并模拟运行SADL:用形式化对体系结构不同层次的细节描述Unicom:用公共接口协议连结构件,
4、粘合生成系统Wright:用于并发系统建模,可对死锁等动态行为分析,7,2)软件体系结构的工具和环境,描述语言和工具环境的关系:描述语言-研究语言的成分和表示能力工具环境-研究工程平台和系统建设能力描述语言的可用性,直接反映在工具所提供的环境中,软件体系结构工具环境应该具备的基本功能:提供设计规范提供多视角表达提供分层细化,以及性能分析可生成运行代码提供动态行为描述,可进行运行配置,8,ADL研究现状:认识不统一,ADL商业产品大都来自企业和学术团体,它们的手段和目标不尽相同。ADL研究虽然在界有影响,但并没有达到一般性的实际应用。,ADL具备的共同点:提供图形句法表示手段,给了形式化的句法和
5、语义提供分布式系统建模描述除支持数据流和控制流连接,很少支持其他类型的连接支持详细结构层次的表示,并支持子结构的模板实例化除了一般的注释说明,不支持设计的依据和历史跟踪,5.2 软件体系结构语言ADL,9,各种ADL目前存在的问题:描述结构的实际处理角度不同。有从硬件结构的角度,也有从软件优先级角度的。描述结构的范围不同。大部分都包含管道过滤器体系结构形式,有的包含了层次式部件结构,有的包含了对象式结构,还有的包含了动态体系以及类继承体系。描述结构支持一致性的完整程度不同。大部分支持内部一致性,有的支持部件间的一致性。描述结构在分析能力的支持方面存在明显不足。描述结构在处理相同体系结构的不同实
6、例能力上,或者说可变性方面,存在明显不足。,10,IEEE P1471规定了应用体系结构的描述标准:(2000.9),体系结构的存档要求能区别个体及其关系体系结构视点,体系结构视点的选择体系结构视点之间的一致性体系结构原理,ADL应该具备的基本特点:能使用较小的独立体系结构元素来建造软件系统;关注的是构件和连接件描述,而无需关注实现;构件和连接件以及体系结构都是开发设计的重用部件;描述的每个元素都有自己局部的结构,支持动态变化组合;可描述不同体系结构的关联;可对描述的体系结构进行性能及功能的分析。,11,所有ADL都围绕着被称为“软件体系结构核心模型”而设计的。软件体系结构核心模型由五个基本元
7、素:构件、连接件、配置、端口和角色。,5.2.1 ADL核心模型,软件体系结构,配置,构件,连接件,端口,角色,1:N,1:N,1:N,返回本章目录,12,构件:是软件结构的构造块,是计算与状态存在的场所构件的大小:可小到只有一个过程或大到整个应用系统构件的存储:有自己的或与其它成分共享的存储和执行空间构件的属性:如类型、语义、状态,等,1)构件的概念,5.2.2 ADL的构成要素,构件构件接口(端口)构件类型构件演变,返回本章目录,13,构件接口(端口):构件与外部交互的端口点。构件接口可以有多个,不同的接口对应不同的操作。ADL中的构件接口说明,提供构件消息和操作变量的描述手段,能定义构件
8、提供的计算及约束条件。构件类型:构件是按照指定的类型实例化的,类型可参数化。ADL应具有构件类型保证机制。构件演化:构件通过子类型形成特性细化的特殊构件。目前只有少数几种ADL部分地支持构件演化。,14,连接件:软件结构的构造块。建立构件交互的规则。与构件的区别:不直接对应编译单元。连接件包括:消息路由兼容设备、共享变量、是入口表、缓冲区、连接器指令、动态数据结构、内嵌在代码中的远程过程调用序列、初始化参数、客户服务协议、管道、数据库、应用程序之间的查询语言,等。,2)连接件的概念,连接件连接件接口(角色)连接件协议,15,连接件接口(角色):由一组角色组成,参与者对应交互的角色。例如:二元消
9、息传递连接件有两个角色,发送者和接收者。而广播连接件有多个角色,一个发送者角色,多个接收者角色。连接件协议:提供规定类型的通信交互的规范。协议可以是独立的或是内嵌在交互机制中实现的。ADL应提供协议的交换语法,能够规划交互协议,建立内部连接件的依赖关系以及用途边界。通过强制风格和角色限制来保证连接约束。,16,体系结构配置-是用来描述体系结构的构件与连接件的连接图。配置信息可以用来确定构件的连接、接口的匹配,通信的正确性以及实现的组合行为语义。文本和图形说明-ADL应该以简单的、可理解的语法来配置结构化信息。除了文本形式外,还提供图形说明形式,并且它们之间可以互换。多视图、多场景的体系结构方法
10、成为研究方向。复合及合成-复合是包括将一个整体作为另一个的部分构成更大的配置。这样可以适应异构和不断变化的结构,3)体系结构配置的概念,结构配置文本和图形说明复合及合成,17,5.2.3 几种ADL介绍,目前在软件体系结构研究领域出现多种体系结构描述语言,既有针对特定领域的ADL,也有以通用性为目标的ADL。不同的ADL描述体系结构的侧重点不尽相同。,返回本章目录,例如:,18,1)UniCon(Universal Cennection)语言,UniCon是 Caregie Mellon 大学的 Mary Shaw 等人研究的成果。它主要的目标是支持对体系结构的描述,针对构件连接器模型,区分不
11、同需要的构件,支持构件打包、定位、交互模式描述和编码。,UniCom语言的形式,构件,连接器,1.表演者2.接口3.类型实现,1.角色2.协议3.类型实现,19,构件规范 表演者:实体命名接口:调用形式(性能或交互性的功能)类型:可以是过滤器、子程序、知识源,事件处理等,连接器规范角色:实体命名协议:角色与表演者对应的规则、交互约束限定、性能类型:可以是管道、过程调用、事件驱动、等,成分特性原始构件由体系结构之外的语言描述;合成构件用体系结构语言描述连接器角色若为多种角色,则多端情况可用多态方式构件和连接器是互补和对称的,20,UniCon语言构件描述示例,Component Real_Tim
12、e_System interface is type General implementation is uses client interface RTclient PRIORITY(10)end client uses server interface RTserver PRIORITY(10)end server establish RTM-realtime-sched with clientapplicetion1 as load serverapplicetion2 as load serverservices as load ALGORITHM(rate_monotonic)end
13、 RTM-realtime-sched establish RTM-remote-proc-call with clienttimeget as caller servertimeget as definer IDLTYPE(Mach)end RTM-remote-proc-call end implementationend Real_Time_System,实时系统构件说明:1.实时系统接口是通用类型2.实时系统的实现,Client接口:优先级等 Server接口:优先级等 建立实时管理的实时调用程序 Client和Server加载应用load 和服务算法 建立实时管理的远程调用程序 Cl
14、ient和Server交互方式,21,Connector RTM-realtime-sched protocol is type RTscheduler role load is load end protocol implementation is built in end implementationend RTM-realtime-sched,实时调度表连接件:1.协议 类型是实时调度表 角色是加载2.实现是在执行中,UniCon语言连接件描述示例,22,2)C2 体系结构语言,C2支持事件风格的用户界面体系结构描述语言。配合有设计环境Argo系统。使用可替换、可重用的GUI构件开发体系
15、结构。重点是构件的动态改变,以满足某些GUI特性。C2的连接件负责构件之间的消息传递,C2的构件只能通过连接件完成消息传递。消息要么是请求其它构件执行某项操作,要么是通知其它构件改变状态,请求消息只能向上层传递,通知消息只能向下层在内部构件间传递。C2的构件维持状态、执行操作并通过top和bottom端口与其它构件交换信息。每个构件最多只能和一个连接件相连,而连接件可以和任意数目的构件相连。,23,Component_message_interface:=top_domain_interface bottom_domain_interfacetop_domain_interface:=top_
16、domain is out interface_requests in interface_notificationsbottom_domain_interface:=bottom_domain is out interface_ notifications in interface_requestsinterface_requests:=request;|nullinterface_ notifications:=notification;|nullrequest:=message_name(request_parameters)request_parameters:=to componen
17、t_nameparameter_listnotification:=message_nameparameter_list,C2体系结构形式化描述形式,构件,顶部接口,底部接口,提出请求,接受通知,接受请求,发出通知,24,C2体系结构形式化描述示例,Attendee-1,Attendee-m,ImportantAttendee-1,ImportantAttendee-n,MeetingInitiator,Attconn,Mainconn,ImportantAttconn,C2会议安排系统,包括3个功能构件:发起人、多位出席者和重点出席者,3个连接件为主要连接件、出席连接件和重要出席连接件。某些
18、消息由发起人同时发给出席者和重要出席者,但某些消息只能传送给重要出席者。因为一个C2构件在top和bottom端分别只有一个通信端口,并且所有消息路由功能都与连接件相关,所以主要连接件分别与出席连接件和重要出席连接件相连,为保证出席连接件和重要出席连接件的top和bottom端能分别接收与它们相连的构件消息。,25,3)Wright体系结构语言,Wright是一种特定的形式化体系结构描述语言。它的连接器针对离散的、异步的行为关系模型构件,并可限定配置。,Wright体系结构形式化描述示例,Capitalize,Split,Upper,Merge,示例描述大写字母转换器,系统将读入的字符流分离成
19、需要转换和不需要转换的两部分,经过转换后的部分再与不需要转换的部分合并成输出流。系统运用了经典的管道过滤器结构。,p1,p2,p3,26,Wright构件描述,Component SplitFilter port Input read data until end-of-data is reached port Left output data repeatly Port Right output data repeatly computation repeatly read from input,then output,alternating between Left and Righ Po
20、rts,分离过滤器构件的描述分为两部分:构件端口:输入端口数据到达时读数据 左端口反复地输出数据 右端口反复地输出数据构件的计算:在左右端口之间交替地,反复读输入,然后输出,27,Connector Pipe Role Source deliver data repeatly,signalling termination by close Role sink read data repeatly,closing at or before end data Glue sink receives data in same order delivered by source,连接器管道描述:数据源角
21、色(Source)反复地交付数据,直到关闭信号出现则终止数据池角色(sink)反复地读数据,在数据结束或结束之前关闭粘合(glue)按照数据源交付的同一次序接收数据,Wright连接件描述,在Wright中,用管道过滤器风格来描述由数据源到接收器的模式。这样在大写字母转换系统中的管道,可以直接用该风格的连接器。指定连接到大写转换器的工作,由具体实际应用来完成描述。,28,Configuration Capitalize Component SplitFilter Component UpperCase Connector Pipe.Instances Split=SplitFilter;upp
22、er=UpperCase;Merge=MergrFilter;p1,p2,p3=Pipe Attachments Split.Left as p1.Source Upper.Input as p1.Sink;Split.Right as p2.Source;Merge.Left as p2.Sink;Upper.Output as p3.Source Merge.Right as p3.Sink;End Capitalize,Wright配置描述示例,配置中说明三部分内容:1.定义各构件和连接件;2.声明给定类型的不同实例;3.附件说明了连接件及构件的组合约束。,29,Wright的风格定义和
23、接口类型,Wright提供设计人员,寻找一种特定的体系结构风格或模式来描述自己的设计。把设计限制在某种风格范围,可以共享合理的属性集合与词汇,便于关键部分的分析和验证。可以声名一系列构件和连接件的类型,引入公共词汇集,并通过类型实例化说明来定义具体的使用。(例如:管道过滤器风格),Interface type dataIntput=read data repeatedly,closing the port at or before end of dataInterface type dataOutput=write data repeatedly,closing the port to sig
24、nal end of data,Style pipe_Filter Connector Pipe Role Source deliver data repeatly,signalling termination by close Role sink read data repeatly,closing at or before end data Glue sink receives data in same order delivered by source,还可以通过接口类型说明,使同类的端口说明简单一致。,30,Wright接口类型和参数化构件,通过接口类型,可以使同一种风格具有不同计算。
25、例如:UNIX的stdin、stdout和stderr函数组,都属于管道过滤器风格构件,可以使用参数化构件,来定义一个通用的过滤器。然后用它对每个不同计算过程的过滤器分别说明。其中的端口说明使用了统一的接口类型来说明。,Component UNIX_filter(c:computation)port stdin=dataInput port stdout=dataOutput port stderr=dataOutput Computation=C,31,Wright还提供风格的约束描述,采用一阶谓词逻辑表示。,Wright的风格约束,其中“”表示约束。,C:Connectors Type(C
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 体系结构
链接地址:https://www.31ppt.com/p-6610798.html