高级软件工程(第九章)-软件体系结构(2017课件).ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《高级软件工程(第九章)-软件体系结构(2017课件).ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级 软件工程 第九 软件 体系结构 2017 课件
- 资源描述:
-
1、第九章第九章软件体系结构软件体系结构什么是软件体系结构?什么是软件体系结构?软件体系结构表示系统的框架结构,用于从较高软件体系结构表示系统的框架结构,用于从较高的层次上来描述各部分之间的关系和接口,主要的层次上来描述各部分之间的关系和接口,主要包括:构件、构件性质和构件之间的关系。包括:构件、构件性质和构件之间的关系。软件体系结构是构件和连接件之间相互作用的形软件体系结构是构件和连接件之间相互作用的形式化说明,用以指导将多个模块组织成一个完整式化说明,用以指导将多个模块组织成一个完整的应用程序。的应用程序。2 2软件体系结构描述语言软件体系结构描述语言软件体系结构描述语言(软件体系结构描述语言
2、(Architectural Architectural Description LanguageDescription Language,简称,简称ADLADL)是用来描述)是用来描述软件密集型系统的总体结构的语言,说明系统众软件密集型系统的总体结构的语言,说明系统众多构件之间的结构关系。多构件之间的结构关系。代表性的体系结构描述语言包括:代表性的体系结构描述语言包括:nWrightWrightnRapideRapidenDarwinDarwinnUniconUniconnACMEACMEnABC/ADLABC/ADLnXYZ/ADLXYZ/ADLnXADLXADL 大部分结构描述语言都有构
3、件、连接子、配置大部分结构描述语言都有构件、连接子、配置等概念。等概念。3 3几种几种典型的软件体系结构风格典型的软件体系结构风格软件体系结构表示系统的框架结构,用于从较高软件体系结构表示系统的框架结构,用于从较高的层次上来描述各部分之间的关系和接口,主要的层次上来描述各部分之间的关系和接口,主要包括:构件、构件性质和构件之间的关系。包括:构件、构件性质和构件之间的关系。不同系统的设计方案存在着许多共性问题,把这不同系统的设计方案存在着许多共性问题,把这些共性部分抽取出来,就形成了具有代表性的和些共性部分抽取出来,就形成了具有代表性的和可广泛接受的体系结构风格。可广泛接受的体系结构风格。4 4
4、几种几种典型的软件体系结构风格典型的软件体系结构风格软件体系结构风格也称为软件体系结构惯用模软件体系结构风格也称为软件体系结构惯用模式,是指不同系统所拥有的共同组织结构和语式,是指不同系统所拥有的共同组织结构和语义特征。义特征。软件体系结构风格定义了用于系统描述的术语软件体系结构风格定义了用于系统描述的术语表和一组用于指导系统构建的规则。表和一组用于指导系统构建的规则。5 5几种几种典型的软件体系结构风格典型的软件体系结构风格管道管道/过滤器风格过滤器风格数据共享风格数据共享风格客户机客户机/服务器服务器风格风格浏览器浏览器/服务器风格服务器风格MVCMVC体系结构风格体系结构风格6 6管道管
5、道/过滤器体系结构风格过滤器体系结构风格管道管道/过滤器结构主要包括过滤器和管道两种过滤器结构主要包括过滤器和管道两种元元素;素;构件被称为构件被称为过滤器过滤器,负责对数据进行加工,负责对数据进行加工处理;处理;每个过滤器都有一组输入端口和输出端口,从输每个过滤器都有一组输入端口和输出端口,从输入端口接收数据,经过内部加工处理之后,传送入端口接收数据,经过内部加工处理之后,传送到输出端口到输出端口上;上;数据通过相邻过滤器之间的连接件进行传输,连数据通过相邻过滤器之间的连接件进行传输,连接件可以看作输入数据流和输出数据流之间的通接件可以看作输入数据流和输出数据流之间的通路,这就是所谓的路,这
6、就是所谓的管道管道。7 7管道管道/过滤器体系结构风格过滤器体系结构风格管道管道/过滤器结构将数据流处理分为几个顺序过滤器结构将数据流处理分为几个顺序的步骤来进行,一个步骤的输出是下一个步骤的步骤来进行,一个步骤的输出是下一个步骤的输入,每个处理步骤由一个过滤器来实现;的输入,每个处理步骤由一个过滤器来实现;每个过滤器独立完成自己的任务,不同过滤器每个过滤器独立完成自己的任务,不同过滤器之间不需要进行交互;之间不需要进行交互;在管道在管道/过滤器结构中,数据输出的最终结果过滤器结构中,数据输出的最终结果与各个过滤器执行的顺序无关。与各个过滤器执行的顺序无关。8 8当输入数据经过一系列的计算和操
7、作构件的变当输入数据经过一系列的计算和操作构件的变换形成输出数据时,可以应用这种体系结构。换形成输出数据时,可以应用这种体系结构。管管道道/过滤器过滤器、批处理序列批处理序列都属于数据流风格。管都属于数据流风格。管道道/过滤器结构如下图所示。过滤器结构如下图所示。管道管道/过滤器体系结构风格过滤器体系结构风格管道管道/过滤器结构过滤器结构 每个过滤器都是一个独立的个体元素,各个过滤器的状态互不每个过滤器都是一个独立的个体元素,各个过滤器的状态互不相关,非邻近过滤器不共享任何信息;相关,非邻近过滤器不共享任何信息;运行结果的正确性与各个过滤器运行的先后顺序无关。运行结果的正确性与各个过滤器运行的
8、先后顺序无关。9 9管道管道/过滤器体系结构风格过滤器体系结构风格管道管道/过滤器风格具有以下优点:过滤器风格具有以下优点:简单性,允许将系统的输入和输出看作是各个简单性,允许将系统的输入和输出看作是各个过滤器行为的简单组合,独立的过滤器能够减过滤器行为的简单组合,独立的过滤器能够减小构件之间的耦合小构件之间的耦合程度;程度;系统系统具有可扩展性和可进化性,各个过滤器是具有可扩展性和可进化性,各个过滤器是相互独立的,因此可以很容易地将新过滤器添相互独立的,因此可以很容易地将新过滤器添加到现有的系统之中,以扩展系统的业务处理加到现有的系统之中,以扩展系统的业务处理能力,原有过滤器可以很方便地被改
9、进的过滤能力,原有过滤器可以很方便地被改进的过滤器所器所替代;替代;1010管道管道/过滤器体系结构风格过滤器体系结构风格支持复用,如果一个过滤器的输出数据格式与支持复用,如果一个过滤器的输出数据格式与另一个过滤器的输入数据格式是一致的,就可另一个过滤器的输入数据格式是一致的,就可以将这两个过滤器连接在一起;以将这两个过滤器连接在一起;系统并发性,各个过滤器能够独立运行,因此系统并发性,各个过滤器能够独立运行,因此,不同子任务可以并行执行,提高了系统运行,不同子任务可以并行执行,提高了系统运行效率;效率;便于系统分析,由于系统是独立构件的组合,便于系统分析,由于系统是独立构件的组合,具有清晰的
10、拓扑结构,因而有利于对数据吞吐具有清晰的拓扑结构,因而有利于对数据吞吐量、死锁和计算准确性进行分析。量、死锁和计算准确性进行分析。1111管道管道/过滤器体系结构风格过滤器体系结构风格管道管道/过滤器风格也存在着一定的问题:过滤器风格也存在着一定的问题:p系统处理过程是批处理方式,过滤器具有很强系统处理过程是批处理方式,过滤器具有很强的独立性,对于每一个过滤器,设计者必须考的独立性,对于每一个过滤器,设计者必须考虑从输入到输出的转换过程,这种方式会造成虑从输入到输出的转换过程,这种方式会造成过滤器对输入数据的批量转换处理;过滤器对输入数据的批量转换处理;p不适合用来设计交互式应用系统;不适合用
11、来设计交互式应用系统;p由于没有通用的数据传输标准,因此每个过滤由于没有通用的数据传输标准,因此每个过滤器都需要解析输入数据和合成数据,添加和去器都需要解析输入数据和合成数据,添加和去除标记需要花费一定的时间,从而导致了系统除标记需要花费一定的时间,从而导致了系统性能下降,增加了过滤器设计的复杂性。性能下降,增加了过滤器设计的复杂性。1212分层体系结构风格分层体系结构风格在分层风格中,系统将划分为一个层次结构;在分层风格中,系统将划分为一个层次结构;每一层都具有高度的内聚性,包含抽象程度一每一层都具有高度的内聚性,包含抽象程度一致的各种构件,支持信息隐藏;致的各种构件,支持信息隐藏;分层有助
12、于将复杂系统划分为独立的模块,从分层有助于将复杂系统划分为独立的模块,从而简化程序的设计和实现;而简化程序的设计和实现;通过分解,可以将系统功能划分为一些具有明通过分解,可以将系统功能划分为一些具有明确定义的层,较高层是面向特定应用问题的,确定义的层,较高层是面向特定应用问题的,较低层更具有一般性。较低层更具有一般性。1313分层体系结构风格分层体系结构风格每层都为上层提供服务,同时又利用了下层的每层都为上层提供服务,同时又利用了下层的逻辑功能;逻辑功能;每层只对相邻层可见,层次之间的连接件是协每层只对相邻层可见,层次之间的连接件是协议和过程调用,用以实现各层之间的交互;议和过程调用,用以实现
13、各层之间的交互;上层通过下层提供的接口来使用下层的功能,上层通过下层提供的接口来使用下层的功能,而下层却不能使用上层的功能;而下层却不能使用上层的功能;良好的层次结构将有助于对逻辑功能实施灵活良好的层次结构将有助于对逻辑功能实施灵活的增加、删除和修改。的增加、删除和修改。1414分层体系结构风格分层体系结构风格利用接口,可以将下层实现细节隐藏起来,从利用接口,可以将下层实现细节隐藏起来,从而有助于抽象设计,形成松散耦合的结构模型而有助于抽象设计,形成松散耦合的结构模型1515分层体系结构风格分层体系结构风格分层体系结构风格具有以下优点:分层体系结构风格具有以下优点:设计者可以将系统分解为一个增
14、量的步骤序列,设计者可以将系统分解为一个增量的步骤序列,从而完成复杂的业务逻辑;从而完成复杂的业务逻辑;每一层至多和相邻的上下两层进行交互,每一层每一层至多和相邻的上下两层进行交互,每一层的功能变化最多只影响相邻两层,便于实现系统的功能变化最多只影响相邻两层,便于实现系统功能的扩展;功能的扩展;只要给相邻层提供相同的接口,就可以使用不同只要给相邻层提供相同的接口,就可以使用不同的方法来实现每一层,支持软件资源的复用。的方法来实现每一层,支持软件资源的复用。1616分层体系结构风格分层体系结构风格分层体系结构风格也存在着一些问题:分层体系结构风格也存在着一些问题:p并非并非所有系统都能够按照层次
15、来进行划分,即使一所有系统都能够按照层次来进行划分,即使一个系统的逻辑结构是层次化的,但是出于对系统性个系统的逻辑结构是层次化的,但是出于对系统性能的考虑,需要把不同抽象程度的功能合并到一层能的考虑,需要把不同抽象程度的功能合并到一层,破坏了逻辑,破坏了逻辑独立性;独立性;p很难找到一种合适和正确的层次划分方法,其应用很难找到一种合适和正确的层次划分方法,其应用范围受到范围受到限制;限制;p在传输数据时,需要经过多个层次,导致了系统性在传输数据时,需要经过多个层次,导致了系统性能能下降;下降;p多层结构多层结构难以调试,往往需要通过一系列的跨层次难以调试,往往需要通过一系列的跨层次调用来调用来
16、实现。实现。1717数据共享体系结构风格数据共享体系结构风格数据共享风格也称为仓库风格,有两种不同类数据共享风格也称为仓库风格,有两种不同类型的软件元素:型的软件元素:p一种是中央数据单元,也称为资源库,用于一种是中央数据单元,也称为资源库,用于表示系统的当前状态,另一种是相互依赖的表示系统的当前状态,另一种是相互依赖的构件组构件组中央数据单元和构件之间可以进行信息交换,中央数据单元和构件之间可以进行信息交换,这是数据共享体系结构的技术实现基础;这是数据共享体系结构的技术实现基础;根据所使用的控制策略不同,数据共享体系结根据所使用的控制策略不同,数据共享体系结构可以分为两种类型:构可以分为两种
17、类型:p一种是传统的数据库,另一种是黑板一种是传统的数据库,另一种是黑板1818数据共享体系结构风格数据共享体系结构风格如果由输入流中的事件来驱动系统进行信息处理如果由输入流中的事件来驱动系统进行信息处理,把执行结果存储到中央数据单元中,则这个系,把执行结果存储到中央数据单元中,则这个系统就是数据库应用系统;统就是数据库应用系统;如果由中央数据单元的当前状态来驱动系统运行如果由中央数据单元的当前状态来驱动系统运行,则这个系统就是黑板应用系统;,则这个系统就是黑板应用系统;黑板是数据共享体系结构的一个特例,用以解决黑板是数据共享体系结构的一个特例,用以解决状态冲突并处理可能存在的不确定性知识源。
18、状态冲突并处理可能存在的不确定性知识源。1919客户机客户机/服务器体系结构风格服务器体系结构风格客户机向服务器发送操作请求,期待服务器的客户机向服务器发送操作请求,期待服务器的响应;响应;二者之间具有一定的连接机制,遵循公共的通二者之间具有一定的连接机制,遵循公共的通信协议,都需要处理请求表达、返回结果表示信协议,都需要处理请求表达、返回结果表示、连接关系和状态表达等一系列问题。、连接关系和状态表达等一系列问题。2020客户机客户机/服务器体系结构风格服务器体系结构风格数据和业务处理分布在一定范围内的多个构件数据和业务处理分布在一定范围内的多个构件上,包括客户机程序中的构件和服务器程序中上,
19、包括客户机程序中的构件和服务器程序中的构件,构件与构件之间是通过网络进行连接的构件,构件与构件之间是通过网络进行连接的;的;定义了工作站与服务器的连接方法,从而使数定义了工作站与服务器的连接方法,从而使数据存储和逻辑计算可以分布到物理上的多个处据存储和逻辑计算可以分布到物理上的多个处理器上;理器上;服务器负责存储和管理数据信息,客户机负责服务器负责存储和管理数据信息,客户机负责数据显示、用户交互以及对业务逻辑的处理。数据显示、用户交互以及对业务逻辑的处理。2121客户机客户机/服务器体系结构风格服务器体系结构风格C/S系统可以分为前台客户机程序和后台服务系统可以分为前台客户机程序和后台服务器程
展开阅读全文