软件体系结构2软件体系结构风格与模式918409726培训课件

上传人:yuzo****123 文档编号:137576255 上传时间:2020-07-09 格式:PPT 页数:169 大小:3.13MB
返回 下载 相关 举报
软件体系结构2软件体系结构风格与模式918409726培训课件_第1页
第1页 / 共169页
软件体系结构2软件体系结构风格与模式918409726培训课件_第2页
第2页 / 共169页
软件体系结构2软件体系结构风格与模式918409726培训课件_第3页
第3页 / 共169页
软件体系结构2软件体系结构风格与模式918409726培训课件_第4页
第4页 / 共169页
软件体系结构2软件体系结构风格与模式918409726培训课件_第5页
第5页 / 共169页
点击查看更多>>
资源描述

《软件体系结构2软件体系结构风格与模式918409726培训课件》由会员分享,可在线阅读,更多相关《软件体系结构2软件体系结构风格与模式918409726培训课件(169页珍藏版)》请在金锄头文库上搜索。

1、软件体系结构(2) 软件体系结构的风格与模式 覃征 教授,Software Architecture,建筑模式,Christopher Alexander, The Timeless Way of Building, p247, 1979 每个模式是一个由三部分组成的规则,表达了特定环境、问题和解(solution)之间的关系。 作为现实世界的一个成分,每个模式表达了下列三者之间的一种关系:特定环境,在该环境中反复出现的力(forces)的系统,以及协调这些力的某种空间排列。 作为语言的一个成分,每个模式是一条指令,展示了这种空间排列如何被一再重复使用,目的是协调同特定环境相关的力的系统。 简

2、单地说,模式既是存在于现实世界中的事物,又是告诉我们如何以及何时创造该事物的规则。模式既是过程,又是事物;既是活生生的事物的描述,又是创造该事物的过程的描述。,软件体系结构的构建模式,软件体系结构的特点之一就是抽象出了很多常见的系统构建模式,这些模式(或者说结构风格)是系统设计人员多年工作经验的总结。,软件体系结构风格和模式的概念,软件体系结构风格(Architectural Style) 一种体系结构风格以结构组织模式定义了一个系统家族 关于构件和连接件类型的术语;一组约束对它们组合方式的规定;一个或多个语义模型,规定了如何从各成分的特性决定系统整体特性 概括地说,一种软件体系结构风格刻划一

3、个具有共享结构和语义的系统家族 软件体系结构模式(Architectural Pattern) 一种软件体系结构模式是对某个具体环境下问题的结构性解决方法,软件体系结构的构建风格,风格分类: 1. 管道-过滤器风格 2. 面向对象风格 3. 事件驱动风格 4. 分层风格 5. 数据共享风格 6. 解释器风格 7. 反馈控制环风格 8. 异构风格的集成,特别注意:体系结构风格不是对软件进行分类的标准。它仅仅是表示描述软件的不同角度而已 例如一个系统采用了分层风格,但这并不妨碍它用面向对象的方法来实现。同一个系统采用多种风格造成了所谓体系结构风格的异构组合。,管道-过滤器风格,概述 在管道-过滤器

4、风格下,每个功能模块都有一组输入和输出。功能模块称作过滤器(filters);功能模块间的连接可以看作输入、输出数据流之间的通路,所以称作管道(pipes)。 管道-过滤器风格的特性之一在于过滤器的相对独立性,即过滤器独立完成自身功能,相互之间无需进行状态交互。,管道-过滤器风格特性,过滤器是独立运行的构件 非临近的过滤器之间不共享状态 过滤器自身无状态 过滤器对其处理上下连接的过滤器“无知” 对相邻的过滤器不施加任何限制 结果的正确性不依赖于各个过滤器运行的先后次序 各过滤器在输入具备后完成自己的计算。完整的计算过程包含在过滤器之间的拓扑结构中。,管道-过滤器风格,一个管道-过滤器风格的示意

5、图如下图所示:,管道-过滤器风格,一个采用了嵌套的管道过滤器的系统示例:,管道-过滤器风格实例,Unix系统中的管道过滤器结构 ls al | grep my DOS 中的管道命令 DOS允许在命令中出现用竖线字符“|”分开的多个命令,将符号“|”之前的命令的输出,作为“|”之后命令的输入,这就是“管道功能”,竖线字符“|”是管道操作符。 例如,命令dir | more使得当前目录列表在屏幕上逐屏显示。dir的输出是整个目录列表,它不出现在屏幕上而是由于符号“|”的规定,成为下一个命令more的输入,more命令则将其输入,more命令则将其输入一屏一屏地显示,成为命令行的输出。,THU SA

6、Group,12,管道-过滤器风格 实例,THU SAGroup,13,dir | more,管道-过滤器风格实例,通讯协议的信息封装(e.g. SDH),管道-过滤器风格优点,设计者可以将整个系统的输入、输出特性简单的理解为各个过滤器功能的合成。 设计人员将整个系统的输入输出行为理解为单个过滤器行为的叠加与组合。这样可以将问题分解,化繁为简。将系统抽象成一个“黑箱”,其输入是系统中第一个过滤器的输入管道,输出是系统中最后一个过滤器的输出管道,而其内部各功能模块的具体实现对用户完全透明。,管道-过滤器风格优点,管道-过滤器风格支持功能模块的复用 任何两个过滤器,只要它们之间传送的数据遵守共同的

7、规约,就可以相连接。每个过滤器都有自己独立的输入输出接口,如果过滤器间传输的数据遵守其规约,只要用管道将它们连接就可以正常工作。,管道-过滤器风格优点,基于管道-过滤器风格的系统具有较强的可维护性和可扩展性。 旧的过滤器可以被替代,新的过滤器可以添加到已有的系统上。软件的易于维护和升级是衡量软件系统质量的重要指标之一,在管道-过滤器模型中,只要遵守输入输出数据规约,任何一个过滤器都可以被另一个新的过滤器代替,同时为增强程序功能,可以添加新的过滤器。这样,系统的可维护性和可升级性得到了保证。,管道-过滤器风格优点,支持一些特定的分析,如吞吐量计算和死锁检测等。 利用管道-过滤器风格的视图,可以很

8、容易的得到系统的资源使用和请求的状态图。然后,根据操作系统原理等相关理论中的死锁检测方法就可以分析出系统目前所处的状态,是否存在死锁可能及如何消除死锁等问题。,管道-过滤器风格优点,管道-过滤器风格具有并发性 每个过滤器作为一个单独的执行任务,可以与其它过滤器并发执行。过滤器的执行是独立的,不依赖于其它过滤器的。在实际运行时,可以将存在并发可能的多个过滤器看作多个并发的任务并行执行,从而大大提高系统的整体效率,加快处理速度。,管道-过滤器风格不足,交互式处理能力弱 管道-过滤器模型适于数据流的处理和变换,不适合为与用户交互频繁的系统建模。在这种模型中,每个过滤器都有自己的数据,这些数据或者是从

9、磁盘存储器中读取来,或者是由另一个过滤器的输出导入进来,整个系统没有一个共享的数据区。这样,当用户要操作某一项数据时,要涉及到多个过滤器对相应数据的操作,其实现较为复杂。由以上的缺点,可以对每个过滤器增加相应的用户控制接口,使得外部可以对过滤器的执行进行控制。,管道-过滤器风格不足,改进的过滤器,管道-过滤器风格不足,管道-过滤器风格往往导致系统处理过程的成批操作。 设计者也许不得不花费精力协调两个相对独立但又存在某种关系的数据流之间的关系,例如多过滤器并发执行时数据流之间的同步问题等。 根据实际设计的需要,设计者也需要对数据传输进行特定的处理(如为了防止数据泄漏而采取加密等手段),导致过滤器

10、必须对输入、输出管道中的数据流进行解析或反解析,增加了过滤器具体实现的复杂性。,管道-过滤器风格实例数字通信系统,通信的目的是传递消息。消息具有不同的形式,例如:符号、文字、语音、音乐、数据、图片、图像等等。因而,根据所传递消息的不同,目前通信业务可以分为电报、电话、传真、数据传输及可视电话等。对于基本的点对点通信,是把发送端的消息传递到接收端。,数字通信概念模型,发送端,接收端,管道-过滤器风格实例数字通信系统,将上图发送端进一步细分为信息源和发送设备,将接收端细分为接收设备和受信者;同时,在通信过程中会有噪声干扰,在模型中添加噪声源可得到图所示的数字通信系统粗略模型。,数字通信系统粗略模型

11、,信息源,发送设备,接收设备,受信者,噪声源,信道,管道-过滤器风格实例数字通信系统,图中各单元作用: 信息源把各种可能信息转换成原始电信号; 发送设备对原始电信号完成某种变化,便于原始信号在信道中传输,然后再送入信道; 信道是指信号传输的通道,它既可以看成是管道(因为它的目的并不是为了实现某种功能,仅仅是为了信号的传输),也可以从某种意义上看做是过滤 器(因为信号经过信道后会产生一些变化,比如加入噪声的影响,从而改变 了发送设备发出的信号)。 接收设备从接收信号中恢复出相应的原始信号; 受信者(也称为信息宿或接收终端)是将复原的原始信号转换成相应的消息。 噪声源是信道中的噪声以及分散在通信系

12、统其它各处的噪声的集中体现,它使原信号受到了干扰,产生畸变。,管道-过滤器风格实例数字通信系统,在数字通信中存在以下几个突出的问题: 数字信号传输时,信道噪声或干扰所造成的差错,原则上都可以通过差错控制编码等手段来控制。为此,在发送端需要增加一个编码器,而在接收 端相应的需要一个解码器。 当需要保密时,可以有效的对基带信号进行加密,防止信息被窃取或通信 被破坏。此时,在接收端就需要进行解密。 由于数字通信传输的是一个接一个按节拍传送的数字信号单元,即码元,因而接收端必须与发送端按相同的节拍进行接收。不然,会因接收节拍不一致而造成混乱,使接收倒的数据全部无效。因此,数字通信系统中必须有同步控制构

13、件。 针对上述问题,可得到数字通信系统详细模型(下图),管道-过滤器风格实例数字通信系统,数字通信系统详细模型,数据源、数据接收端、管道介绍,Data Source (数据源) input data stream to the system , for example A file consisting of lines of text A sensor delivering a sequence of numbers data can be pushed or pulled into first processing stage Pipes(管道) connections between f

14、ilters , between data source and the first filter , between the last filter and the data sink synchronizes joined active filters , for example , by a FIFO ( first-in-first-out ) buffer for passive filters , the pipes can be implemented by a direct call Make the filter recombination harder Data Sink

15、(数据接收端) consumes output data,管道-过滤器风格实例,管道-过滤器模式的体系结构是面向数据流的软件体系结构。它最典型的应用是在编译系统。一个普通的编译系统包括词法分析器,语法分析器,语义分析与中间代码生成器,优化器,目标代码生成器等一系列对源程序进行处理的过程。人们可以将编译系统看作一系列过滤器的连接体,按照管道 /向事件源btnPress植入侦听器对象ButtonEventHandler btnPress.addActionListener (new ButtonEventHandler(this); class ButtonEventHandler impleme

16、nts ActionListener /窗体对象 private EventDemo form = null; /通过构造体传入窗体对象, /作用在于让侦听器对象明白事件源处于 /哪个窗体容器中 public ButtonEventHandler(EventDemo form) ,THU SAGroup,61,事件驱动风格 实例,this.form = form; /委托方法 public void actionPerformed(ActionEvent e) /该方法将会把事件的处理权交给窗体容器类的btnPress_Click方法处理。 this.form.btnPress_Click(e); /真正的事件处理代码片断: private void btnPress_Click(ActionEvent e) String message = 你点击的按钮名叫: + (JButton) e.getSource().getName(); this.txtM

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号