软件体系结构设计与常用体系结构模型
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5 控制模型
控制模型:考虑子系统之间的控制流 1、集中式模型:一个组件被指定为系统控制器, 负责管理它组的执行。调用-返回模型(顺序执行)、 管理者模型(并行执行) 2、基于事件的控制:广播模型、中断驱动模型 自上而下的调用,控制始于控制层次的顶层,往往只 有一个控制线程
集中式模型--调用-返回模型
中法计141 第三组
体系结构设计与常 用的体系结构模型
成员:陈晓雅 程茜茜 崔雪 邓祎迪 杜思琦 范珊珊
1
第一部分
体系结构设计
主要 内容
3
2
第二部分 体系结构模型
第三部分
详例应用
ONE
体系结构设计
1
软件设计
软件设计是将软件需求转换为软件 表示的过程,也是一个建模过程, 以一系列迭代的步骤建立不同的视 图来描述系统。
体系结构设计步骤 1. 设计准备 2. 确定影响系统设计的 约束因素 3. 确定设计策略 4. 系统分解与设计 5. 撰写体系结构设计文 档 6. 设计评审
软件体系结构设计原则 在大规模软件开发的过程中,软件体系结 构设计起着举足轻重的作用,用它来指导 整个开发过程,可以准确满足需求并充分 提高软件系统的重用性和可维护性. 一个软件系统的体系结构设计的好不好, 可以用合适性、 结构稳定性、可扩展性和可复用性等特 征来评估。
组成部分: (1)数据中心:用于表示当前状态的中心数据结构。 (2)客户软件:用于在数据存储中心存储的数据上进行操 作的一些独立的部件组合 特点: 容器体系结构模型是基于一个共享数据库的系统模型,该模 型适合于数据由一个组件产生而有其他组件使用的情形。 体系结构为该类型的系统例子如管理信息系统(MIS)、 CAD系统、CASE工具集、可服用组件库等。
TWO
体系结构模型
2
体系结构模型
一个软件系统是由若干个组成部分,按照 一定的组织结构形式构成的.这个组织结 构形式从概念上就是一个总体性框架,它 表达了软件系统各个组成部分之间的关联 关系以及控制系统设计和进化的一组原则. 软件体系结构技术中研究的首要问题是: 部件的规格定义和体系结构的建模.
1. 容器体系结构模型
实例
应用: 主、子调用结构模型: 早期采用结构化设计方法实现的面向问题的系统是主、 子调用模型的应用,系统由主程序、子程序构成,并且 子程序集合成模块,这种系统主要体现为由一个主控过 程控制着系统的运行。用于美国军方的A-7E机载系统就 采用了主、子调用结构模型。 面向对象模型: 飞行模拟器系统的设计 层次模型: 典型应用有分层的通信协议,例如:TCP协议
持大规模的软件复用。
体系结构表示
1. 常用非形式化的方块图来描述体系结构 2. 非形式化的方块图既没有给出系统组件之间的关系类型, 也没有显示出组件可见的外部特性,非常抽象。
3. 有利于不同层次的系统参与人员进行交流与沟通。
每个子系统在图中用一个矩形表示,子系统间的关系用带 箭头的连线表示,关系可能包含数据流,“使用”和“被 使用”关系,或一些其他类型的依赖关系。
分层体系结构模型的优缺点
1)层与层之间的相对独立性 相对独立,每一层只与其上面的层打交道,无需了解其 他层的语义模型在分层模型中,用户界面层、应用层、应用 接口层和数据服务层。 2)适用于Internet/Intranet环境 应用层完成客户端管理、维持与多个服务器的链接, 负责与数据服务层建立稳定的链接,完成复杂的管理。 3)便于集成管理 在模型中,分布式应用管理程序通过数据传输层与分 层模型集成在一起,成为系统不可分割的一部分。 4)通用性 4层分布式模型不仅为开发分布式GIS提供了一个框架, 而且有助于更清楚地理解分布式系统体系结构的本质。
软件体系结构的相关概念
软件体系结构是一个软件系统的 基本组织,它体现在构件、构件 间的相互关系以及构件与环境的 关系中;它还包括指导系统设计 和进化的原则。
软件体系结构并非是可执行的软 件,它是一种设计表示,通过该 表示使得软件体系结构师能够分 析其所完成的设计是否满足软件 需求,以减少软件构造过程中存 在的风险。
体系结构设计决策
体系结构设计决策包括对应用类型的决策、系统分布的决策、 所使用的体系结构类型的决策以及对体系结构应该如何记录和 评估的决策
体系结构设计决策
1 对于要开发的系统,是否存在一个一般性的应用体系结构可 以拿来当模板? 2 系统将如何分配到多个处理器上? 3有哪个或哪几个体系结构模式或者风格适合本系统? 4 有哪些基本方法可以用来构成该系统? 5 如何将系统中的结构单元分解为模块? 6 应该使用什么样的策略来控制系统中单元的操作? 7 如何评估体系结构设计? 8 如何记录系统体系结构?
6、基于事件驱动模型--广播模型
在集中式控制模型中,控制决策通常取决于系统的状态 变量值。 事件驱动模型是通过外部产生的事件来驱动系统。 子系统在事件处理器中注册器感兴趣的事件。当事件处 理器检测到事件,查阅事件记录,然后将命令传送给所 有与此事件有关的子系统,子系统收到命令做相应处理。
优缺点
优点: 进化较为简单。新的子系统通过在事件处理器中注册事 件来达到集成。一个子系统可以在不知道其他子系统的 名字和位置的情况下激活其他子系统。(隐式调用) 缺点: 子系统不知道是否或什么时候事件将会被处理。当一个 子系统产生一个事件,它不知道哪个子系统与改事件有 关。若多个不同的子系统注册了相同的事件,就会发生 冲突
组成系统的部件是各个功能模块、层次或对象,连接器是各个 部件之间的调用关系。
该模型体现的是部件之间调用与被调用的关系,系统有各个部 件通过他们之间的调用与返回方式传递信息构成一个有机的整 体,从而实现系统的功能。
调用与返回模型通常有3种形式:主、子调用模型、面向对象 模型和层次模型。
优缺点
优点: 1、通过按照一定的方式(自顶向下、对象描述、层次分解等)对问 题进行分解,有利于复杂问题的分析和解决 2、支持基于增量式抽象设计,这就允许把一个复杂问题分成一系列 增量的步骤来完成 3、系统功能容易增强。系统可以通过增加或修改模块、对象、层次 的功能来实现系统功能的增强。 4、支持部件的重用。 缺点: 1、主调部件需要预先明秋知道被调用部件的接口标识 2、部件接口标识的更改会导致必须修改显示调用它的所有部件,而 且这种现象还会进行传递,从而可能导致不可预知的负面影响。 3、主、子调用系统的正确性依赖于构成系统的子系统的正确性,从 而子系统的正确性有依赖它所调用的子程序的正确性。
体系结构的模式
软件工程师可以在给定的体系结构类型中使用许多种不同的体 系结构风格和模式,每个模式描述了一个系统类别,它包含: 一组完成系统所需功能的构件,一组使构件间通信、协调及合 作的连接件,定义如何集成构件以构成系统的约束条件,使设 计者能够理解系统整体特性的语义模型。
系统特性与体系结构
1 性能方面 2 信息安全性方面 3 系统安全性方面 4 可用性方面 5 可维护性方面
实例-某管理系统的容器体系结构模型
管理模式——中心数据存储 具体项目的管理模式——客户软件
2 分层体系结构模型
组成部分: (1)数据服务层:存储数据和提供基本数据服务。
(2)应用接口层:对应存储过程接口,用来维护服务器中数据的一致性和完整性。
(3)应用层:把用户需求转化为针对特定服务器的基本功能。 (4)用户界面层:唯一与用户的交互点。 特点: 1)层与层之间的相对独立性 相对独立,每一层只与其上面的层打交道,无需了解其他 层的语义模型在分层模型中,用户界面层、应用层、应用接口层和数据服务层。 2)适用于Internet/Intranet环境 应用层完成客户端管理、维持与多个服务器的链 接,负责与数据服务层建立稳定的链接,完成复杂的管理。 3)便于集成管理 在模型中,分布式应用管理程序通过数据传输层与分层模型集成在 一起,成为系统不可分割的一部分。 4)通用性 层分布式模型不仅为开发分布式GIS提供了一个框架,而且有助于更清楚地 理解分布式系统体系结构的本质。
容器体系结构模型的优缺点
• 能高效的共享数据,无需在组件之间进行数据交换。 • 组件一定要与容器的数据模型一致。大量信息都按照一致的数据模型生成。 • 生产数据的组件不需要关心数据如何被其他组件使用。 • 备份、保密性、访问控制、错误回复等活动都是容器管理员的职责,客户 程序主要集中在自己的功能上。不同的组件对这些活动的要求不同,而容 器模型迫使所有的组件使用相同的策略。 • 容器中出现问题会影响整个系统。 • 是系统的静态结构,不能展现系统运行时的组织。
软件系统设计的5个核心内容: 体系结构设计,模块设计(对象 或类设计),用户界面设计,数据 库设计,数据结构和算法设计(详 细设计)。
体系结构设计
软件初始设计过程的任务是要识别出组成大 型系统的多个子系统,并建立子系统的控制 和通信框架,这个过程叫做体系结构设计。 它包括识别出系统的主要组件以及它们之间 的通信。 体系结构设计是设计过程的初始阶段。 表现为设计和需求工程过程之间的桥梁。 通常是与一些系统描述活动同时进行的。 体系结构设计的输出的一个描述就是软件体 系结构。
3 软件系统 结构模型
*使用自然Leabharlann 言或图形等较直观的方式来描述和阐 明问题。
*结构模型描述系统结构形态,即系统各部分间及
其与环境间的关系
*对于理清思路、明确问题,与利益相关者进行沟
通,都极为有用
4 管道--过滤器体系结构
系统运行时组织的模型,看作是对相继输入数据的 一系列变换。一批数据进入系统,流经一个个组件 最后到达终点(输出或数据库)。
组件被称为过滤器,能够对数据进行渐进式的转换 (一种流变成另一种流)。数据流的通路称为管道
优缺点
优点: 1、没有复杂的组件交互。 2、支持软件重用:由管道连接起来的过滤器的组合又可 以看成一个过滤器,可应用到其他系统中。 3、易于维护:过滤器替换方便 4、支持并行执行过滤器,但要考虑并行执行时数据流之 间的同步问题
实例-云计算分层体系架构
(1)云客户端——用户界面层
是直接面向客户的人机接口。 (2)云应用——应用接口层 在软件结构上服务器端采用云计算。 (3)云平台——应用层 基于云基础设施,将计算平台或解决方案作为一项服务。 (4)云基础设施——应用层 计算机基础设施的交付使用,典型的表现为一个平台虚拟化 环境。 (5)服务器层——数据服务层 由针对云服务的交付而特别设计的 计算机硬件和计算机软件 组成的。
缺点: 1、适用批量处理方式,不适合构建交互式应用的系统。 如对图形化的用户界面,有复杂的输入输出格式、基于 事件的鼠标点击或菜单选择的控制信息,将其转换成与 数据流模型兼容的格式是困难的。
实例
应用: 典型的应用就是UNIX系统,连接进程时用 到管道,从一个进程到另一个进程传送文 本流。 还有的应用实例:如传统的数据处理系统 (如票据处理)、传统的编译器(词法分 析、语法分析、语义分析、代码生成)、 数字通信(传递文字、语音、图片、图像 等)系统。
体系结构模型
软件系统的体系结构要给予特定的体系结构模型
对这些模型的掌握可以简化定义系统体系结构的问题
绝大多数的大型系统的体系结构都包括不同的体系结构类型,并不属于一 个单一的类型
软件系统的体系结构要给予特定 的体系结构模型 对这些模型的掌握可以简化定义 系统体系结构的问题 绝大多数的大型系统的体系结构 都包括不同的体系结构类型,并 不属于一个单一的类型
实例 应用 网络管理系统一般有一个事件服务器,处 理被管理网络和网管系统内部发生的所有 事件。其他的管理工具如故障管理、性能 管理和配置管理等工具,作为事件服务器 的客户,在服务器上注册与自己有关的事 件。当相关事件发生时,相应管理工具的 过程自动被调用。
进行体系结构设计的好处
1. 有利于利益相关者之间的沟通 体系结构是系统的一个高层表示,可以作为不同的项 目相关人员之间讨论的焦点,有利于设计决策。 2. 有利于系统分析 在系统开发的早期阶段给出系统的体系结构,实际上就 是对系统的分析过程。对体系结构的设计决策,对系统能 否满足关键性需求具有深远的影响。 3. 有利于大规模复用 体系结构能在具有相似需求的系统之间互用,由此来支