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

上传人:wuy****n92 文档编号:74231516 上传时间:2023-02-25 格式:PPT 页数:42 大小:320.11KB
返回 下载 相关 举报
高级软件工程(SA概述、SA风格及实例).ppt_第1页
第1页 / 共42页
高级软件工程(SA概述、SA风格及实例).ppt_第2页
第2页 / 共42页
点击查看更多>>
资源描述

《高级软件工程(SA概述、SA风格及实例).ppt》由会员分享,可在线阅读,更多相关《高级软件工程(SA概述、SA风格及实例).ppt(42页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、 软件体系结构软件体系结构概述概述软件体系结构风格软件体系结构风格OMADNA1一、概述一、概述1、为什么需要研究软件体系结构、为什么需要研究软件体系结构规模增加规模增加复杂性增加复杂性增加需要演化需要演化“算法算法+数据结构数据结构”对于软件的描述不全面对于软件的描述不全面 需要提高对软件总体结构的认识需要提高对软件总体结构的认识构成成分、成分之间的关系构成成分、成分之间的关系提供交流基础提供交流基础反映高层设计反映高层设计便于系统演化便于系统演化22、什么是软件体系结构、什么是软件体系结构对系统结构的总体设计与说明对系统结构的总体设计与说明是一种高层设计是一种高层设计关注三方面问题:构件、

2、构件间关系、关系约束关注三方面问题:构件、构件间关系、关系约束构件:构件:软件系统由哪些部分构成软件系统由哪些部分构成例如:数据库、服务器等例如:数据库、服务器等构件间的关系:构件间的关系:这些部分之间的交互关系是什么这些部分之间的交互关系是什么例如:例如:RPC、共享内存等、共享内存等关系的约束:关系的约束:这些关系有什么约束这些关系有什么约束例如:互斥、例如:互斥、33、软件体系结构的发展、软件体系结构的发展(1)高级编程语言)高级编程语言(2)数据结构与算法)数据结构与算法(3)软件结构)软件结构(4)抽象数据类型)抽象数据类型(5)程序族)程序族(6)软件体系结构)软件体系结构是研究热

3、点,尚未进入成熟阶段是研究热点,尚未进入成熟阶段44、目前软件体系结构的研究热点、目前软件体系结构的研究热点(1)软件体系结构描述)软件体系结构描述ADL(2)软件体系结构分类)软件体系结构分类原理、模式原理、模式(3)特定领域的框架)特定领域的框架框架框架(4)体系结构形式化的基础)体系结构形式化的基础过程代数、化学抽象机等过程代数、化学抽象机等5二、体系结构风格二、体系结构风格大量地采用设计模式、风格大量地采用设计模式、风格在许多工程中是十分普遍的在许多工程中是十分普遍的成功工程领域的一个重要特征之一成功工程领域的一个重要特征之一是对设计形式具有公共的理解是对设计形式具有公共的理解软件也有

4、组织结构风格软件也有组织结构风格需要对这些风格进行研究需要对这些风格进行研究以在开发人员之间建立以在开发人员之间建立“公共认识公共认识”61、什么是体系结构风格、什么是体系结构风格2、常见的体系结构风格、常见的体系结构风格3、Pipes and Filters4、Data Abstraction and Object-Oriented Organization5、Event-Based Implicit Invocation6、Layered systems7、Repositories8、Interpreters9、Process Control10、Other Familiar Archit

5、ecture11、Heterogeneous Architecture12、不同体系结构风格的比较、不同体系结构风格的比较内内 容容71、什么是体系结构风格、什么是体系结构风格(1)风格是一种语言)风格是一种语言词汇(管道、过滤器)词汇(管道、过滤器)语法语法语义语义(2)风格是一种类型系统)风格是一种类型系统Component(管道)(管道)Connector(过滤器)(过滤器)(3)风格是一种理论)风格是一种理论由公理和推论组成的集合由公理和推论组成的集合管道管道=两个端点(读、写)两个端点(读、写)过滤器过滤器=输入断口、输出断口输入断口、输出断口82、常见的体系结构风格、常见的体系结构

6、风格数据流系统数据流系统批处理系统批处理系统管道管道/过滤器系统过滤器系统调用调用/返回系统返回系统主程序主程序/子程序系统子程序系统面向对象系统面向对象系统独立构件独立构件通信进程系统通信进程系统事件系统事件系统虚拟机虚拟机解释器解释器基于规则的系统基于规则的系统数据为中心的系统数据为中心的系统数据库数据库超文本系统超文本系统93、Pipes and Filters(1)基本结构)基本结构(2)特征)特征过滤器是独立实体,相互之间不共享状态过滤器是独立实体,相互之间不共享状态过滤器不了解其它过滤器的信息过滤器不了解其它过滤器的信息10(3)例子)例子利用利用 Unix Shell 编写的程序

7、编写的程序ls|find.编译器编译器词法分析词法分析语法分析语法分析语义分析语义分析代码生成代码生成11(4)优点)优点允许设计者将一个系统的整体输入允许设计者将一个系统的整体输入/输出行为理解输出行为理解为各个独立过滤器行为的简单合成。为各个独立过滤器行为的简单合成。对复用的支持好:任何两个过滤器之间,如果交流对复用的支持好:任何两个过滤器之间,如果交流的数据格式匹配,即可以连接在一起。的数据格式匹配,即可以连接在一起。系统的维护与扩展方便:新的过滤器可以添加到现系统的维护与扩展方便:新的过滤器可以添加到现有系统中,或者利用改进的过滤器替换老的过滤器。有系统中,或者利用改进的过滤器替换老的

8、过滤器。方便系统分析:例如,吞吐量、死锁等方便系统分析:例如,吞吐量、死锁等并发性好:每一个过滤器可以作为一个单独的任务并发性好:每一个过滤器可以作为一个单独的任务实现,可以与其它过滤器并行执行。实现,可以与其它过滤器并行执行。12(5)缺点)缺点经常导致批处理方式。过滤器易被认为是一个经常导致批处理方式。过滤器易被认为是一个将输入数据转换成输出数据的模块,不利于交互。将输入数据转换成输出数据的模块,不利于交互。在维护或响应两个分离但相关的数据流时,利用在维护或响应两个分离但相关的数据流时,利用管道管道/过滤器方式不易。过滤器方式不易。由于依赖于实现,这样的系统可能强迫一种最由于依赖于实现,这

9、样的系统可能强迫一种最一般的数据传输标准,从而导致了为每一个过滤器进一般的数据传输标准,从而导致了为每一个过滤器进行数据语法分析的工作,增加了复杂性,降低了性能。行数据语法分析的工作,增加了复杂性,降低了性能。134、Data Abstraction and Object-Oriented Organization(1)基本结构)基本结构:对象:对象:调用:调用14(2)特征)特征对象负责维持本身的完整性:维护内部变量对象负责维持本身的完整性:维护内部变量对象具有信息隐藏特性:对象的内部结构对其它对象具有信息隐藏特性:对象的内部结构对其它对象不可见。对象不可见。(3)优点)优点封装:封装:继承

10、:继承:多态:多态:(4)缺点)缺点过程调用依赖于对象标识的确定过程调用依赖于对象标识的确定不同对象的操作关联性弱不同对象的操作关联性弱155、Event-Based Implicit Invocation(1)基本结构)基本结构16(2)特征)特征一个部件可以广播一个或多个事件,或者向系统一个部件可以广播一个或多个事件,或者向系统注册,希望接受一个或多个事件。注册,希望接受一个或多个事件。一个事件的激发隐含地导致了对其它模块的过程一个事件的激发隐含地导致了对其它模块的过程的调用。的调用。(3)优点)优点事件广播者不必知道哪些部件会被事件影响,部事件广播者不必知道哪些部件会被事件影响,部件之间

11、关系弱。件之间关系弱。对软件复用提供有力的支持。对软件复用提供有力的支持。易于系统升级。易于系统升级。(4)缺点)缺点部件放弃了对计算的控制。部件放弃了对计算的控制。不易准确测试系统性能。不易准确测试系统性能。176、Layered systems(1)基本结构基本结构内核层内核层用户用户基本工具基本工具有用的系统有用的系统过程调用过程调用不同元素组合不同元素组合18(2)应用)应用分层通信协议分层通信协议操作系统操作系统数据库系统数据库系统(3)优点)优点支持基于抽象程度递增的系统设计,使得设计者支持基于抽象程度递增的系统设计,使得设计者可以把一个复杂系统按递增的步骤分解开。可以把一个复杂系

12、统按递增的步骤分解开。支持功能扩展,每一层至多和相邻的层次交互。支持功能扩展,每一层至多和相邻的层次交互。支持复用,只要服务接口定义不变,不同的实现支持复用,只要服务接口定义不变,不同的实现可以交换使用。可以交换使用。(4)缺点)缺点适应面不宽适应面不宽 197、Repositories(1)基本结构基本结构 黑板黑板(共享数据)(共享数据)知识源知识源知识源知识源知识源知识源知识源知识源知识源知识源知识源知识源知识源知识源知识源知识源知识源知识源存储器存储器计算计算直接存取直接存取20(2)特点)特点知识源之间的交互只通过黑板完成知识源之间的交互只通过黑板完成问题的解决是通过知识源不断地改变

13、黑板完成的问题的解决是通过知识源不断地改变黑板完成的(3)应用)应用(数据库)(数据库)信号处理信号处理松耦合代理数据共享存取松耦合代理数据共享存取其它例子:其它例子:带有全局数据库的批处理系统带有全局数据库的批处理系统编程开发环境编程开发环境编译器等编译器等 218、Interpreters(1)基本结构)基本结构输入输入模拟模拟解释解释引擎引擎存储器存储器数据存取数据存取数据数据计算状态机计算状态机内部内部解释器解释器状态状态解释执行中解释执行中的程序的程序输出输出22(2)作用)作用解释器通常被用来建立一种虚拟机解释器通常被用来建立一种虚拟机以祢合程序语义与硬件语义之间的差异以祢合程序语

14、义与硬件语义之间的差异典型的例子是专家系统典型的例子是专家系统239、Process Control(Loop)(1)背景)背景当软件被用来操作一个物理系统时,软件与硬件当软件被用来操作一个物理系统时,软件与硬件之间可以粗略地表示为一个反馈循环,这个反馈循环通之间可以粗略地表示为一个反馈循环,这个反馈循环通过接受一定的输入,确定一系列的输出,最终使环境过接受一定的输入,确定一系列的输出,最终使环境达到一个新的状态。达到一个新的状态。适合于嵌入式系统,涉及连续的动作与状态。适合于嵌入式系统,涉及连续的动作与状态。24(2)控制系统的定义)控制系统的定义过程输入变量控制器设置点操作变量差受控变量2

15、5(3)控制系统模型的构成)控制系统模型的构成计算型模型计算型模型过程定义:包括操作某些过程变量的机制过程定义:包括操作某些过程变量的机制控制算法:用来决定如何操纵过程变量控制算法:用来决定如何操纵过程变量数据元素数据元素过程变量:指定的输入、操纵变量等过程变量:指定的输入、操纵变量等设置点:受控变量的参考值设置点:受控变量的参考值传感器:用于获得控制所需的过程变量值传感器:用于获得控制所需的过程变量值控制环模型控制环模型建立控制算法之间的关系,它收集关于过程建立控制算法之间的关系,它收集关于过程实际的和欲达到的状态,并调节过程变量,实际的和欲达到的状态,并调节过程变量,以使实际状态向目标状态

16、发展以使实际状态向目标状态发展2610、Other Familiar Architecture(1)分布式处理)分布式处理特定拓扑结构:特定拓扑结构:星型、环型、令牌环、层次等星型、环型、令牌环、层次等客户客户/服务器模型:服务器模型:松散耦合的计算模式松散耦合的计算模式(2)主程序)主程序/子程序组织子程序组织主程序调用各个子程序主程序调用各个子程序通常需要提供一个控制循环通常需要提供一个控制循环27(3)特定于领域的体系结构)特定于领域的体系结构DSSA:Domain Specific Software Architecture缩小考虑范围缩小考虑范围增加描述能力增加描述能力提高代码复用率

17、提高代码复用率提高开发效率提高开发效率(4)状态转换系统)状态转换系统许多被动系统的公共组织是状态转换系统许多被动系统的公共组织是状态转换系统这种系统根据一组状态和命名的转换来定义这种系统根据一组状态和命名的转换来定义这些转换可以使系统从一种状态过渡到另一种状态这些转换可以使系统从一种状态过渡到另一种状态2811、Heterogeneous Architecture(1)异构是不可避免的)异构是不可避免的不同风格的结构适合于不同的应用场合不同风格的结构适合于不同的应用场合新系统需要和老系统协调工作新系统需要和老系统协调工作(2)异构体系结构的复合)异构体系结构的复合层次式层次式以某种体系结构实

18、现的系统,其组成部分以某种体系结构实现的系统,其组成部分内部可以是另一种体系结构,其连接部分内部可以是另一种体系结构,其连接部分内部也可以具有体系结构。内部也可以具有体系结构。对等式对等式系统以一种体系结构实现一个子系统,系统以一种体系结构实现一个子系统,以另外一种体系结构实现另一个子系统以另外一种体系结构实现另一个子系统29(3)处理异构复合匹配问题的方法)处理异构复合匹配问题的方法不同构件之间不能协调工作的原因可能是它们不同构件之间不能协调工作的原因可能是它们事先作了对数据表示、通信、包装、同步、语法等方事先作了对数据表示、通信、包装、同步、语法等方面的假设(统称形式)。面的假设(统称形式

19、)。解决方法(以构件解决方法(以构件A与与B为例):为例):形式形式A改变为改变为B的形式的形式在数据传输过程中从在数据传输过程中从A的形式转变为的形式转变为B的形式的形式为为B提供进口提供进口/出口转换器出口转换器A与与B协商以一种中间形式交流协商以一种中间形式交流IDLRTF3012、不同体系结构风格的比较、不同体系结构风格的比较结合例子:结合例子:KWIC(Parnas)Key Word In Context 系统接受系统接受一个有序的行集合一个有序的行集合每行是一个有序的单词集合每行是一个有序的单词集合每个单词是一个有序的字符集合每个单词是一个有序的字符集合任意行可以被任意行可以被“循

20、环移位循环移位”(将第一个单词移至最后)(将第一个单词移至最后)系统输出系统输出 按字母表排序的按字母表排序的所有行的所有所有行的所有“循环移位循环移位”行行31例如:例如:I am a teacherI give lecture of ASEWe learn software architecture nowa 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 ASElecture of ASE I give o

21、f ASE I give lecture.32所考虑的问题:所考虑的问题:(1)处理算法的变化)处理算法的变化例如,何时进行移位例如,何时进行移位(2)数据表示的变化)数据表示的变化例如,行、单词、字符的不同存放方式例如,行、单词、字符的不同存放方式(3)系统功能的增强)系统功能的增强例如,部分单词的过滤例如,部分单词的过滤(4)性能)性能空间、时间空间、时间(5)复用)复用构件的复用程度构件的复用程度33(1)主程序)主程序/子程序加共享数据子程序加共享数据输入输入主控制程序主控制程序循环移位循环移位排序排序输出输出字符集字符集索引索引排序过的索引排序过的索引输入介质输入介质输出介质输出介质

22、34优点:优点:允许数据有效地表达允许数据有效地表达计算问题被划分到不同的模块中计算问题被划分到不同的模块中缺点:缺点:处理变化的能力不足处理变化的能力不足例如:数据存储格式的变化将影响例如:数据存储格式的变化将影响 到几乎所有的模块到几乎所有的模块不易进行处理算法的改进与系统功能增强不易进行处理算法的改进与系统功能增强对复用的支持不明显对复用的支持不明显35(2)抽象数据类型)抽象数据类型输入输入主控制程序主控制程序循环移位循环移位输出输出字符集字符集 排序排序输入介质输入介质输出介质输出介质36优点:优点:算法与数据表示可以在独立的模块中改变算法与数据表示可以在独立的模块中改变对复用的支持

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

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com