软件体系结构 PPT
合集下载
软件体系结构风格PPT课件

特点: 1.构件是模块,模块可以是过程也可以是事件的集
合。 2.连接件:往往是以过程之间的隐式调用(Implicit
Invocation)来实现的
.
15
例:观察者模式
public interface Subject { public void attach (Observer observer);
◎难以进行错误处理,管道/过滤器结构的固有特性,决定了 很难制定错误处理的一般性策略
.
9
实例: 传统的编译器是管道/过滤器体系结构风格的一个实例
源 程
词法分析
序
语法分析
语义分析
目 标 中间代码生成 中间代码优化 目标代码生成 程 序
.
10
面向对象风格
这种风格建立在数据抽象和面向对象的基础上, 数据的表示方法和它们的相应操作封装在一个抽象 数据类型或对象中。
体系结构风格最关键的四要素
◎ 提供一个词汇表
◎ 定义一套配置规则
◎ 定义一套语义解释原则
◎ 定义对基于这种风格的系统所进行的分析
.
4
体系结构的风格有哪些? 管道-过滤器风格 面向对象风格 事件驱动风格 分层风格 数据共享风格 解释器风格 反馈控制环风格
.
5
管道-过滤器风格
特点: 1.每个构件都有输入输出,构件完成对输入数据的处
软件体系结构风格
.
1
软件框架设计的核心问题是:能否复用已经成型的 体系结构方案
不同系统的设计方案存在着许多共性问题,把这些 共性部分抽取出来,就形成了具有代表性的和可广 泛接受的体系结构风格
.
2
体系结构风格
什么是软件体系结构风格? 软件体系结构风格是描述某一特定应用领域中系统组
合。 2.连接件:往往是以过程之间的隐式调用(Implicit
Invocation)来实现的
.
15
例:观察者模式
public interface Subject { public void attach (Observer observer);
◎难以进行错误处理,管道/过滤器结构的固有特性,决定了 很难制定错误处理的一般性策略
.
9
实例: 传统的编译器是管道/过滤器体系结构风格的一个实例
源 程
词法分析
序
语法分析
语义分析
目 标 中间代码生成 中间代码优化 目标代码生成 程 序
.
10
面向对象风格
这种风格建立在数据抽象和面向对象的基础上, 数据的表示方法和它们的相应操作封装在一个抽象 数据类型或对象中。
体系结构风格最关键的四要素
◎ 提供一个词汇表
◎ 定义一套配置规则
◎ 定义一套语义解释原则
◎ 定义对基于这种风格的系统所进行的分析
.
4
体系结构的风格有哪些? 管道-过滤器风格 面向对象风格 事件驱动风格 分层风格 数据共享风格 解释器风格 反馈控制环风格
.
5
管道-过滤器风格
特点: 1.每个构件都有输入输出,构件完成对输入数据的处
软件体系结构风格
.
1
软件框架设计的核心问题是:能否复用已经成型的 体系结构方案
不同系统的设计方案存在着许多共性问题,把这些 共性部分抽取出来,就形成了具有代表性的和可广 泛接受的体系结构风格
.
2
体系结构风格
什么是软件体系结构风格? 软件体系结构风格是描述某一特定应用领域中系统组
软件体系结构课件第5章统一建模语言

2:GetPrefSet()
10:PrefSet(date_mg)
1:GetPrefSet()
:MeetingInitiator
第5章 统一建模语言 直接使用UML建模 – 会议安排系统的类图
Person
StronglyConflicts With
Conflicts With
Important Attendee
0..* 0..*
0..* Profers
Attendee
1..* 1..* 0..* 0..*
11 1 1
1
Meeting Initiator
Find.exe
Query .dll
部署图 定义系 统中软 硬件的 物理体
系结构
第5章 统一建模语言 部署图
客户端:个人PC QueryClient.exe
服务器
《TCP/IP》 查询
QueryServer.exe 部署图
定义系
统中软
Find.exe
硬件的
物理体
Query.dll系结构
第5章 统一建模语言
第5章 统一建模语言
直接使用UML建模 – UML中的通用表示
➢ 字符串:表示有关模型的信息; ➢ 名字:表示模型元素; ➢ 标号:不同于编程语言中的标号,是用于表示或说明图形符号的字
符串; ➢ 特殊字符串:表示某一模型元素的特性; ➢ 类型表达式:声明属性、变量及参数,含义同编程语言中的类型表
0
10
20
30s 时间刻度
第5章 统一建模语言 状态图
提交订单 已审核 印前处理
客户付钱
已付款
已处理
进行冲印
冲印中 冲印完成
描述满足 用例要求 所要进行 的活动以 及活动间 的完约成束关 系,有利 于识别并 行活动
体系结构 第2章 软件体系结构风格 ppt课件

C/S体系结构有三个主要组成部分:数据库 服务器、客户应用程序和网络。
体系结构 第2章 软件体系 结构风格
体系结构 第2章 软件体系 结构风格
服务器
✓ 数据库安全性的要求;
✓ 数据库访问并发性的控制;
✓ 数据库前端的客户应用程序的全局数据完整性规则;
✓ 数据库的备份和恢复。
体系结构 第2章 软件体系 结构风格
体系结构 第 2章 软件体 系结构风格 软件体系结构风格
刘 伟 (Sunny)
体系结构 第2章 软 件体系结构风格
定义 管道和过滤器 数据抽象和面向对象组织 基于事件的隐式调用 分层系统 仓库系统 过程控制环路 C/S风格 三层C/S风格 B/S风格
体系结构 第2章 软 件体系结构风格
实例:
✓ 编译器,功能程序,并行程序
体系结构 第2章 软件 体系结构风格
体系结构 第2章 软件体系 结构风格
数据的表示方法和它们的相应操作被封装在 一个抽象数据类型或对象中
这种风格的构件是对象或者说是抽象数据类 型的实例
对象通过函数和过程的调用来进行交互
体系结构 第2章 软件体系 结构风格
客户应用程序
✓ 提供用户与数据库交互的界面;
✓ 向数据库服务器提交用户请求并接收来自数据库服务器 的信息;
✓ 利用客户应用程序对存在于客户端的数据执行应用逻辑 要求
体系结构 第2章 软件体系 结构风格
体系结构 第2章 软件体系 结构风格
C/S体系结构具有强大的数据操作和事务处理能力, 模型 思想简单,易于人们理解和接受。
实例:数据库管理系统,用户界面
体系结构 第2章 软件 体系结构风格
输入
事件接收
事件处理
输出
体系结构 第2章 软件体系 结构风格
体系结构 第2章 软件体系 结构风格
服务器
✓ 数据库安全性的要求;
✓ 数据库访问并发性的控制;
✓ 数据库前端的客户应用程序的全局数据完整性规则;
✓ 数据库的备份和恢复。
体系结构 第2章 软件体系 结构风格
体系结构 第 2章 软件体 系结构风格 软件体系结构风格
刘 伟 (Sunny)
体系结构 第2章 软 件体系结构风格
定义 管道和过滤器 数据抽象和面向对象组织 基于事件的隐式调用 分层系统 仓库系统 过程控制环路 C/S风格 三层C/S风格 B/S风格
体系结构 第2章 软 件体系结构风格
实例:
✓ 编译器,功能程序,并行程序
体系结构 第2章 软件 体系结构风格
体系结构 第2章 软件体系 结构风格
数据的表示方法和它们的相应操作被封装在 一个抽象数据类型或对象中
这种风格的构件是对象或者说是抽象数据类 型的实例
对象通过函数和过程的调用来进行交互
体系结构 第2章 软件体系 结构风格
客户应用程序
✓ 提供用户与数据库交互的界面;
✓ 向数据库服务器提交用户请求并接收来自数据库服务器 的信息;
✓ 利用客户应用程序对存在于客户端的数据执行应用逻辑 要求
体系结构 第2章 软件体系 结构风格
体系结构 第2章 软件体系 结构风格
C/S体系结构具有强大的数据操作和事务处理能力, 模型 思想简单,易于人们理解和接受。
实例:数据库管理系统,用户界面
体系结构 第2章 软件 体系结构风格
输入
事件接收
事件处理
输出
精品PPT课件--第9章软件体系结构与设计模式

在组织形式上,框架是一个待实例化的完整系统,定义 了软件系统的元素和关系,创建了基本的模块,定义了涉 及功能更改和扩充的插件位置。典型的框架例子有MFC框 架和Struts框架。
9.1 软件体系结构的基本概念
• 体系结构的重要作用
体系结构的重要作用体现在以下三个方面 : (1)体系结构的表示有助于风险承担者(项目干系
层次结构具有以下优点: (1)支持基于抽象程度递增的系统设计,使设计者可以把
一个复杂系统按递增的步骤进行分解。 (2)支持功能增强,因为每一层至多和相邻的上下层交
互,因此,功能的改变最多影响相邻的内外层。
9.2 典型的体系结构风格
(3)支持复用。只要提供的服务接口定义不变,同一层的 不同实现可以交换使用。这样,就可以定义一组标准 的接口,从而允许各种不同的实现方法。
9.1 软件体系结构的基本概念
2.风格
风格是带有一种倾向性的模式。同一个问题可以有不同 的解决问题的方案或模式,但我们根据经验,通常会强烈 倾向于采用特定的模式,这就是风格。
每种风格描述一种系统范畴,该范畴包括: (1)一组构件(如数据库、计算模块)完成系统需要的某
种功能; (2)一组连接件,它们能使构件间实现“通信”、“合作”
个对象的表示,而不影响其他对象。 (2)设计者可将一些数据存取操作的问题分解成一些交互
的代理程序的集合。
9.2 典型的体系结构风格
其缺点如下: (1)为了使一个对象和另一个对象通过过程调用等进行
交互,必须知道对象的标识。只要一个对象的标识 改变了,就必须修改所有其他明确调用它的对象。 (2)必须修改所有显式调用它的其他对象,并消除由此 带来的一些副作用。例如,如果A使用了对象B,C 也使用了对象B,那么,C对B的使用所造成的对A 的影响可能是料想不到的。
9.1 软件体系结构的基本概念
• 体系结构的重要作用
体系结构的重要作用体现在以下三个方面 : (1)体系结构的表示有助于风险承担者(项目干系
层次结构具有以下优点: (1)支持基于抽象程度递增的系统设计,使设计者可以把
一个复杂系统按递增的步骤进行分解。 (2)支持功能增强,因为每一层至多和相邻的上下层交
互,因此,功能的改变最多影响相邻的内外层。
9.2 典型的体系结构风格
(3)支持复用。只要提供的服务接口定义不变,同一层的 不同实现可以交换使用。这样,就可以定义一组标准 的接口,从而允许各种不同的实现方法。
9.1 软件体系结构的基本概念
2.风格
风格是带有一种倾向性的模式。同一个问题可以有不同 的解决问题的方案或模式,但我们根据经验,通常会强烈 倾向于采用特定的模式,这就是风格。
每种风格描述一种系统范畴,该范畴包括: (1)一组构件(如数据库、计算模块)完成系统需要的某
种功能; (2)一组连接件,它们能使构件间实现“通信”、“合作”
个对象的表示,而不影响其他对象。 (2)设计者可将一些数据存取操作的问题分解成一些交互
的代理程序的集合。
9.2 典型的体系结构风格
其缺点如下: (1)为了使一个对象和另一个对象通过过程调用等进行
交互,必须知道对象的标识。只要一个对象的标识 改变了,就必须修改所有其他明确调用它的对象。 (2)必须修改所有显式调用它的其他对象,并消除由此 带来的一些副作用。例如,如果A使用了对象B,C 也使用了对象B,那么,C对B的使用所造成的对A 的影响可能是料想不到的。
软件体系结构 ppt课件

图A 播放AVI文件的Graph Filter图
上图中每个模块分别代表了不同的Filter,媒体文件Filter从硬盘读取AVI文件,AVI分离 Filter将文件分离为音频流和视频流,AVI解码Filter对视频流进行解码并送往Video表现Filter, 由后者将各帧在显示器上显示,默认的 DirectSound 设备用DirectSound将音频流输 2019 10 出。。
6
•
2019
1概述-软件危机的原因
• 软件复杂度越来越高 • 软件不仅仅是在规模上快速地发展扩大,而且其复 杂性也急剧地增加。软件产品的特殊性和人类智力的 局限性,导致人们无力处理“复杂问题”。 所谓“复杂问题”的概念是相对的,一旦人们采用 先进的组织形式、开发方法和工具提高了软件开发效 率和能力,新的、更大的、更复杂的问题又摆在人们 的面前。
2019
-
3
1概述
• 它是一种简单的、清楚的、完善的方式 形成的
• 软件工程师需要一种更好的视角来理解 软件,并试图找到一种新的方法来构建 更复杂的大型软件系统 • SA (software architecture)
• 一个简单程序到复杂系统软件的距离是 十年
2019 4
1概述-需求开发的主要困难
软件体系结构
刘兴
2019
计算机学院软件工程系
1
软件体系结构内容
• • • • • • • 1概述 2软件体系结构风格 3案例研究 4软件体系结构的分析与评估(略) 5流行的软件体系结构 6设计模式与软件架构 7企业架构师和设计师、企业软件架构简介
2
2019
1概述
• • • • 我们要学的这个是什么玩意? 我们为什么要学这个玩意? 我们将来会怎么干? 其他人是怎么玩的?
《软件体系结构建模》幻灯片PPT

体系构造建模
郑州大学软件学院 赵哲
复习
软件体系构造概论 软件危机 构件与软件重用 软件体系构造的兴起和开展 软件体系构造的应用现状
郑州大学软件学院 赵哲
本章主要内容
软件体系构造建模概述 4+1视图模型
郑州大学软件学院 赵哲
软件体系构造建模概述
建模modeling :建立系统模型的过程 软件体系构造建模:如何对软件体系构
造建立系统模型 根据建模的侧重点不同 可将软件体系构造模型分为5类
郑州大学软件学院 赵哲
软件体系构造模型的分类
构造模型(骨头拆分) 框架模型(骨骼) 动态模型(时序图、状态图和活动图来,
与操作时间或顺序有关) 过程模型(步骤、过程) 功能模型(层次) P31
郑州大学软件学院 赵哲
一点延伸
郑州大学软件学院 赵哲
软件过程
需求分析 建立体系结构
设计
实现 测试
郑州大学软件学院 赵哲
需求分析
与用户沟通 由不同代表组成的小组:分析人员、客
户、设计人员、测试人员等对需求进展 审查
郑州大学软件学院 赵哲
建立体系构造
由体系构造设计师对整个系统进展分析 选择一个适宜的体系构造风格
郑州大学软件学院 赵哲
主要侧重软件模块的组织和管理,为编 程人员效劳。
软件可以通过程序库或子程序进展组织, 这样就可以由不同的人进展开发
郑州大学软件学院 赵哲
开发视图
开发视图要考虑软件内部的需求,如软 件开发的容易性、软件的重用和软件的 通用性,要充分考虑由于具体开发工具 的不同而带来的局限性。
开发视图通过系统输入输出关系的模型 图和子系统图来描述。
郑州大学软件学院 赵哲
4+1模型
郑州大学软件学院 赵哲
复习
软件体系构造概论 软件危机 构件与软件重用 软件体系构造的兴起和开展 软件体系构造的应用现状
郑州大学软件学院 赵哲
本章主要内容
软件体系构造建模概述 4+1视图模型
郑州大学软件学院 赵哲
软件体系构造建模概述
建模modeling :建立系统模型的过程 软件体系构造建模:如何对软件体系构
造建立系统模型 根据建模的侧重点不同 可将软件体系构造模型分为5类
郑州大学软件学院 赵哲
软件体系构造模型的分类
构造模型(骨头拆分) 框架模型(骨骼) 动态模型(时序图、状态图和活动图来,
与操作时间或顺序有关) 过程模型(步骤、过程) 功能模型(层次) P31
郑州大学软件学院 赵哲
一点延伸
郑州大学软件学院 赵哲
软件过程
需求分析 建立体系结构
设计
实现 测试
郑州大学软件学院 赵哲
需求分析
与用户沟通 由不同代表组成的小组:分析人员、客
户、设计人员、测试人员等对需求进展 审查
郑州大学软件学院 赵哲
建立体系构造
由体系构造设计师对整个系统进展分析 选择一个适宜的体系构造风格
郑州大学软件学院 赵哲
主要侧重软件模块的组织和管理,为编 程人员效劳。
软件可以通过程序库或子程序进展组织, 这样就可以由不同的人进展开发
郑州大学软件学院 赵哲
开发视图
开发视图要考虑软件内部的需求,如软 件开发的容易性、软件的重用和软件的 通用性,要充分考虑由于具体开发工具 的不同而带来的局限性。
开发视图通过系统输入输出关系的模型 图和子系统图来描述。
郑州大学软件学院 赵哲
4+1模型
软件体系结构软件体系结构的质量属性.精选PPT

44可修改性的一般场景生成可修改性的一般场景生成场景的部分可能的值刺激希望增加删除修改改变功能质量属性容量制品系统用户界面平台环境或与目标系统交互的系统环境在运行时编译时构建时设计时响应查找构架中需要修改的位置进行修改且不会影响其它功能对所做的修改进行测试部署所作的修改响应度量根据所影响的元素的数量度量的成本努力资金
下,能保证用户请求不丢失;
当系统出现故障或崩溃时,恢复 时间不超过两小时;
可维护性
修改某个子系统或服务时,不影
响其他子系统或服务;
性能
高峰时系统的平均响应时间控制
在20秒以内;
系统需求的获取
一般两种途径: 用户直接主动地提供的需求。主要是一些功能性需
求和领域知识。
另一条是构架师设计“对话问题”,通过对用户提 问,进一步与他们沟通,从而得到更明确的需求。
被动冗余 (暖重起)
New Data
1
2
Old Data Backup1
Main Component
Old Data
Backup2
Data
3
1. The main component receives new data. 2. The main component sends old data/state to backup components. 3. If fault happens, decision has to be made to what backup component to
Do Some Action 1 Controller
3
2 Process 1
Process 2
Process 3
1. Controller requests processes to do an action. 2. Each process receives request and works on the action. 3. A response is sent back from each process. If there is a fault, a recovery will be very fast. The controller could send out requests to check if a process is down and expect a receipt to show process up.
下,能保证用户请求不丢失;
当系统出现故障或崩溃时,恢复 时间不超过两小时;
可维护性
修改某个子系统或服务时,不影
响其他子系统或服务;
性能
高峰时系统的平均响应时间控制
在20秒以内;
系统需求的获取
一般两种途径: 用户直接主动地提供的需求。主要是一些功能性需
求和领域知识。
另一条是构架师设计“对话问题”,通过对用户提 问,进一步与他们沟通,从而得到更明确的需求。
被动冗余 (暖重起)
New Data
1
2
Old Data Backup1
Main Component
Old Data
Backup2
Data
3
1. The main component receives new data. 2. The main component sends old data/state to backup components. 3. If fault happens, decision has to be made to what backup component to
Do Some Action 1 Controller
3
2 Process 1
Process 2
Process 3
1. Controller requests processes to do an action. 2. Each process receives request and works on the action. 3. A response is sent back from each process. If there is a fault, a recovery will be very fast. The controller could send out requests to check if a process is down and expect a receipt to show process up.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
•
1.1what is SA ?
• 这种全局结构的设计和规划问题包括 全局组织 结构;全局控制结构;通信和同步以及数据存 取协议;规定设计元素的功能;设计元素的组 合;物理分布;规模和性能;演化的维度;设 计方案的选择等。 • 1随着软件系统的规模和复杂性不断增加,系 统的全局结构的设计和规划变得比算法的选择 以及数据结构的设计更加重要。 • 2人们普遍认为,为系统设计一个合适的体系 结构是系统取得长远的成功的关键因素。 • 3非形式化的。
1.1what is SA ?
e.g. 每个Filter都有输入端和输出端,例如一个MPEG-1解码Filter它的输入是MPEG编码的 流数据,它的输出端是一解码过的流数据。DirectShow正是通过将不同的Filter连接在一起 完成特定的功能的,我们将这些Filter的连接叫做Filter Graph,如下图A给出是播放AVI的 Filter Graph:
1概述
• 它是一种简单的、清楚的、完善的方式 形成的 • 软件工程师需要一种更好的视角来理解 软件,并试图找到一种新的方法来构建 更复杂的大型软件系统 • SA (software architecture) • 一个简单程序到复杂系统软件的距离是 十年
1概述-需求开发的主要困难
1概述-软件危机的原因
• 软件规模越来越大 • 随着软件应用范围的增广,软件规模愈来愈大。 随着软件应用范围的增广,软件规模愈来愈大。大 型软件项目需要组织一定的人力共同完成, 型软件项目需要组织一定的人力共同完成,而多数管 理人员缺乏开发大型软件系统的经验, 理人员缺乏开发大型软件系统的经验,而多数软件开 发人员又缺乏管理方面的经验。 发人员又缺乏管理方面的经验。各类人员的信息交流 不及时、不准确、有时还会产生误解。 不及时、不准确、有时还会产生误解。 软件项目开发人员不能有效地、 软件项目开发人员不能有效地、独立自主地处理大 型软件的全部关系和各个分支, 型软件的全部关系和各个分支,因此容易产生疏漏和 错误。 错误。
软件体系结构
刘兴
计算机学院软件工程系
软件体系结构内容
• • • • • • • 1概述 2软件体系结构风格 3案例研究 4软件体系结构的分析与评估(略) 5流行的软件体系结构 6设计模式与软件架构 7企业架构师和设计师、企业软件架构简介
1概述
• • • • 我们要 其他人是怎么玩的?
汇编语言、宏替换、高级语言编译器、数据类型
1.1定义
• Dewayne Perry和A1exander Wo1f Perry和 • • • • • 软件体系结构是具有一定形式的结构化元素, 软件体系结构是具有一定形式的结构化元素,即构 件的集合,包括处理构件、数据构件和连接构件。 件的集合,包括处理构件、数据构件和连接构件。 处理构件负责对数据进行加工, 处理构件负责对数据进行加工,数据构件是被加工 的信息, 的信息,连接构件把体系结构的不同部分组合连接起 来。 这一定义注重区分处理构件、数据构件和连接构件, 这一定义注重区分处理构件、数据构件和连接构件, 这一方法在其他的定义和方法中基本上得到保持。 这一方法在其他的定义和方法中基本上得到保持。
1.1what is SA ?
• 软件系统的体系结构定义系统由计算构件和构件 之间的相互作用组成。构件可以是客户机和服务 器、数据库、过滤器或者是在一个分层系统中的 层。构件之间的相互作用在这个设计层次上可以 是简单和相似的,比如过程调用,共享变量的访 问。但是它们也可以是复杂和语义丰富的。比如 客户机-服务器协议(client-server protocols)数据库存取协议(databaseaccessing protocols),异步事件多点传送 (asynchronous event multicast)和管道 数据流(piped streams)
1.3体系结构设计原则
体系结构是指软件系统的基本和主体的形 态,也就是软件系统中“最本质”的东 西。一个软件系统的体系结构设计得好 不好,可以用“合适性、结构稳定性、 可扩展性、可复用性”这些特征量来评 估。
1.2软件体系结构研究的内容 和范畴
• 风格、设计模式、框架 • 1.体系结构风格(architecture styles) • 体系结构风格独立于实际问题,强调了 软件系统中通用的组织结构。比如管道 线,分层系统,客户机-服务器等等。
1.2软件体系结构研究的内容 和范畴
• 风格、设计模式、框架 • 2.设计模式 • 设计模式是软件问题高效和成熟的设计模板,模板包 含了固有问题的解决方案。设计模式可以看成规范了 的小粒度的结构成分,并且独立于编程语言或编程范 例。设计模式的应用对软件系统的基础结构没有什么 影响,但可能对子系统的组织结构有较大影响。每个 模式处理系统设计或实现一种特殊的重复出现的问题。 它为解决抽象部分和实现部分独立变化的问题提供了 一种通用结构。因此,设计模式更强调直接复用的程 序结构。
•
1概述-软件危机的原因
• 软件复杂度越来越高 • 软件不仅仅是在规模上快速地发展扩大, 软件不仅仅是在规模上快速地发展扩大,而且其复 杂性也急剧地增加。 杂性也急剧地增加。软件产品的特殊性和人类智力的 局限性,导致人们无力处理“复杂问题” 局限性,导致人们无力处理“复杂问题”。 所谓“复杂问题”的概念是相对的, 所谓“复杂问题”的概念是相对的,一旦人们采用 先进的组织形式、 先进的组织形式、开发方法和工具提高了软件开发效 率和能力,新的、更大的、 率和能力,新的、更大的、更复杂的问题又摆在人们 的面前。 的面前。
软件各级抽象
软件体系结构使系统在体系结构级达到重用 程序族在信息隐藏和软件结构设计上具 有相同的模式(设计模式抽象) 软件体系结构
程序族 数据类型抽象、封装、信息 隐藏、多态性
抽象数据类型 软件结构研 究的开始 数据结构 与算法 高级程序 设计语言
软件划分与构造、方便系统的开发与维护
程序=数据结构+算法
•
• Kruchten • 软件体系结构有四个角度,它们从不 软件体系结构有四个角度, 同方面对系统进行描述:概念角度描述 同方面对系统进行描述:概念角度描述 系统的主要构件及它们之间的关系; 系统的主要构件及它们之间的关系;模 角度包含功能分解与层次结构; 块角度包含功能分解与层次结构;运行 角度描述了一个系统的动态结构; 角度描述了一个系统的动态结构;代码 角度描述了各种代码和库函数在开发环 境中的组织。 境中的组织。
1.2软件体系结构研究的内容 和范畴
• 风格、设计模式、框架 • 3.应用框架(application framework) • 应用框架是整个或部分系统的可重用设计,表 现为一组抽象构件的集合以及构件实例间交互 的方法。可以说,一个框架是一个可复用的设 计构件,它规定了应用的体系结构,阐明了整 个设计、协作构件之间的依赖关系、责任分配 和控制流程。
• Hayes Roth • 软件体系结构是一个抽象的系统规范, 软件体系结构是一个抽象的系统规范, 系统规范 主要包括用其行为来描述的功能构件和 构件之间的相互连接、接口和关系。 构件之间的相互连接、接口和关系。
• David Garlan 和 Dewne Perry • 软件体系结构是一个程序/系统各构 软件体系结构是一个程序/ 件的结构、 件的结构、它们之间的相互关系以及进 行设计的原则和随时间演化的指导方针。 行设计的原则和随时间演化的指导方针。
1.1what is SA ?
• 软件设计层次
• 体系结构级:系统性能与构件之间的整体联系。这个 级别的构成元素是模块,模块通过各种方式互连,通 过操作算子将子系统组装成一个系统。 • 代码级:这个级别的设计问题包括算法和数据结构; 其构成元素是编程语言原语。 • 执行级:这个级别的设计问题包含存储器的映射、数 据格式配置、堆栈和寄存器的分配。
• Barry Boehm • 软件体系结构包括一个软件和系统构 互联及约束的集合; 件,互联及约束的集合;一个系统需求 说明的集合; 说明的集合;一个基本原理用以说明这 一构件,互联和约束能够满足系统需求。 一构件,互联和约束能够满足系统需求。
• Bass,Ctements 和 Kazman Bass, • 软件体系结构包括一个或一组软件构 件、软件构件的外部的可见特性及其相 互关系。其中, 软件外部的可见特性” 互关系。其中,“软件外部的可见特性” 是指软件构件提供的服务、性能、特性、 是指软件构件提供的服务、性能、特性、 错误处理、共享资源使用等。 错误处理、共享资源使用等。
图A 播放AVI文件的Graph Filter图 上图中每个模块分别代表了不同的Filter,媒体文件Filter从硬盘读取AVI文件,AVI分离 Filter将文件分离为音频流和视频流,AVI解码Filter对视频流进行解码并送往Video表现Filter, 由后者将各帧在显示器上显示,默认的DirectSound设备用DirectSound将音频流输 出。。
1.1定义
• Mary Shaw和David Garlan Shaw和 • • 软件体系结构是软件设计过程中的一个层次, 软件体系结构是软件设计过程中的一个层次,这一层次超越计 算过程中的算法设计和数据结构设计。 算过程中的算法设计和数据结构设计。 体系结构问题包括总体组织和全局控制、通讯协议、同步、 体系结构问题包括总体组织和全局控制、通讯协议、同步、数 据存取,给设计元素分配特定功能,设计元素的组织, 据存取,给设计元素分配特定功能,设计元素的组织,规模和性 在各设计方案间进行选择等。 能,在各设计方案间进行选择等。 软件体系结构处理算法与数据结构之上关于整体系统结构设计 和描述方面的一些问题,如全局组织和全局控制结构、关于通讯、 和描述方面的一些问题,如全局组织和全局控制结构、关于通讯、 同步与数据存取的协议,设计构件功能定义,物理分布与合成, 同步与数据存取的协议,设计构件功能定义,物理分布与合成, 设计方案的选择、评估与实现等。 设计方案的选择、评估与实现等。