高级软件工程10(SA概述、SA风格及实例).ppt

上传人:za****8 文档编号:14567166 上传时间:2020-07-24 格式:PPT 页数:42 大小:231.01KB
返回 下载 相关 举报
高级软件工程10(SA概述、SA风格及实例).ppt_第1页
第1页 / 共42页
高级软件工程10(SA概述、SA风格及实例).ppt_第2页
第2页 / 共42页
高级软件工程10(SA概述、SA风格及实例).ppt_第3页
第3页 / 共42页
点击查看更多>>
资源描述
1,第三章 软件体系结构,概述 软件体系结构风格 OMA DNA,2,一、概述,1、为什么需要研究软件体系结构 规模增加 复杂性增加 需要演化 “算法+数据结构”对于软件的描述不全面 需要提高对软件总体结构的认识 构成成分、成分之间的关系 提供交流基础 反映高层设计 便于系统演化,3,2、什么是软件体系结构,对系统结构的总体设计与说明 是一种高层设计 关注三方面问题:构件、构件间关系、关系约束 构件: 软件系统由哪些部分构成 例如:数据库、服务器等 构件间的关系: 这些部分之间的交互关系是什么 例如:RPC、共享内存等 关系的约束: 这些关系有什么约束 例如:互斥、,4,3、软件体系结构的发展,(1)高级编程语言 (2)数据结构与算法 (3)软件结构 (4)抽象数据类型 (5)程序族 (6)软件体系结构 是研究热点,尚未进入成熟阶段,5,4、目前软件体系结构的研究热点,(1)软件体系结构描述 ADL (2)软件体系结构分类 原理、模式 (3)特定领域的框架 框架 (4)体系结构形式化的基础 过程代数、化学抽象机等,6,二、体系结构风格,大量地采用设计模式、风格 在许多工程中是十分普遍的 成功工程领域的一个重要特征之一 是对设计形式具有公共的理解 软件也有组织结构风格 需要对这些风格进行研究 以在开发人员之间建立 “公共认识”,7,1、什么是体系结构风格 2、常见的体系结构风格 3、Pipes and Filters 4、Data Abstraction and Object-Oriented Organization 5、Event-Based Implicit Invocation 6、Layered systems 7、Repositories 8、Interpreters 9、Process Control 10、Other Familiar Architecture 11、Heterogeneous Architecture 12、不同体系结构风格的比较,内 容,8,1、什么是体系结构风格,(1)风格是一种语言 词汇(管道、过滤器) 语法 语义 (2)风格是一种类型系统 Component(管道) Connector(过滤器) (3)风格是一种理论 由公理和推论组成的集合 管道=两个端点(读、写) 过滤器=输入断口、输出断口,9,2、常见的体系结构风格,数据流系统 批处理系统 管道/过滤器系统 调用/返回系统 主程序/子程序系统 面向对象系统 独立构件 通信进程系统 事件系统 虚拟机 解释器 基于规则的系统 数据为中心的系统 数据库 超文本系统,10,3、Pipes and Filters,(1)基本结构,(2)特征,过滤器是独立实体,相互之间不共享状态 过滤器不了解其它过滤器的信息,11,(3)例子 利用 Unix Shell 编写的程序 ls | find . 编译器 词法分析 语法分析 语义分析 代码生成,12,(4)优点 允许设计者将一个系统的整体输入/输出行为理解 为各个独立过滤器行为的简单合成。 对复用的支持好:任何两个过滤器之间,如果交流 的数据格式匹配,即可以连接在一起。 系统的维护与扩展方便:新的过滤器可以添加到现 有系统中,或者利用改进的过滤器替换老的过滤器。 方便系统分析:例如,吞吐量、死锁等 并发性好:每一个过滤器可以作为一个单独的任务 实现,可以与其它过滤器并行执行。,13,(5)缺点,经常导致批处理方式。过滤器易被认为是一个 将输入数据转换成输出数据的模块,不利于交互。 在维护或响应两个分离但相关的数据流时,利用 管道/过滤器方式不易。 由于依赖于实现,这样的系统可能强迫一种最 一般的数据传输标准,从而导致了为每一个过滤器进 行数据语法分析的工作,增加了复杂性,降低了性能。,14,4、Data Abstraction and Object-Oriented Organization,(1)基本结构,:对象,:调用,15,(2)特征 对象负责维持本身的完整性:维护内部变量 对象具有信息隐藏特性:对象的内部结构对其它 对象不可见。 (3)优点 封装: 继承: 多态: (4)缺点 过程调用依赖于对象标识的确定 不同对象的操作关联性弱,16,5、Event-Based Implicit Invocation,(1)基本结构,17,(2)特征 一个部件可以广播一个或多个事件,或者向系统 注册,希望接受一个或多个事件。 一个事件的激发隐含地导致了对其它模块的过程 的调用。 (3)优点 事件广播者不必知道哪些部件会被事件影响,部 件之间关系弱。 对软件复用提供有力的支持。 易于系统升级。 (4)缺点 部件放弃了对计算的控制。 不易准确测试系统性能。,18,6、Layered systems,(1)基本结构,内核层,用户,基本工具,有用的系统,过程调用,不同元素组合,19,(2)应用 分层通信协议 操作系统 数据库系统 (3)优点 支持基于抽象程度递增的系统设计,使得设计者 可以把一个复杂系统按递增的步骤分解开。 支持功能扩展,每一层至多和相邻的层次交互。 支持复用,只要服务接口定义不变,不同的实现 可以交换使用。 (4)缺点 适应面不宽,20,7、Repositories,(1)基本结构,黑板 (共享数据),知识源,知识源,知识源,知识源,知识源,知识源,知识源,知识源,知识源,存储器,计算,直接存取,21,(2)特点 知识源之间的交互只通过黑板完成 问题的解决是通过知识源不断地改变黑板完成的 (3)应用 (数据库) 信号处理 松耦合代理数据共享存取 其它例子: 带有全局数据库的批处理系统 编程开发环境 编译器等,22,8、Interpreters,(1)基本结构,输入,模拟 解释 引擎,存储器,数据存取,数据,计算状态机,内部 解释器 状态,解释执行中 的程序,输出,23,(2)作用 解释器通常被用来建立一种虚拟机 以祢合程序语义与硬件语义之间的差异 典型的例子是专家系统,24,9、Process Control(Loop),(1)背景 当软件被用来操作一个物理系统时,软件与硬件 之间可以粗略地表示为一个反馈循环,这个反馈循环通 过接受一定的输入,确定一系列的输出,最终使环境 达到一个新的状态。 适合于嵌入式系统,涉及连续的动作与状态。,25,(2)控制系统的定义,过程,输入变量,控制器,设置点,操作变量差,受控变量,26,(3)控制系统模型的构成 计算型模型 过程定义:包括操作某些过程变量的机制 控制算法:用来决定如何操纵过程变量 数据元素 过程变量:指定的输入、操纵变量等 设置点:受控变量的参考值 传感器:用于获得控制所需的过程变量值 控制环模型 建立控制算法之间的关系,它收集关于过程 实际的和欲达到的状态,并调节过程变量, 以使实际状态向目标状态发展,27,10、Other Familiar Architecture,(1)分布式处理 特定拓扑结构: 星型、环型、令牌环、层次等 客户/服务器模型: 松散耦合的计算模式 (2)主程序/子程序组织 主程序调用各个子程序 通常需要提供一个控制循环,28,(3)特定于领域的体系结构 DSSA:Domain Specific Software Architecture 缩小考虑范围 增加描述能力 提高代码复用率 提高开发效率 (4)状态转换系统 许多被动系统的公共组织是状态转换系统 这种系统根据一组状态和命名的转换来定义 这些转换可以使系统从一种状态过渡到另一种状态,29,11、Heterogeneous Architecture,(1)异构是不可避免的 不同风格的结构适合于不同的应用场合 新系统需要和老系统协调工作 (2)异构体系结构的复合 层次式 以某种体系结构实现的系统,其组成部分 内部可以是另一种体系结构,其连接部分 内部也可以具有体系结构。 对等式 系统以一种体系结构实现一个子系统, 以另外一种体系结构实现另一个子系统,30,(3)处理异构复合匹配问题的方法 不同构件之间不能协调工作的原因可能是它们 事先作了对数据表示、通信、包装、同步、语法等方 面的假设(统称形式)。 解决方法(以构件A与B为例): 形式A改变为B的形式 在数据传输过程中从A的形式转变为B的形式 为B提供进口/出口转换器 A与B协商以一种中间形式交流 IDL RTF,31,12、不同体系结构风格的比较,结合例子:KWIC(Parnas) Key Word In Context 系统接受一个有序的行集合 每行是一个有序的单词集合 每个单词是一个有序的字符集合 任意行可以被“循环移位” (将第一个单词移至最后) 系统输出 按字母表排序的 所有行的所有“循环移位”行,32,例如:,I am a teacher I give lecture of ASE We learn software architecture now,a teacher I am am a teacher I I am a teacher teacher I am a ASE I give lecture of give lecture of ASE I I give lecture of ASE lecture of ASE I give of ASE I give lecture .,33,所考虑的问题: (1)处理算法的变化 例如,何时进行移位 (2)数据表示的变化 例如,行、单词、字符的不同存放方式 (3)系统功能的增强 例如,部分单词的过滤 (4)性能 空间、时间 (5)复用 构件的复用程度,34,(1)主程序/子程序加共享数据,输入,主控制程序,循环移位,排序,输出,字符集,索引,排序过的索引,输入介质,输出介质,35,优点:允许数据有效地表达 计算问题被划分到不同的模块中 缺点:处理变化的能力不足 例如:数据存储格式的变化将影响 到几乎所有的模块 不易进行处理算法的改进与系统功能增强 对复用的支持不明显,36,(2)抽象数据类型,输入,主控制程序,循环移位,输出,字符集,排序,输入介质,输出介质,37,优点:算法与数据表示可以在独立的模块中改变 对复用的支持好 缺点:对功能增强支持不足,38,(3)隐式调用(事件),输入,主控制程序,循环移位,排序,输出,输入介质,输出介质,行,行,39,与主程序/子程序模式的不同: 数据接口更加抽象 不直接将存储格式暴露给计算模块 当数据被修改时,计算体被隐式调用 交互是基于“主动数据”进行的 优点: 对功能增强的支持好 对复用的支持好 缺点: 难以控制隐式调用模块的处理顺序 占用空间资源较多,40,(4)管道流水线,输入介质,输出介质,输入,循环移位,序列化,输出,41,优点: 维护处理的直接性 支持复用 易于修改 缺点: 不便于进行引入交互机制 对空间的利用不足,42,(5)比较,算法改变,数据表示改变,功能改变,性能,复用,共享 数据,ADT,隐式 调用,管道/ 过滤器,+,+,+,+,+,+,+,+,+,+,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!