《软件体系结构风格与模式ppt课件.ppt》由会员分享,可在线阅读,更多相关《软件体系结构风格与模式ppt课件.ppt(157页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、THU SAGroup课程编号:课程编号:74100152认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫精准扶贫”项目项目第二讲第二讲 软件体系结构的风格和模式软件体系结构的风格和模式覃征覃征 教授教授Software Architecture认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度
2、重视,已经展开了“精准扶贫精准扶贫”项目项目建筑模式建筑模式建筑模式建筑模式vChristopherAlexander,TheTimelessWayofBuilding,p247,1979每个模式是一个由三部分组成的规则,表达了特定环境、问题每个模式是一个由三部分组成的规则,表达了特定环境、问题和解和解(solution)之间的关系。之间的关系。作为现实世界的一个成分,每个模式表达了下列三者之间的一作为现实世界的一个成分,每个模式表达了下列三者之间的一种关系:特定环境,在该环境中反复出现的力种关系:特定环境,在该环境中反复出现的力(forces)的系统,的系统,以及协调这些力的某种空间排列。以
3、及协调这些力的某种空间排列。作为语言的一个成分,每个模式是一条指令,展示了这种空间作为语言的一个成分,每个模式是一条指令,展示了这种空间排列如何被一再重复使用,目的是协调同特定环境相关的力的排列如何被一再重复使用,目的是协调同特定环境相关的力的系统。系统。简单地说,模式既是存在于现实世界中的事物,又是告诉我们简单地说,模式既是存在于现实世界中的事物,又是告诉我们如何以及何时创造该事物的规则。模式既是过程,又是事物;如何以及何时创造该事物的规则。模式既是过程,又是事物;既是活生生的事物的描述,又是创造该事物的过程的描述。既是活生生的事物的描述,又是创造该事物的过程的描述。认识到了贫困户贫困的根本
4、原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫精准扶贫”项目项目软件体系结构的构建模式软件体系结构的构建模式 软件体系结构的特点之一就是抽象出了很软件体系结构的特点之一就是抽象出了很多常见的系统构建模式,这些模式(或者说结构多常见的系统构建模式,这些模式(或者说结构风格)是系统设计人员多年工作经验的总结。风格)是系统设计人员多年工作经验的总结。认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了认识到了
5、贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫精准扶贫”项目项目软件体系结构风格和模式的概念软件体系结构风格和模式的概念软件体系结构风格和模式的概念软件体系结构风格和模式的概念v软件体系结构风格软件体系结构风格(ArchitecturalStyle)一种体系结构风格以结构组织模式定义了一个系统家族一种体系结构风格以结构组织模式定义了一个系统家族关于构件和连接件类型的术语;一组约束对它们组合方式的规关于构件和连接件类型的术语;一组约束对它们组合方式的规定;一个或多个语义模型,规定了如何从各成分的特性决定系定;一个或多个语义模型,规定了如何
6、从各成分的特性决定系统整体特性统整体特性概括地说,一种软件体系结构风格刻划一个具有共享结构和语概括地说,一种软件体系结构风格刻划一个具有共享结构和语义的系统家族义的系统家族v软件体系结构模式软件体系结构模式(ArchitecturalPattern)一种软件体系结构模式是对某个具体环境下问题的结构性解决一种软件体系结构模式是对某个具体环境下问题的结构性解决方法方法认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫精准扶贫”项目项目v
7、体系结构风格体系结构风格模式系统中的词汇模式系统中的词汇目前尚不完善目前尚不完善每个风格可以视为一组构件的集合,以及构件间的交互(连接每个风格可以视为一组构件的集合,以及构件间的交互(连接器)器)构件(构件(Components)连接器(连接器(Connectors)E.g.C/S结构中结构中构件:Client,Server连接器:C/S间的通讯协议认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫精准扶贫”项目项目软件体系结构的构
8、建风格软件体系结构的构建风格v风格分类:风格分类:1.1.管道管道-过滤器风格过滤器风格 2.2.面向对象风格面向对象风格 3.3.事件驱动风格事件驱动风格 4.4.分层风格分层风格 5.5.数据共享风格数据共享风格 6.6.解释器风格解释器风格 7.7.反馈控制环风格反馈控制环风格 8.8.异构风格的集成异构风格的集成认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫精准扶贫”项目项目v特别注意:体系结构风格不是对软件进行分类的标
9、准。特别注意:体系结构风格不是对软件进行分类的标准。它仅仅是表示描述软件的不同角度而已它仅仅是表示描述软件的不同角度而已例如一个系统采用了分层风格,但这并不妨碍它用面向对象的例如一个系统采用了分层风格,但这并不妨碍它用面向对象的方法来实现。同一个系统采用多种风格造成了所谓体系结构风方法来实现。同一个系统采用多种风格造成了所谓体系结构风格的异构组合。格的异构组合。认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫精准扶贫”项目项目管道
10、管道管道管道-过滤器风格过滤器风格过滤器风格过滤器风格v概述概述在管道在管道-过滤器风格下,每个功能模块都有一组输入和输出。功过滤器风格下,每个功能模块都有一组输入和输出。功能模块称作过滤器(能模块称作过滤器(filters);功能模块间的连接可以看作输入、);功能模块间的连接可以看作输入、输出数据流之间的通路,所以称作管道(输出数据流之间的通路,所以称作管道(pipes)。)。管道管道-过滤器风格的特性之一在于过滤器的相对独立性,即过滤过滤器风格的特性之一在于过滤器的相对独立性,即过滤器独立完成自身功能,相互之间无需进行状态交互。器独立完成自身功能,相互之间无需进行状态交互。认识到了贫困户贫
11、困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫精准扶贫”项目项目管道管道管道管道-过滤器风格特性过滤器风格特性过滤器风格特性过滤器风格特性v过滤器是独立运行的构件过滤器是独立运行的构件非临近的过滤器之间不共享状态非临近的过滤器之间不共享状态过滤器自身无状态过滤器自身无状态v过滤器对其处理上下连接的过滤器过滤器对其处理上下连接的过滤器“无知无知”对相邻的过滤器不施加任何限制对相邻的过滤器不施加任何限制v结果的正确性不依赖于各个过滤器运行的先后次序
12、结果的正确性不依赖于各个过滤器运行的先后次序各过滤器在输入具备后完成自己的计算。完整的计算过程包含各过滤器在输入具备后完成自己的计算。完整的计算过程包含在过滤器之间的拓扑结构中。在过滤器之间的拓扑结构中。认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫精准扶贫”项目项目管道管道-过滤器风格过滤器风格v一个管道一个管道-过滤器风格的示意图如下图所示:过滤器风格的示意图如下图所示:认识到了贫困户贫困的根本原因,才能开始对症下药,然后药
13、到病除。近年来国家对扶贫工作高度重视,已经展开了认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫精准扶贫”项目项目管道管道-过滤器风格过滤器风格v一个采用了嵌套的管道过滤器的系统示例:一个采用了嵌套的管道过滤器的系统示例:认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫精准扶贫”项目项目管道管道管道管道-过滤器风格优点过滤器风格优点过滤器风格优点过滤器风格优点v设计者
14、可以将整个系统的输入、输出特性简单的理解为设计者可以将整个系统的输入、输出特性简单的理解为各个过滤器功能的合成。各个过滤器功能的合成。设计人员将整个系统的输入输出行为理解为单个过滤器行为的设计人员将整个系统的输入输出行为理解为单个过滤器行为的叠加与组合。这样可以将问题分解,化繁为简。将系统抽象成叠加与组合。这样可以将问题分解,化繁为简。将系统抽象成一个一个“黑箱黑箱”,其输入是系统中第一个过滤器的输入管道,输,其输入是系统中第一个过滤器的输入管道,输出是系统中最后一个过滤器的输出管道,而其内部各功能模块出是系统中最后一个过滤器的输出管道,而其内部各功能模块的具体实现对用户完全透明。的具体实现对
15、用户完全透明。认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫精准扶贫”项目项目管道管道管道管道-过滤器风格优点过滤器风格优点过滤器风格优点过滤器风格优点v管道管道-过滤器风格支持功能模块的复用过滤器风格支持功能模块的复用任何两个过滤器,只要它们之间传送的数据遵守共同的规约,任何两个过滤器,只要它们之间传送的数据遵守共同的规约,就可以相连接。每个过滤器都有自己独立的输入输出接口,如就可以相连接。每个过滤器都有自己独立的输入输出接口
16、,如果过滤器间传输的数据遵守其规约,只要用管道将它们连接就果过滤器间传输的数据遵守其规约,只要用管道将它们连接就可以正常工作。可以正常工作。认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫精准扶贫”项目项目管道管道管道管道-过滤器风格优点过滤器风格优点过滤器风格优点过滤器风格优点v基于管道基于管道-过滤器风格的系统具有较强的可维护性和可扩过滤器风格的系统具有较强的可维护性和可扩展性。展性。旧的过滤器可以被替代,新的过滤器可以添加到
17、已有的系统上。旧的过滤器可以被替代,新的过滤器可以添加到已有的系统上。软件的易于维护和升级是衡量软件系统质量的重要指标之一,软件的易于维护和升级是衡量软件系统质量的重要指标之一,在管道在管道-过滤器模型中,只要遵守输入输出数据规约,任何一个过滤器模型中,只要遵守输入输出数据规约,任何一个过滤器都可以被另一个新的过滤器代替,同时为增强程序功能,过滤器都可以被另一个新的过滤器代替,同时为增强程序功能,可以添加新的过滤器。这样,系统的可维护性和可升级性得到可以添加新的过滤器。这样,系统的可维护性和可升级性得到了保证。了保证。认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶
18、贫工作高度重视,已经展开了认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫精准扶贫”项目项目管道管道管道管道-过滤器风格优点过滤器风格优点过滤器风格优点过滤器风格优点v支持一些特定的分析,如吞吐量计算和死锁检测等。支持一些特定的分析,如吞吐量计算和死锁检测等。利用管道利用管道-过滤器风格的视图,可以很容易的得到系统的资源使过滤器风格的视图,可以很容易的得到系统的资源使用和请求的状态图。然后,根据操作系统原理等相关理论中的用和请求的状态图。然后,根据操作系统原理等相关理论中的死锁检测方法就可以分析出系统目前所处的状态,是否存在死死锁
19、检测方法就可以分析出系统目前所处的状态,是否存在死锁可能及如何消除死锁等问题。锁可能及如何消除死锁等问题。认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫精准扶贫”项目项目管道管道管道管道-过滤器风格优点过滤器风格优点过滤器风格优点过滤器风格优点v管道管道-过滤器风格具有并发性过滤器风格具有并发性每个过滤器作为一个单独的执行任务,可以与其它过滤器并发每个过滤器作为一个单独的执行任务,可以与其它过滤器并发执行。过滤器的执行是独立的,
20、不依赖于其它过滤器的。在实执行。过滤器的执行是独立的,不依赖于其它过滤器的。在实际运行时,可以将存在并发可能的多个过滤器看作多个并发的际运行时,可以将存在并发可能的多个过滤器看作多个并发的任务并行执行,从而大大提高系统的整体效率,加快处理速度。任务并行执行,从而大大提高系统的整体效率,加快处理速度。认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫精准扶贫”项目项目管道管道-过滤器风格不足过滤器风格不足v交互式处理能力弱交互式处理能
21、力弱管道管道-过滤器模型适于数据流的处理和变换,不适合为与用户交过滤器模型适于数据流的处理和变换,不适合为与用户交互频繁的系统建模。在这种模型中,每个过滤器都有自己的数互频繁的系统建模。在这种模型中,每个过滤器都有自己的数据,这些数据或者是从磁盘存储器中读取来,或者是由另一个据,这些数据或者是从磁盘存储器中读取来,或者是由另一个过滤器的输出导入进来,整个系统没有一个共享的数据区。这过滤器的输出导入进来,整个系统没有一个共享的数据区。这样,当用户要操作某一项数据时,要涉及到多个过滤器对相应样,当用户要操作某一项数据时,要涉及到多个过滤器对相应数据的操作,其实现较为复杂。由以上的缺点,可以对每个过
22、数据的操作,其实现较为复杂。由以上的缺点,可以对每个过滤器增加相应的用户控制接口,使得外部可以对过滤器的执行滤器增加相应的用户控制接口,使得外部可以对过滤器的执行进行控制。进行控制。认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫精准扶贫”项目项目管道管道-过滤器风格不足过滤器风格不足改进的过滤器改进的过滤器认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了认识到了贫困户贫困的根
23、本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫精准扶贫”项目项目管道管道管道管道-过滤器风格不足过滤器风格不足过滤器风格不足过滤器风格不足v管道管道-过滤器风格往往导致系统处理过程的成批操作。过滤器风格往往导致系统处理过程的成批操作。v设计者也许不得不花费精力协调两个相对独立但又存在设计者也许不得不花费精力协调两个相对独立但又存在某种关系的数据流之间的关系,例如多过滤器并发执行某种关系的数据流之间的关系,例如多过滤器并发执行时数据流之间的同步问题等。时数据流之间的同步问题等。v根据实际设计的需要,设计者也需要对数据传输进行特根据实际设计的需要,设计者
24、也需要对数据传输进行特定的处理(如为了防止数据泄漏而采取加密等手段),定的处理(如为了防止数据泄漏而采取加密等手段),导致过滤器必须对输入、输出管道中的数据流进行解析导致过滤器必须对输入、输出管道中的数据流进行解析或反解析,增加了过滤器具体实现的复杂性。或反解析,增加了过滤器具体实现的复杂性。认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫精准扶贫”项目项目管道管道管道管道-过滤器风格实例过滤器风格实例过滤器风格实例过滤器风格实例
25、数字通信系统数字通信系统数字通信系统数字通信系统v通信的目的是传递消息。消息具有不同的形式,例如:通信的目的是传递消息。消息具有不同的形式,例如:符号、文字、语音、音乐、数据、图片、图像等等。因符号、文字、语音、音乐、数据、图片、图像等等。因而,根据所传递消息的不同,目前通信业务可以分为电而,根据所传递消息的不同,目前通信业务可以分为电报、电话、传真、数据传输及可视电话等。对于基本的报、电话、传真、数据传输及可视电话等。对于基本的点对点通信,是把发送端的消息传递到接收端。点对点通信,是把发送端的消息传递到接收端。数字通信概念模型发送端接收端认识到了贫困户贫困的根本原因,才能开始对症下药,然后药
26、到病除。近年来国家对扶贫工作高度重视,已经展开了认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫精准扶贫”项目项目管道管道管道管道-过滤器风格实例过滤器风格实例过滤器风格实例过滤器风格实例数字通信系统数字通信系统数字通信系统数字通信系统v将上图发送端进一步细分为信息源和发送设备,将接收将上图发送端进一步细分为信息源和发送设备,将接收端细分为接收设备和受信者;同时,在通信过程中会有端细分为接收设备和受信者;同时,在通信过程中会有噪声干扰,在模型中添加噪声源可得到图所示的数字通噪声干扰,在模型中添加噪声源可得到图所示的数字通信系统粗略
27、模型。信系统粗略模型。数字通信系统粗略模型信息源发送设备接收设备受信者噪声源信道信道认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫精准扶贫”项目项目管道管道管道管道-过滤器风格实例过滤器风格实例过滤器风格实例过滤器风格实例数字通信系统数字通信系统数字通信系统数字通信系统v图中各单元作用:图中各单元作用:信息源把各种可能信息转换成原始电信号;信息源把各种可能信息转换成原始电信号;发送设备对原始电信号完成某种变化,便于原始信号在信道
28、中发送设备对原始电信号完成某种变化,便于原始信号在信道中传输,然后再送入信道;传输,然后再送入信道;信道是指信号传输的通道,它既可以看成是管道(因为它的目信道是指信号传输的通道,它既可以看成是管道(因为它的目的并不是为了实现某种功能,仅仅是为了信号的传输),也可的并不是为了实现某种功能,仅仅是为了信号的传输),也可以从某种意义上看做是过滤以从某种意义上看做是过滤器(因为信号经过信道后会产生一器(因为信号经过信道后会产生一些变化,比如加入噪声的影响,从而改变些变化,比如加入噪声的影响,从而改变了发送设备发出的信了发送设备发出的信号)。号)。接收设备从接收信号中恢复出相应的原始信号;接收设备从接收
29、信号中恢复出相应的原始信号;受信者(也称为信息宿或接收终端)是将复原的原始信号转换受信者(也称为信息宿或接收终端)是将复原的原始信号转换成相应的消息。成相应的消息。噪声源是信道中的噪声以及分散在通信系统其它各处的噪声的噪声源是信道中的噪声以及分散在通信系统其它各处的噪声的集中体现,它使原信号受到了干扰,产生畸变。集中体现,它使原信号受到了干扰,产生畸变。认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫精准扶贫”项目项目管道管道管道
30、管道-过滤器风格实例过滤器风格实例过滤器风格实例过滤器风格实例数字通信系统数字通信系统数字通信系统数字通信系统v在数字通信中存在以下几个突出的问题:在数字通信中存在以下几个突出的问题:数字信号传输时,信道噪声或干扰所造成的差错,原则上都可数字信号传输时,信道噪声或干扰所造成的差错,原则上都可以通过差错控制编码等手段来控制。为此,在发送端需要增加以通过差错控制编码等手段来控制。为此,在发送端需要增加一个编码器,而在接收一个编码器,而在接收端相应的需要一个解码器。端相应的需要一个解码器。当需要保密时,可以有效的对基带信号进行加密,防止信息被当需要保密时,可以有效的对基带信号进行加密,防止信息被窃取
31、或通信窃取或通信被破坏。此时,在接收端就需要进行解密。被破坏。此时,在接收端就需要进行解密。由于数字通信传输的是一个接一个按节拍传送的数字信号单元,由于数字通信传输的是一个接一个按节拍传送的数字信号单元,即码元,因而接收端必须与发送端按相同的节拍进行接收。不即码元,因而接收端必须与发送端按相同的节拍进行接收。不然,会因接收节拍不一致而造成混乱,使接收倒的数据全部无然,会因接收节拍不一致而造成混乱,使接收倒的数据全部无效。因此,数字通信系统中必须有同步控制构件。效。因此,数字通信系统中必须有同步控制构件。v针对上述问题,可得到数字通信系统详细模型(下图)针对上述问题,可得到数字通信系统详细模型(
32、下图)认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫精准扶贫”项目项目管道管道管道管道-过滤器风格实例过滤器风格实例过滤器风格实例过滤器风格实例数字通信系统数字通信系统数字通信系统数字通信系统数字通信系统详细模型认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫精准扶
33、贫”项目项目管道管道管道管道-过滤器风格实例过滤器风格实例过滤器风格实例过滤器风格实例v管道管道-过滤器模式的体系结构是面向数据流的软件体系结过滤器模式的体系结构是面向数据流的软件体系结构。它最典型的应用是在编译系统。一个普通的编译系构。它最典型的应用是在编译系统。一个普通的编译系统包括词法分析器,语法分析器,语义分析与中间代码统包括词法分析器,语法分析器,语义分析与中间代码生成器,优化器,目标代码生成器等一系列对源程序进生成器,优化器,目标代码生成器等一系列对源程序进行处理的过程。人们可以将编译系统看作一系列过滤器行处理的过程。人们可以将编译系统看作一系列过滤器的连接体,按照管道的连接体,按
34、照管道&过滤器的体系结构进行设计。过滤器的体系结构进行设计。v需求描述:假设有一批实时的二维坐标点数据需要变换需求描述:假设有一批实时的二维坐标点数据需要变换(即对点的横、纵坐标进行缩放),并在屏幕上进行显(即对点的横、纵坐标进行缩放),并在屏幕上进行显示,要求外部要能设置变换规则(如缩放倍数)和显示示,要求外部要能设置变换规则(如缩放倍数)和显示规则(如显示模式和显示颜色)。规则(如显示模式和显示颜色)。认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重
35、视,已经展开了“精准扶贫精准扶贫”项目项目管道管道管道管道-过滤器风格实例过滤器风格实例过滤器风格实例过滤器风格实例v体系结构建模体系结构建模这是一个对坐标点的数据流进行顺序处理的过程,可以应用管这是一个对坐标点的数据流进行顺序处理的过程,可以应用管道道-过滤器体系结构建模。将这个系统分为两个过滤器,一个为过滤器体系结构建模。将这个系统分为两个过滤器,一个为坐标点数据流变换过滤器,另一个为坐标点数据流实时显示过坐标点数据流变换过滤器,另一个为坐标点数据流实时显示过滤器。其中,坐标点数据流变换过滤器有一个外部控制接口对滤器。其中,坐标点数据流变换过滤器有一个外部控制接口对变换规则如缩放倍数进行设
36、置,坐标点数据流实时显示过滤器变换规则如缩放倍数进行设置,坐标点数据流实时显示过滤器有一个外部控制接口对显示规则如显示模式和显示颜色进行设有一个外部控制接口对显示规则如显示模式和显示颜色进行设置。整个系统的体系结构如图所示。置。整个系统的体系结构如图所示。认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫精准扶贫”项目项目管道管道管道管道-过滤器风格实例过滤器风格实例过滤器风格实例过滤器风格实例系统体系结构图 认识到了贫困户贫困的根
37、本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫精准扶贫”项目项目管道管道管道管道-过滤器风格实例过滤器风格实例过滤器风格实例过滤器风格实例v过滤器的设计过滤器的设计可以将过滤器用状态转换图表示。过滤器有如下状态:停止状可以将过滤器用状态转换图表示。过滤器有如下状态:停止状态,工作状态,等待状态,休眠状态。态,工作状态,等待状态,休眠状态。停止状态:表示过滤器处于待启动状态,当外部启动过滤器后,停止状态:表示过滤器处于待启动状态,当外部启动过滤器后,过
38、滤器处于处理状态;过滤器处于处理状态;处理状态:表示过滤器正在处理输入数据队列中的数据;处理状态:表示过滤器正在处理输入数据队列中的数据;等待状态:表示过滤器的输入数据队列为空,此时过滤器等待,等待状态:表示过滤器的输入数据队列为空,此时过滤器等待,当有新的数据输入时,过滤器处于处理状态;当有新的数据输入时,过滤器处于处理状态;休眠状态:表示过滤器已经启动,但被挂起。挂起的原因可能休眠状态:表示过滤器已经启动,但被挂起。挂起的原因可能是由于外界用户要设置过滤器的控制参数,这样暂时将过滤器是由于外界用户要设置过滤器的控制参数,这样暂时将过滤器挂起但不中止它,当控制参数设置完毕后再将过滤器还原,继
39、挂起但不中止它,当控制参数设置完毕后再将过滤器还原,继续运行。这样,实现了较高的效率。续运行。这样,实现了较高的效率。认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫精准扶贫”项目项目管道管道-过滤器风格实例过滤器风格实例过滤器状态转换图 认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,
40、已经展开了“精准扶贫精准扶贫”项目项目使用示例使用示例使用示例使用示例vUnix系统中的管道过滤器结构系统中的管道过滤器结构lsal|grepmyv通讯协议的信息封装通讯协议的信息封装(e.g.SDH)认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫精准扶贫”项目项目过滤器介绍过滤器介绍v过滤器的作用:对输入数据的处理过滤器的作用:对输入数据的处理enriches:computingandaddinginforefines:con
41、centratingorextractinginfotransforms:deliveringdataintosomeotherrepresentationv被动式过滤器(被动式过滤器(PassivePassive filter filter)adjacentpipespulls/pushesoutput/inputdatafrom/intothefilteractiveeitherasafunction(pull)orasaprocedure(push)v主动式过滤器(主动式过滤器(ActiveActive filter filter)filterisactiveinaloop,checkt
42、hepipesfordataprocessingonitsownasaseparateprogramorthread认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫精准扶贫”项目项目数据源、数据接收端、管道介绍数据源、数据接收端、管道介绍数据源、数据接收端、管道介绍数据源、数据接收端、管道介绍vDataSource(数据源)(数据源)inputdatastreamtothesystem,forexampleA file consi
43、sting of lines of textA sensor delivering a sequence of numbers datacanbepushedorpulledintofirstprocessingstagevPipes(管道)(管道)connectionsbetweenfilters,betweendatasourceandthefirstfilter,betweenthelastfilterandthedatasinksynchronizesjoinedactivefilters,forexample,byaFIFO(first-in-first-out)bufferforp
44、assivefilters,thepipescanbeimplementedbyadirectcallMake the filter recombination hardervDataSink(数据接收端)(数据接收端)consumesoutputdata认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫精准扶贫”项目项目管道管道管道管道-过滤器风格的类型过滤器风格的类型过滤器风格的类型过滤器风格的类型v类型类型pipelinesl
45、inearsequencesoffiltersboundedpipeslimitedamountofdataonapipetypedpipesdatastronglytypedbatchsequentialdatastreamsarenotincremental认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫精准扶贫”项目项目面向对象风格特征面向对象风格特征面向对象风格特征面向对象风格特征v概述概述面相对象模式集数据抽象、抽象数据
46、类型、类继承为一体,使面相对象模式集数据抽象、抽象数据类型、类继承为一体,使软件工程公认的模块化、信息隐藏、抽象、重用性等原则在面软件工程公认的模块化、信息隐藏、抽象、重用性等原则在面向对象风格下得以充分实现。向对象风格下得以充分实现。v应用场合应用场合面向对象的体系结构模式适用于数据和功能分离的系统中,同面向对象的体系结构模式适用于数据和功能分离的系统中,同样也适合于问题域模型比较明显,或需要人机交互界面的系统。样也适合于问题域模型比较明显,或需要人机交互界面的系统。大多数应用事件驱动风格的系统也常常应用了面向对象风格。大多数应用事件驱动风格的系统也常常应用了面向对象风格。认识到了贫困户贫困
47、的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫精准扶贫”项目项目面向对象风格面向对象风格面向对象风格面向对象风格面向对象风格的体系结构 认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫精准扶贫”项目项目面向对象风格优点面向对象风格优点面向对象风格优点面向对象风格优点v高度模块性高度模
48、块性v封装功能封装功能v代码共享代码共享v灵活性灵活性v易维护性易维护性v可扩充性可扩充性认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫精准扶贫”项目项目面向对象风格不足面向对象风格不足面向对象风格不足面向对象风格不足面向对象风格最大的不足在于如果一个对象需要调用另面向对象风格最大的不足在于如果一个对象需要调用另一个对象,它就必须知道那个对象的标识(对象名或对一个对象,它就必须知道那个对象的标识(对象名或对象引用),这样就无形之
49、中增强了对象之间的依赖关系。象引用),这样就无形之中增强了对象之间的依赖关系。如果一个对象改变了自己的标识,就必须通知系统中所如果一个对象改变了自己的标识,就必须通知系统中所有和它有调用关系的对象,否则系统就无法正常运行。有和它有调用关系的对象,否则系统就无法正常运行。面向对象风格面向对象风格认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫精准扶贫”项目项目面向对象风格实例面向对象风格实例面向对象风格实例面向对象风格实例v实例背景
50、实例背景目前,一个标准的计算机应用系统应该由三部分组成:计算机目前,一个标准的计算机应用系统应该由三部分组成:计算机操作系统(包括各种应用软件系统)、数据库管理系统和网络操作系统(包括各种应用软件系统)、数据库管理系统和网络环境(包括网络硬件设备和各种协议栈、网络服务等),这样环境(包括网络硬件设备和各种协议栈、网络服务等),这样一个具有分布式特性和开放性的系统称为开放分布式系统一个具有分布式特性和开放性的系统称为开放分布式系统(ODS,OpenDistributedSystem)。)。认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了认识到