高级软件工程SA概述、SA风格及实例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

例如:
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 ...
3
4、目前软件体系结构的研究热点 (1)软件体系结构描述 ADL (2)软件体系结构分类 原理、模式 (3)特定领域的框架 框架 (4)体系结构形式化的基础 过程代数、化学抽象机等
4
二、体系结构风格
大量地采用设计模式、风格 在许多工程中是十分普遍的 成功工程领域的一个重要特征之一 是对设计形式具有公共的理解 软件也有组织结构风格 需要对这些风格进行研究 以在开发人员之间建立 “公共认识”
(4)状态转换系统 许多被动系统的公共组织是状态转换系统 这种系统根据一组状态和命名的转换来定义 这些转换可以使系统从一种状态过渡到另一种状态
27
11、Heterogeneous Architecture
(1)异构是不可避免的 不同风格的结构适合于不同的应用场合 新系统需要和老系统协调工作
(2)异构体系结构的复合 层次式 以某种体系结构实现的系统,其组成部分 内部可以是另一种体系结构,其连接部分 内部也可以具有体系结构。 对等式 系统以一种体系结构实现一个子系统, 以另外一种体系结构实现另一个子系统
12
4、Data Abstraction and Object-Oriented Organization
(1)基本结构
:对象
:调用
13
(2)特征 对象负责维持本身的完整性:维护内部变量 对象具有信息隐藏特性:对象的内部结构对其它 对象不可见。 (3)优点 封装: 继承: 多态: (4)缺点 过程调用依赖于对象标识的确定 不同对象的操作关联性弱
构件: 软件系统由哪些部分构成 例如:数据库、服务器等 构件间的关系: 这些部分之间的交互关系是什么 例如:RPC、共享内存等 关系的约束: 这些关系有什么约束 例如:互斥、
2
3、软件体系结构的发展 (1)高级编程语言 (2)数据结构与算法 (3)软件结构 (4)抽象数据类型 (5)程序族 (6)软件体系结构 是研究热点,尚未进入成熟阶段
输入介质
输出介质
33
优点:
允许数据有效地表达 计算问题被划分到不同的模块中
缺点:
处理变化的能力不足 例如:数据存储格式的变化将影响 到几乎所有的模块 不易进行处理算法的改进与系统功能增强 对复用的支持不明显
34
(2)抽象数据类型
主控制程序
输入
输出
字符集
循环移位
排序
输入介质
输出介质
35
优点:
算法与数据表示可以在独立的模块中改变 对复用的支持好 对功能增强支持不足
缺点:
36
(3)隐式调用(事件)
主控制程序
输入
循环移位
排序
输出
输入介质


输出介质
37
与主程序/子程序模式的不同: 数据接口更加抽象 不直接将存储格式暴露给计算模块 当数据被修改时,计算体被隐式调用 交互是基于“主动数据”进行的 优点: 对功能增强的支持好 对复用的支持好
缺点: 难以控制隐式调用模块的处理顺序 占用空间资源较多
一、概述
1、为什么需要研究软件体系结构
规模增加 复杂性增加 需要演化 “算法+数据结构”对于软件的描述不全面
需要提高对软件总体结构的认识 构成成分、成分之间的关系 提供交流基础 反映高层设计 便于系统演化
1
2、什么是软件体系结构
对系统结构的总体设计与说明 是一种高层设计 关注三方面问题:构件、构件间关系、关系约束
16
6、Layered systems
(1)基本结构
过程调用 有用的系统 基本工具
内核层
不同元素组合
用户
17
(2)应用 分层通信协议 操作系统 数据库系统 (3)优点 支持基于抽象程度递增的系统设计,使得设计者 可以把一个复杂系统按递增的步骤分解开。 支持功能扩展,每一层至多和相邻的层次交互。 支持复用,只要服务接口定义不变,不同的实现 可以交换使用。 (4)缺点 适应面不宽
8
3、Pipes and Filters
(1)基本结构
(2)特征 过滤器是独立实体,相互之间不共享状态 过滤器不了解其它过滤器的信息
9
(3)例子 利用 Unix Shell 编写的程序 ls | find ... 编译器 词法分析 语法分析 语义分析 代码生成
10
(4)优点
允许设计者将一个系统的整体输入/输出行为理解 为各个独立过滤器行为的简单合成。 对复用的支持好:任何两个过滤器之间,如果交流 的数据格式匹配,即可以连接在一起。 系统的维护与扩展方便:新的过滤器可以添加到现 有系统中,或者利用改进的过滤器替换老的过滤器。 方便系统分析:例如,吞吐量、死锁等 并发性好:每一个过滤器可以作为一个单独的任务 实现,可以与其它过滤器并行执行。
6
1、什么是体系结构风格
(1)风格是一种语言 词汇(管道、过滤器) 语法 语义 (2)风格是一种类型系统 Component(管道) Connector(过滤器) (3)风格是一种理论 由公理和推论组成的集合 管道=》两个端点(读、写) 过滤器=》输入断口、输出断口
7
2、常见的体系结构风格
数据流系统 批处理系统 管道/过滤器系统 调用/返回系统 主程序/子程序系统 面向对象系统 独立构件 通信进程系统 事件系统 虚拟机 解释器 基于规则的系统 数据为中心的系统 数据库 超文本系统
28
(3)处理异构复合匹配问题的方法 不同构件之间不能协调工作的原因可能是它们 事先作了对数据表示、通信、包装、同步、语法等方 面的假设(统称形式)。 解决方法(以构件A与B为例): 形式A改变为B的形式 在数据传输过程中从A的形式转变为B的形式 为B提供进口/出口转换器 A与B协商以一种中间形式交流 IDL RTF
25
10、Other Familiar Architecture
(1)分布式处理 特定拓扑结构: 星型、环型、令牌环、层次等 客户/服务器模型: 松散耦合的计算模式
(2)主程序/子程序组织 主程序调用各个子程序 通常需要提供一个控制循环
26
(3)特定于领域的体系结构 DSSA:Domain Specific Software Architecture 缩小考虑范围 增加描述能力 提高代码复用率 提高开发效率
29
12、不同体系结构风格的比较
结合例子:KWIC(Parnas) Key Word In Context 系统接受 一个有序的行集合 每行是一个有序的单词集合 每个单词是一个有序的字符集合 任意行可以被“循环移位” (将第一个单词移至最后) 按字母表排序的 所有行的所有“循环移位”行
系统输出
30
20
8、Interpreters
(1)基本结构
存储器
输入
数据
解释执行中 的程序
计算状态机
输出
模拟 解释 引擎 数据存取
内部 解释器 状态
21
(2)作用 解释器通常被用来建立一种虚拟机 以祢合程序语义与硬件语义之间的差异
典型的例子是专家系统
22
9、Process Control(Loop)
(1)背景 当软件被用来操作一个物理系统时,软件与硬件 之间可以粗略地表示为一个反馈循环,这个反馈循环通 过接受一定的输入,确定一系列的输出,最终使环境
38
(4)管道流水线
输入介质
输入
循环移位
序列化
输出
输出介质
39
优点: 维护处理的直接性 支持复用 易于修改 缺点: 不便于进行引入交互机制 对空间的利用不足
40
(5)比较
共享 数据 隐式 调用
ADT
管道/ 过滤器
算法改变 数据表示改变
功能改变 性能 复用
— —

+

+

+

+ +

+
— —
+

+ +
+
41
31
所考虑的问题: (1)处理算法的变化 例如,何时进行移位 (2)数据表示的变化 例如,行、单词、字符的不同存放方式 (3)系统功能的增强 例如,部分单词的过滤 (4)性能 空间、时间 (5)复用 构件的复用程度
32
(1)主程序/子程序加共享数据
主控制程序
输入
循环移位
排序
输出
字符集
索引
排序过的索引
11
(5)缺点
经常导致批处理方式。过滤器易被认为是一个 将输入数据转换成输出数据的模块,不利于交互。 在维护或响应两个分离但相关的数据流时,利用 管道/过滤器方式不易。 由于依赖于实现,这样的系统可能强迫一种最 一般的数据传输标准,从而导致了为每一个过滤器进 行数据语法分析的工作,增加了复杂性,降低了性能。
达到一个新的状态。
适合于嵌入式系统,涉及连续的动作与状态。
23
(2)控制系统的定义
输入变量 控制器 过程 操作变量差 受控变量
设置点
24
(3)控制系统模型的构成 计算型模型 过程定义:包括操作某些过程变量的机制 控制算法:用来决定如何操纵过程变量 数据元素 过程变量:指定的输入、操纵变量等 设置点:受控变量的参考值 传感器:用于获得控制所需的过程变量值 控制环模型 建立控制算法之间的关系,它收集关于过程 实际的和欲达到的状态,并调节过程变量, 以使实际状态向目标状态发展
14
5、Event-Based Implicit Invocation
(1)基本结构
15
(2)特征 一个部件可以广播一个或多个事件,或者向系统 注册,希望接受一个或多个事件。 一个事件的激发隐含地导致了对其它模块的过程 的调用。 (3)优点 事件广播者不必知道哪些部件会被事件影响,部 件之间关系弱。 对软件复用提供有力的支持。 易于系统升级。 (4)缺点 部件放弃了对计算的控制。 不易准确测试系统性能。
18
7、Repositories
(1)基本结构
直接存取 知识源
计算
知识源
知识源
知识源
黑板 (共享数据)储器
19
(2)特点 知识源之间的交互只通过黑板完成 问题的解决是通过知识源不断地改变黑板完成的 (3)应用 (数据库) 信号处理 松耦合代理数据共享存取 其它例子: 带有全局数据库的批处理系统 编程开发环境 编译器等
5
内 容
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、不同体系结构风格的比较
相关文档
最新文档