高级软件工程(第九章) 软件体系结构(2017课件)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8
管道/过滤器体系结构风格
当输入数据经过一系列的计算和操作构件的变 换形成输出数据时,可以应用这种体系结构。管 道/过滤器、批处理序列都属于数据流风格。管 道/过滤器结构如下图所示。
管道/过滤器结构
• 每个过滤器都是一个独立的个体元素,各个过滤器的状态互不 相关,非邻近过滤器不共享任何信息; 9 • 运行结果的正确性与各个过滤器运行的先后顺序无关。
7
管道/过滤器体系结构风格
管道/过滤器结构将数据流处理分为几个顺序 的步骤来进行,一个步骤的输出是下一个步骤 的输入,每个处理步骤由一个过滤器来实现; 每个过滤器独立完成自己的任务,不同过滤器 之间不需要进行交互; 在管道/过滤器结构中,数据输出的最终结果 与各个过滤器执行的顺序无关。
4
几种典型的软件体系结构风格
软件体系结构风格也称为软件体系结构惯用模 式,是指不同系统所拥有的共同组织结构和语 义特征。 软件体系结构风格定义了用于系统描述的术语 表和一组用于指导系统构建的规则。
5
几种典型的软件体系结构风格
管道/过滤器风格 数据共享风格 客户机/服务器风格 浏览器/服务器风格 MVC体系结构风格
13
分层体系结构风格
每层都为上层提供服务,同时又利用了下层的 逻辑功能; 每层只对相邻层可见,层次之间的连接件是协 议和过程调用,用以实现各层之间的交互; 上层通过下层提供的接口来使用下层的功能, 而下层却不能使用上层的功能; 良好的层次结构将有助于对逻辑功能实施灵活 的增加、删除和修改。
6
管道/过滤器体系结构风格
管道/过滤器结构主要包括过滤器和管道两种元 素; 构件被称为过滤器,负责对数据进行加工处理; 每个过滤器都有一组输入端口和输出端口,从输 入端口接收数据,经过内部加工处理之后,传送 到输出端口上; 数据通过相邻过滤器之间的连接件进行传输,连 接件可以看作输入数据流和输出数据流之间的通 路,这就是所谓的管道。
软件体系结构描述语言(Architectural Description Language,简称ADL)是用来描述 软件密集型系统的总体结构的语言,说明系统众 多构件之间的结构关系。 代表性的体系结构描述语言包括:
Wright ACME ABC/ADL XYZ/ADL XADL
管道/过滤器体系结构风格
管道/过滤器风格具有以下优点: 简单性,允许将系统的输入和输出看作是各个 过滤器行为的简单组合,独立的过滤器能够减 小构件之间的耦合程度; 系统具有可扩展性和可进化性,各个过滤器是 相互独立的,因此可以很容易地将新过滤器添 加到现有的系统之中,以扩展系统的业务处理 能力,原有过滤器可以很方便地被改进的过滤 器所替代;
数据共享体系结构风格
数据共享风格也称为仓库风格,有两种不同类 型的软件元素: 一种是中央数据单元,也称为资源库,用于 表示系统的当前状态,另一种是相互依赖的 构件组 中央数据单元和构件之间可以进行信息交换, 这是数据共享体系结构的技术实现基础; 根据所使用的控制策略不同,数据共享体系结 构可以分为两种类型: 一种是传统的数据库,另一种是黑板
16
分层体系结构风格
分层体系结构风格也存在着一些问题:
并非所有系统都能够按照层次来进行划分,即使一 个系统的逻辑结构是层次化的,但是出于对系统性 能的考虑,需要把不同抽象程度的功能合并到一层 ,破坏了逻辑独立性; 很难找到一种合适和正确的层次划分方法,其应用 范围受到限制; 在传输数据时,需要经过多个层次,导致了系统性 能下降; 多层结构难以调试,往往需要通过一系列的跨层次 调用来实现。 17
12
分层体系结构风格
在分层风格中,系统将划分为一个层次结构; 每一层都具有高度的内聚性,包含抽象程度一 致的各种构件,支持信息隐藏; 分层有助于将复杂系统划分为独立的模块,从 而简化程序的设计和实现; 通过分解,可以将系统功能划分为一些具有明 确定义的层,较高层是面向特定应用问题的, 较低层更具有一般性。
Rapide
Darwin Unicon
大部分结构描述语言都有构件、连接子、配置 等概念。 3
几种典型的软件体系结构风格
软件体系结构表示系统的框架结构,用于从较高 的层次上来描述各部分之间的关系和接口,主要 包括:构件、构件性质和构件之间的关系。 不同系统的设计方案存在着许多共性问题,把这 些共性部分抽取出来,就形成了具有代表性的和 可广泛接受的体系结构风格。
14
分层体系结构风格
利用接口,可以将下层实现细节隐藏起来,从 而有助于抽象设计,形成松散耦合的结构模型
15
分层体系结构风格
分层体系结构风格具有以下优点: 设计者可以将系统分解为一个增量的步骤序列, 从而完成复杂的业务逻辑; 每一层至多和相邻的上下两层进行交互,每一层 的功能变化最多只影响相邻两层,便于实现系统 功能的扩展; 只要给相邻层提供相同的接口,就可以使用不同 的方法来实现每一层,支持软件资源的复用。
第九章 软件体系结构
什么是软件体系结构?
软件体系结构表示系统的框架结构,用于从较高 的层次上来描述各部分之间的关系和接口,主要 包括:构件、构件性质和构件之间的关系。 软件体系结构是构件和连接件之间相互作用的形 式化说明,用以指导将多个模块组织成一个完整 的应用程序。
2
软件体系结构描述语言
10Leabharlann Baidu
管道/过滤器体系结构风格
支持复用,如果一个过滤器的输出数据格式与 另一个过滤器的输入数据格式是一致的,就可 以将这两个过滤器连接在一起; 系统并发性,各个过滤器能够独立运行,因此 ,不同子任务可以并行执行,提高了系统运行 效率; 便于系统分析,由于系统是独立构件的组合, 具有清晰的拓扑结构,因而有利于对数据吞吐 量、死锁和计算准确性进行分析。
11
管道/过滤器体系结构风格
管道/过滤器风格也存在着一定的问题: 系统处理过程是批处理方式,过滤器具有很强 的独立性,对于每一个过滤器,设计者必须考 虑从输入到输出的转换过程,这种方式会造成 过滤器对输入数据的批量转换处理; 不适合用来设计交互式应用系统; 由于没有通用的数据传输标准,因此每个过滤 器都需要解析输入数据和合成数据,添加和去 除标记需要花费一定的时间,从而导致了系统 性能下降,增加了过滤器设计的复杂性。