软件体系结构-第2章_第1页
软件体系结构-第2章_第2页
软件体系结构-第2章_第3页
软件体系结构-第2章_第4页
软件体系结构-第2章_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

1、1徐徐 进进2课程内容课程内容第一章第一章 软件体系结构基本概念软件体系结构基本概念第二章第二章 软件体系结构经典风格软件体系结构经典风格第三章第三章 软件体系结构应用软件体系结构应用第四章第四章 软件体系结构设计模式软件体系结构设计模式第五章第五章 软件体系结构研究与发展软件体系结构研究与发展3第第2 2章章 软件体系结构的经典风格软件体系结构的经典风格2.1 2.1 管道过滤器风格管道过滤器风格2.22.2 主程序与子过程风格主程序与子过程风格2.3 2.3 数据抽象与面向对象风格数据抽象与面向对象风格2.42.4 事件驱动隐式调用风格事件驱动隐式调用风格2.52.5 黑板知识库风格黑板知

2、识库风格2.62.6 虚拟机(解释器)风格虚拟机(解释器)风格2.7 2.7 过程控制回路风格过程控制回路风格2.82.8 部件链接器部件链接器C2C2风格风格4经典体系结构:总结软件系统组织结构的惯用形式,认识特定软件结构的原理和价值,提供软件体系结构设计的选择空间。某种结构风格的基本成分和连接方式是什么?某种结构风格的基本形式是什么?某种结构风格潜在的计算模式是什么?某种结构风格中不变的因素是什么?某种结构风格可以使用的示例是什么?某种结构风格的优缺点是什么?讨论中考虑的问题:5管道过滤器结构特征过滤器A过滤器B过滤器C过滤器D过滤器E增量计算的 功能模块输入/输出 数据流以数据流向的过程

3、为核心(也称:数据流风格)过滤器自身功能独立而完整,相互之间无状态交互过滤器不需要知道其他过滤器的存在与否过滤器仅对输入的数据流有限制,并保证输出流的正确系统内各部分的执行,与整体系统的最终输出不相关管道1管道2管道3管道4管道5管道6管道8管道7返回本章目录6管道过滤器软件成分管道过滤器的连接器被动过滤器:通过事件或过程调用激发动作,接受前续成分推入的内容主动过滤器:作为独立的过程或线程任务,主动取前续成分的内容。数据源:作为系统的输入过滤器,提供探测数据、采集数据的功能,以 及主动推出数据,激发或者等待后继成分启动。数据池:作为收集结果的过滤器,分为主动取数据和被动接受推入数据 两种方式。

4、管道是两个过滤器的连接器,是先进先出的数据缓冲区。如果两个主动式过滤器相连,管道需要有同步控制能力。如果过滤器的行为受到相邻过滤器的控制,管道就是被动过滤器的过程调用实现。7管道过滤器形式的示例(1)数字通信系统结构简略描述:信息源加密器编码器调制器 发送设备解调器解码器解密器 接收设备受信者噪声源信息源: 把各种可能的数据转换成原始电信号。发送设备: 对原始电信号完成信号加密、差错控制编码和调制解调。信道: 信号传输的通道也相当于过滤器,因为它对传输信息进行适 当的处理。接收设备: 与发送设备反向。同步控制部件:图中没有标出。因为它在其中的位置并不固定,它负责收发 双方的一致性控制。信道8

5、编辑存储编辑存储光谱采样集光谱采样集 图形处理图形处理(光谱筛选)(光谱筛选) 存储调整存储调整建模样本集建模样本集 建模建模 处理处理 模型模型 管理管理建摸公式建摸公式 管理管理给定性质给定性质模型模型建模样本集建模样本集光谱采样集光谱采样集建摸公式建摸公式建模公式建模公式模型模型管理要求管理要求图符说明:图符说明:控制流:控制流:数据流:数据流:I/O:处理:处理:化学光谱分析系统化学光谱分析系统管道过滤器形式的示例(2)9管道过滤器形式的优势 对整个系统的理解简单化。可理解系统的各功能为抽象“黑盒子”。 支持可维护性,容易替换。只要输入/输出管道达成一致的任何两个过滤器(可能一个是另一

6、个的扩充性或修改),则可以任意替换。 支持复用。一个过滤器可以被多次挂接,只要它们对数据的需求场合是一致的。 支持并发设计。可以将存在并发可能的过滤器,在调度算法的基础上,组织为多任务并发系统。 系统的结构清晰,容易进行某些性能的分析,例如:数据流量、死锁问题,计算正确性等等。10管道过滤器形式的不足 由于过滤器的独立特性,每个过滤器完成从输入到输出的转换需要成批量而完整,这样,为了交互必须表示的过滤内容与输出的流方式差异很大,导致实现交互困难。 由于支持并发设计,两个相互独立的过滤器,如果存在同步问题,则需要花较大的精力去协调。 每个过滤器的输出只强制公共的命名,要保持数据的一致必须对传输的

7、数据解析,这样造成系统效率资源的损耗,以及程序复杂性增加。 直接调用被动过滤器,使过滤器的重新组织产生困难。 需要处理数据在管道中的阻塞状态。11主程序子过程1子过程2子过程n主程序与子过程的结构特征:主程序将基于功能分解的子过程,通过调用的形式连接起来;子过程可作为主程序,继续以同样的方式连接子过程。子过程k1子过程k2调用返回子过程f返回本章目录12主程序与子调用结构的成分主程序与子调用结构的连接器主程序:基本的程序主体成分子过程:各种层次上的函数,可调用成分模块包:由主程序子过程组成的大粒度结构成分函数库:通用子过程集合过程调用机制13主程序与子调用结构的优势 由于直接对应过程性程序语言

8、机制,因此,具有代码率高的优势主程序与子调用结构的缺陷 基于功能的过程嵌套式分解使系统的维护困难。 因为基于功能的分解,只能覆盖特定的问题,不具普遍性。所以,子过程实现的功能成分很难复用。14对象实体对象实体对象实体对象实体对象实体对象实体对象实体对象实体消息消息消息消息消息消息消息消息消息消息消息 对象实体是具有自身属性和行为能力的主动的独立个体。 任何事务处理都是对象采用“消息”相互作用的结果。 发送消息给对象是“请求”,接受的对象是“响应”请求,完成自身的行为或动作,也可以向其他对象发出请求。面向对象结构的特征返回本章目录15化学光谱分析系统化学光谱分析系统给定给定性质性质光谱光谱文件文

9、件光谱光谱采样采样集集建摸建摸公式公式建模建模样本集样本集模型模型 设定消息设定消息采样消息采样消息请求消息请求消息请求消请求消息息采集消采集消息息存储消息存储消息返回消息返回消息输出消息输出消息调整消息调整消息建模消息建模消息管理消息管理消息面向对象形式的示例16面向对象结构的成分面向对象结构的连接器类:对象实体的抽象,可复用的类型模板。继承类:抽象类型的复用,提供类的可扩充、可变化方式对象:某类的实体,具有属性和各种行为能力的独立执行体消息: 与对象的联系仅通过消息。发送请求给对象,向对象发出执行它动作的信息。接受请求的对象,根据自身的属性状态,完成动作,也可以向其它对象发出请求,并且可以

10、同时发出多个请求,除非它继续的工作与发出的请求有同步关系。多态机制: 相关的对象行为,可以通过相同的消息形式。这正是行为的多种形态概念。所谓相关,是指同范畴对象(有继承关系类的实体对象是同范畴的)。同样的消息,连接不同的执行成分,这就是多态机制。17面向对象结构的优势 接近人们的认知习惯,即:事物主体和事物行为是不可分的整体,处理事务的关注点只是事物可操作的外部行为。 实现真正意义的信息封装,把对象的属性和行为封装在一起,对外可见的只有操作。 稳定的结构,系统建造的基础依赖于独立的对象实体,而不是处理过程。这使改变或增加系统的处理过程与系统的整体架构关联减弱,因为,大部分的修改是对象个体上的行

11、为扩充,或是增加新的对象成分。 本身的并发特性,支持普遍应用的分布式系统。 实体对象比起过程在语义上容易理解一致,因此更容易复用;类和继承使软件成份又达到更高层的复用。18面向对象结构的缺陷对象的标识是发送消息必须知道的,如果标识被改变,消息就不知去向。在系统中对象本来是独立的,但他们必须相互知道、懂得和理解,否则将无法协同完成工作。这一点又使得他们似乎很密切相关,互为依赖。对象接受多个来自不同请求者的同一个消息,所得到的结果有时不可预测,因为其自身的状态属性可能被改变,这种情况系统必须考虑,并付出代价。19外部实体外部实体1外部实体外部实体n事件过滤事件过滤1事件过滤事件过滤n中断服务中断服

12、务n中断服务中断服务1系统系统消息消息调度调度应用应用A 消息消息 调度调度应用线程应用线程1应用线程应用线程n应用应用B 消息消息 调度调度系统传送系统传送系统传送系统传送消息发送消息发送消息发送消息发送事件事件事件事件1)1)外部事件以中断方式被接受;外部事件以中断方式被接受;2)2)接受后的事件,通过统一的形式接受处理;接受后的事件,通过统一的形式接受处理;3)3)在系统的统一调度下在系统的统一调度下, ,事件被转换为消息发送到对应的应用队列中;事件被转换为消息发送到对应的应用队列中;4)4)每个应用队列通过消息循环机制,连接应用线程操作每个应用队列通过消息循环机制,连接应用线程操作应用

13、线程应用线程1应用线程应用线程n基本过程基本过程消息消息等待等待 B消息消息等待等待 A返回本章目录20指外部事件,包括硬件设备和软件的应用发出的请求,指外部事件,包括硬件设备和软件的应用发出的请求,通过中断方式形成为消息通过中断方式形成为消息事件驱动事件驱动隐式调用隐式调用指消息不是直接地被各响应的处理操作接收,而是通过指消息不是直接地被各响应的处理操作接收,而是通过了隐藏在中间的一个层次(透明访问概念的体现)。了隐藏在中间的一个层次(透明访问概念的体现)。事件驱动和隐式调用结构概念事件驱动和隐式调用结构概念21隐式调用的方式隐式调用的方式两种发送方式两种发送方式点发式:经过中间转发,一点到

14、一点响应点发式:经过中间转发,一点到一点响应广播式:经过中间转发,一点到多点响应,也叫增生广播式:经过中间转发,一点到多点响应,也叫增生异步方式异步方式发送成分与接收成分之间采用异步方式,各自独立,不发送成分与接收成分之间采用异步方式,各自独立,不受约束。其限定和约束由中间隐式层处理。受约束。其限定和约束由中间隐式层处理。消息过滤消息过滤 变换:转变消息形式成为某种统一的类型和取值范围变换:转变消息形式成为某种统一的类型和取值范围 抑制:截获或阻止某种消息抑制:截获或阻止某种消息 转发:转发经过某种处理的消息到需要响应的成分转发:转发经过某种处理的消息到需要响应的成分22事件驱动和隐式调用结构

15、的示例源对象源对象 注册连接提供监听对象注册和注销的方法 接口登记源对象的操作方法监听对象监听对象监听对象监听对象监听对象 事件驱动机制 事件状态对象 事件状态对象JavaBean事件驱动 适配转发类 适配转发类源对象:产生事件的对象。监听对象:响应事件的对象。事件驱动机制:通过监听注册和事件接口,连接源对象和监听对象。适配器:一组响应事件的组装配发。事件状态:封装事件的发生时的类型、位置等信息。23转换接口对象输入操作事件驱动和隐式调用分析 用户按下鼠标或键盘的一个键,操作系统的AWT(抽象窗口工具)将不同平台的信息转换成统一的事件对象。然后,将对象事件及状态,作为参数,向接口对象发出请求。

16、接口对象中有已经注册的监听对象,通过适配对象向监听对象发出该事件。这样,一个输入操作事件,就被监听对象接收并响应处理它。鼠标对象 注册的 监听对象菜单条对象文本框对象事件状态对象适配对象复选框对象适配对象键盘对象24事件驱动和隐式调用结构的优势在消息与响应中间建立隐式层,完成消息形式的统一处理及统一调度,对接受消息的成分进行必要的管理和控制。使请求成分与响应成分之间形成松散耦合关系。可以动态调整事件的请求与响应关系,为灵活设计创造了条件支持软件复用。由于成分之间的没有直接的联系,任何已有的软件成分只要处理逻辑适用,都可以无所顾忌地使用,将一切限定留给中间层处理。使系统更易维护。替换某一软件成份

17、,除了中间转接的适应,对其他成分影响极小。对于异步并发系统是一种极好的控制方式。25事件驱动和隐式调用结构的不足请求成份和接收成份完全自主而独立,不易管理和控制,需要消耗较大系统的精力去控制,包括:必要识别、转换和统一。相比直接方式的连接,增加了中间层必要的消耗,包括时间和资源,提升系统运行效率成为系统的关键所在。26 黑板(共享状态 和策略数据)知识源1知识源8知识源7知识源6知识源3知识源4知识源2知识源5以黑板作为协同操作的核心,状态是核心控制的依据每个知识源作为问题求解的独立单位知识源需要协同完成一个事务的多个计算求解步骤协同的策略和调度算法,作为特殊的知识源由特殊的知识源改变操作的核

18、心状态黑板知识库结构要点返回本章目录27黑板知识库结构的成分知识源:软件中独立的处理成分。执行成分的结果和状态,以及决策成分的指令都作为知识源提供给黑板,并主动从黑板获取继续执行的操作数据和指令黑板: 系统存储和数据管理的机制。存储系统解决问题所用的相关基础知识,以及系统运行中各个知识源产生的状态、计算结果和决策方案等28知识库黑板知识库结构的示例专家系统(Expert System)基本模型模型库事实库规则库 知识维护界面 系统应用界面应用信息数据库信息管理推理机用户系统维护者知识获取决策解释知识库管理29黑板知识库结构的优势每个知识源的动作依据是黑板中的信息,包括需要的交互及协同 系统中的

19、执行者和决策者享有同等的地位 使系统中多对多的关系,以及执行者和决策者的复杂关系变得简单而清晰对于协同求解等专家系统是极好的控制方式黑板知识库结构的不足所有系统成分对共享区过分依赖,也是系统风险因素的最大隐患。30虚拟机程序的交互输入 被解释的 程序执行伪码解释引擎输出输入选择指示执行程序以能被被解释的一种伪码形式表示解释引擎根据固定的语法结构,按照伪码的语义逐句解释伪码,同时,根据已经处理解释的状态,以及需要的输入的数据来完成输出。解释器过程解释状态返回本章目录31与运行程序交互的数据集合被解释程序的伪代码集合执行解释过程的状态集合转换关系的操作集合虚拟机(解释器)结构的成分虚拟机(解释器)

20、成分的连接器根据文法约定以及通用的搜索算法,实现固定形式的解释引擎连接。32布尔表达式求值系统:通过解释一串布尔求值的程序语句来实现布尔程序的运算。利用布尔正则表达式解决语法的匹配问题。使用通用的搜索算法来解释执行正则表达式,其执行结果就是最终的运行计算值。虚拟机(解释器)结构的示例布尔正则表达式:BooleanExpression:=VariableExpression|ConstantExpression| OrExpression|AndExpression|NotExpression|(Expression)VariableExpression:=A|B|Y|ZConstant:=tu

21、re|falseOrExpression|:= BooleanExpression or BooleanExpressionAndExpression:= BooleanExpressionand BooleanExpressionNotExpression:=not BooleanExpression33用类表示布尔表达式的文法规则BooleanExpressionEvaluate()VariableExpressionEvaluate()ConstantExpressionEvaluate()OrExpressionEvaluate()AndExpressionEvaluate()NotE

22、xpressionEvaluate() Evaluate() 为对应表达式的操作方法任意一个布尔表达式,可以是类对象实例所构成的一个文法树,可以按照对应的方法,完成规定形式的操作。34表达式的文法树,构成解释器结构中的解释引擎,按照每个类上定义的求值操作,根据表达式上下文和已经执行到哪一步的状态,匹配输入表达式的具体值,实现对应类上的操作OrExpressionAndExpressionAndExpressionOrExpressionNot XVariableExpressionYVariableExpressionXConstant true例:(true and x) or (y and

23、(not x)表达式例中实例所构成的文法树35引擎执行过程过程建模工具工作流模型工作流引擎工作流引擎工作流引擎过程状态工作流运行数据企业应用系统应用系统数据库任务管理操作界面工作流控制数据应用系统运行核心角色管理用户操作输入工作流引擎结构及工作示意虚拟机(解释器)结构的示例36虚拟机(解释器)结构的优势虚拟机(解释器)结构的不足通过扩充文法,可适应系统的改变良好的环境无关性解决方案如果复杂规则文法,使系统庞大而无法管理,不宜采取正则表达式解释结构,而应该采取语法分析程序。37采集特定目标的信息,以及返回的前续监测系统状态,传送给计算部件,在特定控制目标设定下,完成预定计算,通过输出装置实现对目

24、标的控制,运行的系统状态通过检测再回馈送给采集机制。过程控制回路是特定的控制关系的描述采集1采集n计算部件设定目标定时器执行装置1执行装置n检测n检测1返回本章目录38闭环系统开环系统 熔炉热气 回程气热气炉:火源不变,通过定时器在固定的间隔时间打开火源例:例:热气炉:通过测量温度,不断调节火源大小热感控制 熔炉热气 回程气过程控制回路结构特征更适用于闭环系统负反馈实用价值高于正反馈两种常用的自适应控制回路定时开关39负反馈回路正反馈回路控制计算输出检测反馈输入值设定值差值+控制计算输出检测反馈输入值设定值和值差值反馈:目标与检测值的差,作为控制依据,得到稳定的输出和值反馈:目标与检测值求和,

25、作为控制依据,得到变化的输出40两种自适应回路参数自适应回路:性能自适应回路:参数修正参数辨识机制控制计算前馈控制机制反馈控制机制-/+观察输入和输出,降低参数的不确定性范围。前馈控制机制控制计算反馈控制机制性能估算模型参考 调整通过性能分析,调整系统输入。经常采用模型参考方式-/+参考输入41过程控制回路结构成分和连接过程控制回路结构发展趋势组态可编程控制器通用机和通用机设计环境嵌入式设计技术和方法结构成分:控制计算前馈机制(包括:采集、目标设定和调整机制)反馈机制(包括:检测、回路值计算)连件:采用固定形式的结构成分和连接形式42部件和连接器是软件结构成分的两大部分。部件是软件的组成成分,

26、在系统构架中起结构块的作用。连接件是建立部件和部件之间连接的成分,是专门承接连接作用 的特殊部件。部件可以组合,连接器可以相互连接。部件部件部件部件部件部件部件部件复合部件部件和连接器也称为 C2 (Components and Connectors)风格。它总结了所有体系结构的组成成分,归纳并深入探讨其规律、特性,引导了软件体系结构研究的新途径。返回本章目录43C2风格的构件分类构件分类纯计算构件简单输入输出处理,不保留处理状态的关联成分,如函数、过滤器、转换器等。数据存储构件具有永久存储性的结构化数据成分。如数据库、文件系统、符号表、超文本等。管理构件系统状态以及相关规定、限制的操作成分。

27、如抽象数据类型、系统服务器等。控制构件系统中事件发生时间、序列的控制和管理的成分。如调度程序、同步处理等。连接构件充当信息转换角色的成分,如通信连接和用户界面等。44连接件成分过程调用成份之间实现单线程控制的连接机制,如普通过程调用等。数据流通过数据流进行交互的独立处理流程连接机制。如同不交互控制、管道机制等。隐含触发并发(非同步交互)事件实现成分之间的连接机制。如时间调度、自动回收处理等。消息传递独立成分之间离散和非线性的交互连接机制。如协议等。数据共享协议 成份之间通过统一数据空间进行协调操作的机制。如黑板、共享数据区等。C2风格的连接件分类45部件的类别部件的表达形式部件的特性接口特性运行特性远程服务特性关联特性动态特性等级或层次特性连接的种类连接的实现连接协议连接的特性连接方向性连接的角色连接的激发连接的响应连接的匹配性部件:连接件:C2风格的描述C2风格部件分类: 按过程层次分 基础部件(硬件)、中层部件(技术支持)、高层部件(领域需求)。 按应用分 通用部件、专用部件。 按功能分 数据服务部件、功能服务部件、逻辑处理部件、界面部件、连接部件、体系结构部件等。 按运行特性分 调度和非调度部件、中断和非中断部件、多客户服务部件。47C2风格部件的表达形式: 部件的表示: 具有操作接口定义的抽象数据类型。 部件接口表示: 依据访问目的的操作方法分类描述 标准的

温馨提示

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

评论

0/150

提交评论