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