软件设计-02-软件体系架构.ppt
《软件设计-02-软件体系架构.ppt》由会员分享,可在线阅读,更多相关《软件设计-02-软件体系架构.ppt(84页珍藏版)》请在三一办公上搜索。
1、软件设计,第二部分 软件体系结构,1 为什么需要研究软件体系结构,规模增加复杂性增加需要演化算法+数据结构”对于软件的描述不全面需要提高对软件总体结构的认识构成成分、成分之间的关系提供交流基础反映高层设计便于系统演化,2 什么是软件体系结构,Software Architecture是对子系统、软件系统组件以及它们之间相互关系的描述。子系统和组件一般定义在不同的视图内,以显示软件系统的相关功能性属性和非功能性属性。对系统结构的总体设计与说明是一种高层设计关注三方面问题:组件、组件间关系、关系约束,2 什么是软件体系结构(cont.),构件软件系统由哪些部分构成例如:数据库、服务器、客户、层、过
2、滤器、监听器等构件间的关系:这些部分之间的交互关系是什么例如:RPC、共享内存、管道等关系的约束:这些关系有什么约束例如:互斥等,更具体的,体系架构讨论系统元素如何组织?系统如何实现所需功能?系统如何满足预期性能、可靠性和其它质量特性安全、并发、错误恢复、系统管理等系统需要什么技术?分布式、集中式、J2EE、SOA等等系统内部组织的结构是否能够弹性响应功能、技术、平台变化?和原有系统如何集成?数据持久化问题?标准是否能够确保系统开发始终保持一致?采用什么设计模式?经济上和技术上的冲突和平衡美学上的意义,其它的软件体系结构定义(cont.)Dewayne Perry和A1ex Wo1f曾这样定义
3、:软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组组合连接起来。这一定义注重区分处理构件、数据构件和连接构件,这一方法在其他的定义和方法中基本上得到保持 2)Kruchten指出,软件体系结构有四个角度,它们从不同方面对系统进行描述:概念角度描述系统的主要构件及它们之间的关系;模块角度包含功能分解与层次结构;运行角度描述了一个系统的动态结构;代码角度描述了各种代码和库函数在开发环境中的组织。,其它的软件体系结构定义(cont.)1997年,Bass,Ctements和Kaz
4、man在实用软件体系结构一书中给出如下的定义:一个程序或计算机系统的软件体系结构包括一个或一组软件构件、软件构件的外部的可见特性及其相互关系。其中,软件外部的可见特性是指软件构件提供的服务、性能、特性、错误处理、共享资源使用等。,我们知道.体系结构和设计是同一件事;体系结构和基础结构是相同的;一个好的体系结构是简单的结构;体系结构一个蓝图就足够了;体系结构就是结构;系统体系结构优先于软件结构;体系结构不能被标准化和验证;体系结构是科学;体系结构是艺术;,好的体系结构的特征可伸缩性的简单亲切的关系清楚明了职责分布明确效益和技术平衡,3 体系结构设计原则,合适性 结构稳定性 可扩展性 可复用性,抽
5、象封装信息隐蔽模块化事务分离注意点分散(层次化)(Separation of Concerns)耦合和内聚充分性、完整性和原始性策略和实现的分离接口和实现的分离分而制之(Divide-and-conquer),体系结构设计流程,1 设计准备任务、工具2 确定影响系统设计的约束因素 本系统应当遵循的标准或规范软件、硬件环境(包括运行环境和开发环境)的约束接口/协议的约束用户界面的约束软件质量的约束,如正确性、健壮性、可靠性、性能、易用性、清晰性、安全性、可扩展性、兼容性、可移植性等等,3 确定设计策略 根据产品的需求,以及本产品的发展战略,确定设计策略,如:设计模式。根据本产品的功能性需求和非功
6、能性需求,确定体系结构设计模式。扩展策略。说明为了方便本系统在将来扩展功能,现在有什么措施。复用策略。说明本系统在当前“复用什么”以及将来“如何被复用”。折衷策略。说明当两个目标难以同时被优化时如何折衷,例如“时空”效率折衷,复杂性与实用性之间的折衷,4 系统分解与设计 按照体系结构设计模式,将系统分解为若干子系统,确定每个子系统的功能以及子系统之间的关系。绘制系统的总体结构图(包括物理图和逻辑图)。将子系统分解为若干模块,确定每个模块的功能以及模块之间的关系,绘制子系统的结构图。确定系统开发、测试、运行所需的软硬件环境 5 撰写体系结构设计文档 6 设计评审,4 软件体系架构的演变,1.逻辑
7、应用体系结构的演变,2.物理应用程序体系结构,关系数据库,复杂的Internet系统,客户端,服务器,应用服务器,执行系统,金融系统,库存系统,关系数据库系统,Dynamic HTML,JavaScript,Javaplug-ins,source code enhancements,Java,C,C+,JavaScript,CGI,Java,C,C+,JavaBeans,CORBA,DCOM,Native languages,5 体系结构风格,体系结构风格定义了在结构组织中模板阶段的系列;体系结构风格定义了:构成元素和连接器类型的词汇;它们如何组合的约束;一个或多个指明系统的全部属性能够被它的
8、部分属性决定的语义模型;,Mary Shaw,CMU,什么是体系结构风格,(1)风格是一种语言词汇(管道、过滤器)语法语义(2)风格是一种类型系统Component(管道)Connector(过滤器)(3)风格是一种理论由公理和推论组成的集合管道=两个端点(读、写)过滤器=输入端口、输出端口,常见的体系结构风格,数据流系统批处理系统管道/过滤器系统调用/返回系统主程序/子程序系统面向对象系统独立构件通信进程系统事件系统虚拟机解释器基于规则的系统数据为中心的系统数据库超文本系统,6 体系架构模式,Architectural Pattern,表示软件系统的基本结构化模式。他提供一套预定义的子系统,
9、规定他们的职责,并包含用于组织他们之间关系的规则和指南。每个模式就是一条有三部分组成的规则,它表示了一个特定环境、一个问题和一个特定解决方案之间的关系。举例:MVC,主要在开发人机界面时考虑。模式的特点就是处于单个类、实例层次或组件层次之上的抽象。,使用模式的优点模式是为软件体系结构建立文档的一种手段模式支持用已定义的属性来构造软件模式有助于构造一个复杂的、异构的软件体系结构。,模式是如何构成的语境:问题出现的场景问题:在那个语境中出现的再现问题解决方案:已被证实的问题解决方案举例:MVC的两个强制条件,用户的界面必须容易更改,但核心功能不致受到很大影响。在解决方案中,给出了如何解决问题,它包
10、含了两个方面每个模式规定了一个特定结构,即元素的配置每个模式规定了运行期间的行为MVC:相当于I P O,用体系结构模式,数据流系统管道和过滤器(Pips and Filters),批顺序(Batch sequential)调用返回系统主程序和子程序,面向对象的系统,分层层次独立组件通信过程,事件系统虚拟机解释程序,基于规则的系统库黑板(Blackboard),超文本系统,数据库,数据流系统,数据流系统是以数据如何通过系统为特征来刻画的。一般而言,数据流体系结构有两个或多个处理组件,每个组件都将输入数据转换为输出数据。数据流构架的目标是实现可重用性和可更改性,它的特点是把系统看作是对相继输入数
11、据的一系列变换。它可分成两个子样式:两个子样式:批顺序:等到一个步骤全部处理完后才能开始下一个步骤,每个处理步骤(组件)是独立的程序,在各个步骤之间,数据是作为一个整体传送的。如传统的磁带处理。管道过滤器:管道负责数据传递,过滤器对数据进行渐进的转换。如UNIX系统中可以用此方法来过滤文件中一些不需要的字符。,数据流系统(cont.),管道和过滤器(Pips and Filters)为处理数据流的系统提供了一种结构,每个处理步骤都封装在一个过滤器中,数据通过相邻过滤器之间的管道传输。重组过滤器可以建立相关系统组。,特征过滤器是独立实体,相互之间不共享状态过滤器不了解其它过滤器的信息例子利用 U
12、nix Shell 编写的程序ls|find.编译器,数据流系统(cont.)批顺序,编译器,1 分离传输,2 顺序同步处理,数据流系统(cont.),优点允许设计者将一个系统的整体输入/输出行为理解为各个独立过滤器行为的简单合成。对复用的支持好:任何两个过滤器之间,如果交流的数据格式匹配,即可以连接在一起。系统的维护与扩展方便:新的过滤器可以添加到现有系统中,或者利用改进的过滤器替换老的过滤器。方便系统分析:例如,吞吐量、死锁等并发性好:每一个过滤器可以作为一个单独的任务实现,可以与其它过滤器并行执行。,缺点经常导致批处理方式。过滤器易被认为是一个将输入数据转换成输出数据的模块,不利于交互。
13、在维护或响应两个分离但相关的数据流时,利用管道/过滤器方式不易。由于依赖于实现,这样的系统可能强迫一种最一般的数据传输标准,从而导致了为每一个过滤器进行数据语法分析的工作,增加了复杂性,降低了性能。,调用返回系统,调用返回系统通过一个激活模型来描述,该模型包括一个执行操作调用的控制主线程。经典的体系结构是主程序和子程序。主程序和子程序,面向对象的系统,分层层次调用返回构架一直是大型软件系统的主流构架样式,它能被分解成子任务组,其中每个子任务都处于一个特定的抽象层次上。它的目标是实现系统的可更改性和可扩展性。它有多种子样式:主程序-子程序构架远程过程调用构架面向对象构架分层构架实例:网络协议-O
14、SI模型,Client-Server Style,适用于这样的应用系统:它的数据和处理分布在一定范围的多个构件上,构件之间通过网络连接。简单的客户机/服务器系统结构中,应分成两部分。客户机负责用户输入和展示,服务器则处理低层的功能,例如数据库的运作等。如果一个系统被划分为两类不同的但相互联系的组成部分,其中一方提出对信息或服务的请求,而另一方提供这种信息或者服务,那么这种体系结构就可看作是一种客户机/服务器模型。,2-tier客户机/服务器结构,数据库服务器,客户机,Client/Servers,方法调用,方法调用,方法调用,构件之间通过网络相连接数据和处理分布在一定范围内的多个构件上,Com
15、ponent:server(服务器组件)client(客户组件)Connector:某种进程间的通信机制,通常是基于RPC的交互协议;请求-应答的非对称形式。,Server组件,拥有接口,接口能描述它提供的服务,向多个客户提供服务,它永远处在激活状态,监听用户请求,被动,在收到服务请求之前不了解客户机的身份,向服务器请求服务,主动,通信一般是成对的,且由客户组件发起;客户需了解服务器的身份,模型-视图-控制(MVC),主要用于处理交互性应用程序,模型包含数据和业务逻辑,视图向用户显示信息,控制接受用户输入。VC共同构成了用户的接口,变更-传播机制保证了用户接口和模型之间的一致性。,视图1,控制
16、器,模型,请求,调用,返回,视图2,更新,独立组件,独立组件是分布式式系统的一种形式。独立组件构架由许多通过发送消息进行通讯的独立进程或对象组成,它的目标是通过解除各运算部分之间的耦合实现可更改性,如股票机、各类短信预定等。它有两类子样式:事件系统样式通讯进程样式通信过程和基于事件的体系结构风格依赖于对操作的隐式调用。调用者和被调用者可以存在于不同的软件过程中甚至不同的处理器中。如出版订购通信模式,独立组件,实例代理者(Broker)可用于构建带有隔离组件的分布式软件系统,该软件通过调用远程软件服务进行交互。Broker负责协调通信,诸如转发请求等。结构:客户机,服务器,代理者、桥接、客户机端
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件设计 02 软件 体系 架构

链接地址:https://www.31ppt.com/p-6611020.html