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

上传人:牧羊曲112 文档编号:6069851 上传时间:2023-09-19 格式:PPT 页数:42 大小:320.11KB
返回 下载 相关 举报
高级软件工程(SA概述、SA风格及实例).ppt_第1页
第1页 / 共42页
高级软件工程(SA概述、SA风格及实例).ppt_第2页
第2页 / 共42页
高级软件工程(SA概述、SA风格及实例).ppt_第3页
第3页 / 共42页
高级软件工程(SA概述、SA风格及实例).ppt_第4页
第4页 / 共42页
高级软件工程(SA概述、SA风格及实例).ppt_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《高级软件工程(SA概述、SA风格及实例).ppt》由会员分享,可在线阅读,更多相关《高级软件工程(SA概述、SA风格及实例).ppt(42页珍藏版)》请在三一办公上搜索。

1、1,软件体系结构,概述软件体系结构风格OMADNA,2,一、概述,1、为什么需要研究软件体系结构规模增加复杂性增加需要演化“算法+数据结构”对于软件的描述不全面需要提高对软件总体结构的认识构成成分、成分之间的关系提供交流基础反映高层设计便于系统演化,3,2、什么是软件体系结构,对系统结构的总体设计与说明是一种高层设计关注三方面问题:构件、构件间关系、关系约束构件:软件系统由哪些部分构成例如:数据库、服务器等构件间的关系:这些部分之间的交互关系是什么例如:RPC、共享内存等关系的约束:这些关系有什么约束例如:互斥、,4,3、软件体系结构的发展,(1)高级编程语言(2)数据结构与算法(3)软件结构

2、(4)抽象数据类型(5)程序族(6)软件体系结构是研究热点,尚未进入成熟阶段,5,4、目前软件体系结构的研究热点,(1)软件体系结构描述ADL(2)软件体系结构分类原理、模式(3)特定领域的框架框架(4)体系结构形式化的基础过程代数、化学抽象机等,6,二、体系结构风格,大量地采用设计模式、风格在许多工程中是十分普遍的成功工程领域的一个重要特征之一是对设计形式具有公共的理解软件也有组织结构风格需要对这些风格进行研究以在开发人员之间建立“公共认识”,7,1、什么是体系结构风格2、常见的体系结构风格3、Pipes and Filters4、Data Abstraction and Object-Or

3、iented Organization5、Event-Based Implicit Invocation6、Layered systems7、Repositories8、Interpreters9、Process Control10、Other Familiar Architecture11、Heterogeneous Architecture12、不同体系结构风格的比较,内 容,8,1、什么是体系结构风格,(1)风格是一种语言词汇(管道、过滤器)语法语义(2)风格是一种类型系统Component(管道)Connector(过滤器)(3)风格是一种理论由公理和推论组成的集合管道=两个端点(读、

4、写)过滤器=输入断口、输出断口,9,2、常见的体系结构风格,数据流系统批处理系统管道/过滤器系统调用/返回系统主程序/子程序系统面向对象系统独立构件通信进程系统事件系统虚拟机解释器基于规则的系统数据为中心的系统数据库超文本系统,10,3、Pipes and Filters,(1)基本结构,(2)特征,过滤器是独立实体,相互之间不共享状态过滤器不了解其它过滤器的信息,11,(3)例子利用 Unix Shell 编写的程序ls|find.编译器词法分析语法分析语义分析代码生成,12,(4)优点允许设计者将一个系统的整体输入/输出行为理解为各个独立过滤器行为的简单合成。对复用的支持好:任何两个过滤器

5、之间,如果交流的数据格式匹配,即可以连接在一起。系统的维护与扩展方便:新的过滤器可以添加到现有系统中,或者利用改进的过滤器替换老的过滤器。方便系统分析:例如,吞吐量、死锁等并发性好:每一个过滤器可以作为一个单独的任务实现,可以与其它过滤器并行执行。,13,(5)缺点,经常导致批处理方式。过滤器易被认为是一个将输入数据转换成输出数据的模块,不利于交互。在维护或响应两个分离但相关的数据流时,利用管道/过滤器方式不易。由于依赖于实现,这样的系统可能强迫一种最一般的数据传输标准,从而导致了为每一个过滤器进行数据语法分析的工作,增加了复杂性,降低了性能。,14,4、Data Abstraction an

6、d Object-Oriented Organization,(1)基本结构,:对象,:调用,15,(2)特征对象负责维持本身的完整性:维护内部变量对象具有信息隐藏特性:对象的内部结构对其它对象不可见。(3)优点封装:继承:多态:(4)缺点过程调用依赖于对象标识的确定不同对象的操作关联性弱,16,5、Event-Based Implicit Invocation,(1)基本结构,17,(2)特征一个部件可以广播一个或多个事件,或者向系统注册,希望接受一个或多个事件。一个事件的激发隐含地导致了对其它模块的过程的调用。(3)优点事件广播者不必知道哪些部件会被事件影响,部件之间关系弱。对软件复用提供

7、有力的支持。易于系统升级。(4)缺点部件放弃了对计算的控制。不易准确测试系统性能。,18,6、Layered systems,(1)基本结构,内核层,用户,基本工具,有用的系统,过程调用,不同元素组合,19,(2)应用分层通信协议操作系统数据库系统(3)优点支持基于抽象程度递增的系统设计,使得设计者可以把一个复杂系统按递增的步骤分解开。支持功能扩展,每一层至多和相邻的层次交互。支持复用,只要服务接口定义不变,不同的实现可以交换使用。(4)缺点适应面不宽,20,7、Repositories,(1)基本结构,黑板(共享数据),知识源,知识源,知识源,知识源,知识源,知识源,知识源,知识源,知识源,

8、存储器,计算,直接存取,21,(2)特点知识源之间的交互只通过黑板完成问题的解决是通过知识源不断地改变黑板完成的(3)应用(数据库)信号处理松耦合代理数据共享存取其它例子:带有全局数据库的批处理系统编程开发环境编译器等,22,8、Interpreters,(1)基本结构,输入,模拟解释引擎,存储器,数据存取,数据,计算状态机,内部解释器状态,解释执行中的程序,输出,23,(2)作用解释器通常被用来建立一种虚拟机以祢合程序语义与硬件语义之间的差异典型的例子是专家系统,24,9、Process Control(Loop),(1)背景当软件被用来操作一个物理系统时,软件与硬件之间可以粗略地表示为一个

9、反馈循环,这个反馈循环通过接受一定的输入,确定一系列的输出,最终使环境达到一个新的状态。适合于嵌入式系统,涉及连续的动作与状态。,25,(2)控制系统的定义,过程,输入变量,控制器,设置点,操作变量差,受控变量,26,(3)控制系统模型的构成计算型模型过程定义:包括操作某些过程变量的机制控制算法:用来决定如何操纵过程变量数据元素过程变量:指定的输入、操纵变量等设置点:受控变量的参考值传感器:用于获得控制所需的过程变量值控制环模型建立控制算法之间的关系,它收集关于过程实际的和欲达到的状态,并调节过程变量,以使实际状态向目标状态发展,27,10、Other Familiar Architectur

10、e,(1)分布式处理特定拓扑结构:星型、环型、令牌环、层次等客户/服务器模型:松散耦合的计算模式(2)主程序/子程序组织主程序调用各个子程序通常需要提供一个控制循环,28,(3)特定于领域的体系结构DSSA:Domain Specific Software Architecture缩小考虑范围增加描述能力提高代码复用率提高开发效率(4)状态转换系统许多被动系统的公共组织是状态转换系统这种系统根据一组状态和命名的转换来定义这些转换可以使系统从一种状态过渡到另一种状态,29,11、Heterogeneous Architecture,(1)异构是不可避免的不同风格的结构适合于不同的应用场合新系统需

11、要和老系统协调工作(2)异构体系结构的复合层次式以某种体系结构实现的系统,其组成部分内部可以是另一种体系结构,其连接部分内部也可以具有体系结构。对等式系统以一种体系结构实现一个子系统,以另外一种体系结构实现另一个子系统,30,(3)处理异构复合匹配问题的方法不同构件之间不能协调工作的原因可能是它们事先作了对数据表示、通信、包装、同步、语法等方面的假设(统称形式)。解决方法(以构件A与B为例):形式A改变为B的形式在数据传输过程中从A的形式转变为B的形式为B提供进口/出口转换器A与B协商以一种中间形式交流IDLRTF,31,12、不同体系结构风格的比较,结合例子:KWIC(Parnas)Key

12、Word In Context系统接受一个有序的行集合每行是一个有序的单词集合每个单词是一个有序的字符集合任意行可以被“循环移位”(将第一个单词移至最后)系统输出 按字母表排序的所有行的所有“循环移位”行,32,例如:,I am a teacherI give lecture of ASEWe learn software architecture now,a teacher I amam a teacher II am a teacherteacher I am a ASE I give lecture of give lecture of ASE II give lecture of AS

13、Electure of ASE I give of ASE I give lecture.,33,所考虑的问题:(1)处理算法的变化例如,何时进行移位(2)数据表示的变化例如,行、单词、字符的不同存放方式(3)系统功能的增强例如,部分单词的过滤(4)性能空间、时间(5)复用构件的复用程度,34,(1)主程序/子程序加共享数据,输入,主控制程序,循环移位,排序,输出,字符集,索引,排序过的索引,输入介质,输出介质,35,优点:允许数据有效地表达计算问题被划分到不同的模块中缺点:处理变化的能力不足例如:数据存储格式的变化将影响 到几乎所有的模块不易进行处理算法的改进与系统功能增强对复用的支持不明显

14、,36,(2)抽象数据类型,输入,主控制程序,循环移位,输出,字符集,排序,输入介质,输出介质,37,优点:算法与数据表示可以在独立的模块中改变对复用的支持好缺点:对功能增强支持不足,38,(3)隐式调用(事件),输入,主控制程序,循环移位,排序,输出,输入介质,输出介质,行,行,39,与主程序/子程序模式的不同:数据接口更加抽象不直接将存储格式暴露给计算模块当数据被修改时,计算体被隐式调用交互是基于“主动数据”进行的优点:对功能增强的支持好对复用的支持好缺点:难以控制隐式调用模块的处理顺序占用空间资源较多,40,(4)管道流水线,输入介质,输出介质,输入,循环移位,序列化,输出,41,优点:维护处理的直接性支持复用易于修改缺点:不便于进行引入交互机制对空间的利用不足,42,(5)比较,算法改变,数据表示改变,功能改变,性能,复用,共享数据,ADT,隐式调用,管道/过滤器,+,+,+,+,+,+,+,+,+,+,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号