当前位置:文档之家› 高级软件工程(SA概述、SA风格及实例)

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

39
(4)管道流水线
输入介质
输入
循环移位
序列化
输出
输出介质
40
优点: 维护处理的直接性 支持复用 易于修改 缺点: 不便于进行引入交互机制 对空间的利用不足
41
(5)比较
共享 数据 隐式 调用
ADT
管道/ 过滤器
算法改变 数据表示改变
功能改变 性能 复用
— —

+

+

+

+ +

+
— —
+

软件体系结构
概述 软件体系结构风格 OMA DNA
1
一、概述
1、为什么需要研究软件体系结构
规模增加 复杂性增加 需要演化 “算法+数据结构”对于软件的描述不全面
需要提高对软件总体结构的认识 构成成分、成分之间的关系 提供交流基础 反映高层设计 便于系统演化
2
2、什么是软件体系结构
对系统结构的总体设计与说明 是一种高层设计 关注三方面问题:构件、构件间关系、关系约束
输入介质
输出介质34优点:来自允许数据有效地表达 计算问题被划分到不同的模块中
缺点:
处理变化的能力不足 例如:数据存储格式的变化将影响 到几乎所有的模块 不易进行处理算法的改进与系统功能增强 对复用的支持不明显
35
(2)抽象数据类型
主控制程序
输入
输出
字符集
循环移位
排序
输入介质
输出介质
36
优点:
算法与数据表示可以在独立的模块中改变 对复用的支持好 对功能增强支持不足
达到一个新的状态。
适合于嵌入式系统,涉及连续的动作与状态。
24
(2)控制系统的定义
输入变量 控制器 过程 操作变量差 受控变量
设置点
25
(3)控制系统模型的构成 计算型模型 过程定义:包括操作某些过程变量的机制 控制算法:用来决定如何操纵过程变量 数据元素 过程变量:指定的输入、操纵变量等 设置点:受控变量的参考值 传感器:用于获得控制所需的过程变量值 控制环模型 建立控制算法之间的关系,它收集关于过程 实际的和欲达到的状态,并调节过程变量, 以使实际状态向目标状态发展
32
所考虑的问题: (1)处理算法的变化 例如,何时进行移位 (2)数据表示的变化 例如,行、单词、字符的不同存放方式 (3)系统功能的增强 例如,部分单词的过滤 (4)性能 空间、时间 (5)复用 构件的复用程度
33
(1)主程序/子程序加共享数据
主控制程序
输入
循环移位
排序
输出
字符集
索引
排序过的索引
17
6、Layered systems
(1)基本结构
过程调用 有用的系统 基本工具
内核层
不同元素组合
用户
18
(2)应用 分层通信协议 操作系统 数据库系统 (3)优点 支持基于抽象程度递增的系统设计,使得设计者 可以把一个复杂系统按递增的步骤分解开。 支持功能扩展,每一层至多和相邻的层次交互。 支持复用,只要服务接口定义不变,不同的实现 可以交换使用。 (4)缺点 适应面不宽
19
7、Repositories
(1)基本结构
直接存取 知识源
计算
知识源
知识源
知识源
黑板 (共享数据)
知识源
知识源
知识源 知识源 知识源
存储器
20
(2)特点 知识源之间的交互只通过黑板完成 问题的解决是通过知识源不断地改变黑板完成的 (3)应用 (数据库) 信号处理 松耦合代理数据共享存取 其它例子: 带有全局数据库的批处理系统 编程开发环境 编译器等
例如:
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 ...
4
4、目前软件体系结构的研究热点 (1)软件体系结构描述 ADL (2)软件体系结构分类 原理、模式 (3)特定领域的框架 框架 (4)体系结构形式化的基础 过程代数、化学抽象机等
5
二、体系结构风格
大量地采用设计模式、风格 在许多工程中是十分普遍的 成功工程领域的一个重要特征之一 是对设计形式具有公共的理解 软件也有组织结构风格 需要对这些风格进行研究 以在开发人员之间建立 “公共认识”
29
(3)处理异构复合匹配问题的方法 不同构件之间不能协调工作的原因可能是它们 事先作了对数据表示、通信、包装、同步、语法等方 面的假设(统称形式)。 解决方法(以构件A与B为例): 形式A改变为B的形式 在数据传输过程中从A的形式转变为B的形式 为B提供进口/出口转换器 A与B协商以一种中间形式交流 IDL RTF
13
4、Data Abstraction and Object-Oriented Organization
(1)基本结构
:对象
:调用
14
(2)特征 对象负责维持本身的完整性:维护内部变量 对象具有信息隐藏特性:对象的内部结构对其它 对象不可见。 (3)优点 封装: 继承: 多态: (4)缺点 过程调用依赖于对象标识的确定 不同对象的操作关联性弱
6
内 容
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、不同体系结构风格的比较
缺点:
37
(3)隐式调用(事件)
主控制程序
输入
循环移位
排序
输出
输入介质


输出介质
38
与主程序/子程序模式的不同: 数据接口更加抽象 不直接将存储格式暴露给计算模块 当数据被修改时,计算体被隐式调用 交互是基于“主动数据”进行的 优点: 对功能增强的支持好 对复用的支持好
缺点: 难以控制隐式调用模块的处理顺序 占用空间资源较多
26
10、Other Familiar Architecture
(1)分布式处理 特定拓扑结构: 星型、环型、令牌环、层次等 客户/服务器模型: 松散耦合的计算模式
(2)主程序/子程序组织 主程序调用各个子程序 通常需要提供一个控制循环
27
(3)特定于领域的体系结构 DSSA:Domain Specific Software Architecture 缩小考虑范围 增加描述能力 提高代码复用率 提高开发效率
21
8、Interpreters
(1)基本结构
存储器
输入
数据
解释执行中 的程序
计算状态机
输出
模拟 解释 引擎 数据存取
内部 解释器 状态
22
(2)作用 解释器通常被用来建立一种虚拟机 以祢合程序语义与硬件语义之间的差异
典型的例子是专家系统
23
9、Process Control(Loop)
(1)背景 当软件被用来操作一个物理系统时,软件与硬件 之间可以粗略地表示为一个反馈循环,这个反馈循环通 过接受一定的输入,确定一系列的输出,最终使环境
(4)状态转换系统 许多被动系统的公共组织是状态转换系统 这种系统根据一组状态和命名的转换来定义 这些转换可以使系统从一种状态过渡到另一种状态
28
11、Heterogeneous Architecture
(1)异构是不可避免的 不同风格的结构适合于不同的应用场合 新系统需要和老系统协调工作
(2)异构体系结构的复合 层次式 以某种体系结构实现的系统,其组成部分 内部可以是另一种体系结构,其连接部分 内部也可以具有体系结构。 对等式 系统以一种体系结构实现一个子系统, 以另外一种体系结构实现另一个子系统
+ +
+
42
15
5、Event-Based Implicit Invocation
(1)基本结构
16
(2)特征 一个部件可以广播一个或多个事件,或者向系统 注册,希望接受一个或多个事件。 一个事件的激发隐含地导致了对其它模块的过程 的调用。 (3)优点 事件广播者不必知道哪些部件会被事件影响,部 件之间关系弱。 对软件复用提供有力的支持。 易于系统升级。 (4)缺点 部件放弃了对计算的控制。 不易准确测试系统性能。
9
3、Pipes and Filters
(1)基本结构
(2)特征 过滤器是独立实体,相互之间不共享状态 过滤器不了解其它过滤器的信息
10
(3)例子 利用 Unix Shell 编写的程序 ls | find ... 编译器 词法分析 语法分析 语义分析 代码生成
11
(4)优点
允许设计者将一个系统的整体输入/输出行为理解 为各个独立过滤器行为的简单合成。 对复用的支持好:任何两个过滤器之间,如果交流 的数据格式匹配,即可以连接在一起。 系统的维护与扩展方便:新的过滤器可以添加到现 有系统中,或者利用改进的过滤器替换老的过滤器。 方便系统分析:例如,吞吐量、死锁等 并发性好:每一个过滤器可以作为一个单独的任务 实现,可以与其它过滤器并行执行。
相关主题