Professional Documents
Culture Documents
软件体系结构 张友生
软件体系结构 张友生
软件体系结构 张友生
张友 生
希赛 IT 教育 研发中 心
关 于 教 材
◇ 出版社 :清 华大学 出版 社
◇ 作者: 张友 生
课 程 内 容
◇ 软件体 系结构 概论
◇ 软件体 系结构 建模
◇ 软件体 系结构 风格
◇ 软件体 系结构 描述
◇ 动态软 件体系 结构
◇ We b 服务体 系结 构
◇ 基于体 系结构 的软 件开发
◇ 软件体 系结构 的分 析与测
试
◇ 软件体 系结构 评估
◇ 软件产 品线体 系结 构
第 1 章 软件体 系结构概论 1. 1 从软 件危 机谈起
◇ 软件危机的 表现
◎ 软件成 本日 益增长
◎ 开发进 度难 以控制
◎ 软件质 量差
◎ 软件维 护困 难
第 1 章 软件体 系结构概论 1. 1 从软 件危 机谈起
◇ 软件危机的 表现
◎ 软件成 本日益 增长
20 世纪 50 年代, 软件 成本在 整个计 算机系统 成
本中 所占 的比例 为 10 %-2 0% 。到 20 世纪 60 年代中
期, 软件 成本在 计算 机系统 中所 占的比 例已经 增长 到
50 % 左右。
◇ 软件危机的 表现
◎ 开发进 度难以 控制
◇ 软件危机的 表现
◎ 软件质 量差
◇ 软件危机的 表现
◎ 软件维 护困难
◇ 软件危机的 原因
◎ 用户需 求不 明确
◎ 缺乏正 确的 理论指 导
◎ 软件规 模越 来越大
◎ 软件复 杂度 越来越 高
第 1 章 软件体 系结构概论 1. 1 从软 件危 机谈起
◇ 软件危机的 原因
◎ 用户需 求不明 确
◇ 软件危机的 原因
◎ 缺乏正 确的理 论指 导
◇ 软件危机的 原因
◎ 软件规 模越来 越大
◇ 软件危机的 原因
◎ 软件复 杂度越 来越 高
◇ 如何克服软 件危机
◇ 构件模型及 实现
◎ 构件的 定义
◇ 构件模型及 实现
Su n 的 EJ B ( Ent er pri se Ja va Be an )
◇ 构件模型及 实现
◎ 青鸟构 件模型
参数化属性
构件名称 功能描述
成员关系
第 1 章 软件体 系结构概论 1. 2 构件与软 件重 用
◇ 构件获取
从市 场上 购买现 成的 商业构 件, 即
CO TS ( Co mm erc ia l O ff -Th e- She ll )构件;
开发 新的 符合要 求的 构件。
第 1 章 软件体 系结构概论 1. 2 构件与软 件重 用
◇ 构件管理
◎ 构件描 述
◎ 构件分 类与组 织
◎ 人员及 权限管 理
第 1 章 软件体 系结构概论 1. 2 构件与软 件重 用
◇ 构件管理
◎ 构件描 述
◇ 构件管理
◎ 构件分 类与组 织
◇ 关键 字分 类法
◇ 刻面 分类 法
◇ 超文 本组 织方法
第 1 章 软件体 系结构概论 1. 2 构件与软 件重 用
◇ 构件管理
◎ 关键字 分类法
图形用户界面
窗口 菜单 对话框 事件处理
数
键
弹 信 据
盘 点 拖
主 出 息 录
图形 文字 事 击 放
菜 式 对 入
窗口 窗口 件 处 处
单 菜 话 对
处 理 理
单 框 话
理
框
第 1 章 软件体 系结构概论 1. 2 构件与软 件重 用
◇ 构件管理
◎ 刻面分 类法
◇ 使用 环境
◇ 应用 领域
◇ 功能
◇ 层次
◇ 表示 方法
第 1 章 软件体 系结构概论 1. 2 构件与软 件重 用
◇ 构件管理
◎ 超文本 组织法
·
……………
·
……………
·
……………
…………… ·
…………… ·
……………
·
…………… …………… ·
……………
…………… ··
…………… ·
…………… ……………
第 1 章 软件体 系结构概论 1. 2 构件与软 件重 用
◇ 构件管理
◎ 人员及 权限管 理
◇ 构件重用
◎ 检索与 提取构 件
◎ 理解与 评价构 件
◎ 修改构 件
◎ 构件组 装
第 1 章 软件体 系结构概论 1. 2 构件与软 件重 用
◇ 构件重用
◎ 检索与 提取构 件
◇ 基于关 键字 的检索
◇ 刻面检 索法
◇ 超文本 检索 法
◇ 其他检 索方 法
第 1 章 软件体 系结构概论 1. 2 构件与软 件重 用
◇ 构件重用
◎ 理解与 评价 构件
◇ 构件的 功能 与行为
◇ 相关的 领域 知识
◇ 可适应 性约 束条件 与例 外情
形
◇ 可以预 见的 修改部 分及 修改
方法
第 1 章 软件体 系结构概论 1. 2 构件与软 件重 用
◇ 构件重用
◎ 修改构 件
◇ 构件重用
◎ 构件组 装
◇ 基于功 能的 组装技 术
◇ 基于数 据的 组装技 术
◇ 面向对 象的 组装技 术
第 1 章 软件体 系结构概论 1. 2 构件与软 件重 用
◇ 构件重用
◎ 构件组 装
◇ 基于功能 的组 装技术
◇ 构件重用
◎ 构件组 装
◇ 基于数据 的组 装技术
◇ 构件重用
◎ 构件组 装
◇ 面向对象 的组 装技术
· 构造法
在子类 中引进 基类 的对象 作为子 类的 成员变 量
,然 后在 子类中 通过 成员变 量重 用基类 的属性 和方
法。
· 子类法
将新子 类直接 说明 为库中 基类的 子类 ,通过 继
承和 修改 基类的 属性 与行为 完成 新子类 的定义 。
第 1 章 软件体 系结构概论 1. 2 构件与软 件重 用
◇ 软件重用实 例
自学
第 1 章 软件体 系结构概论 1. 3 体系 结构 的兴起 和发
展
◇ 背景资料
◎ Kruch ten
◎ Hayes Rot h
◎ Barr y Boe hm
◎ 我们的 定义
Perry 和 Wolf 认为
◇ 软件体系结 构的应用现 状
◎ 软件体系 结构 描述语 言
◎ 体系结构 描述 构造与 表示
◎ 体系结构 分析 、设计 与验 证
◎ 体系结构 发现 、演化 与重 用
◎ 基于体系 结构 的软件 开发 方法
◎ 特定领域 的体 系结构 框架
◎ 软件体系 结构 支持工 具
◎ 软件产品 线体 系结构
◎ 建立评价 软件 体系结 构的 方法
第 1 章 软件体 系结构概论 1. 4 体系 结构 的应用 现状
◇ 软件体系结 构的应用现 状
◎ 软件体 系结构 描述 语言
◇ 软件体系结 构的应用现 状
◇ 软件体系结 构的应用现 状
◇ 软件体系结 构的应用现 状
◇ 软件体系结 构的应用现 状
◇ 软件体系结 构的应用现 状
◇ 软件体系结 构的应用现 状
◇ 软件体系结 构的应用现 状
◇ 软件体系结 构的应用现 状
◇ 软件体系结 构的应用现 状
◇ 软件体系结 构的应用现 状
◇ 软件体系结 构的应用现 状
◇ 软件体系结 构的应用现 状
◇ 软件体系结 构的应用现 状
◇ 软件体系结 构的应用现 状
◇ 软件体系结 构的应用现 状
◇ 软件体系结 构的应用现 状
◎ 软件体 系结构 支持 工具
◇ 软件体系结 构的应用现 状
◎ 软件产 品线体 系结 构( 1 )
◇ 软件体系结 构的应用现 状
◎ 软件产 品线体 系结 构( 2 )
◇ 软件体系结 构的应用现 状
( 3 )中 间设 计的积 极评 审( AR ID 方法 )
第 1 章 软件体 系结构概论 1. 4 体系 结构 的应用 现状
◇ 软件体系结 构的应用现 状
◎ 结构模 型
◎ 框架模 型
◎ 动态模 型
◎ 过程模 型
◎ 功能模 型
第 2 章 软件体 系结构建模 2. 1 软件 体系 结构建 模概
述
◇ 软件体系结 构建模的种 类
◎ 结构模 型
◎ 框架模 型
◎ 动态模 型
◎ 过程模 型
◎ 功能模 型
◇ “4+1” 模型概述
◇ “4+1” 模型概述
最终 用户 :功能 需求 编程 人员 :软件 管理
逻辑 视图 开发 视图
场景
进程 视图 物理 视图
系统 集成 人员: 性能 系统 工程 人员: 系统
可扩 充性 、吞吐 量等 拓扑 、安 装、通 信等
第 2 章 软件体 系结构建模 2.2 “ 4+1 ” 视图模 型
◇ 逻辑视图
◇ 逻辑视图
包含, 聚集
类服务 使用
继承
参数化 类 实例
类层次
第 2 章 软件体 系结构建模 2.2 “ 4+1 ” 视图模 型
◇ 逻辑视图
逻辑视图 中使用的风 格为面向对 象的风格,逻 辑视图设
计中要 注意的主 要问题是要 保持一个单一 的、内聚的 对象模
型贯穿 整个系统 。
会话 转换服务
终端 连接服务
编号计划
控制器
第 2 章 软件体 系结构建模 2.2 “ 4+1 ” 视图模 型
◇ 逻辑视图
空中交通管
飞行管理
理
航空信息
机械服务
基本元素
第 2 章 软件体 系结构建模 2.2 “ 4+1 ” 视图模 型
◇ 开发视图
◇ 开发视图
模块 参照相关性
子系统
层
第 2 章 软件体 系结构建模 2.2 “ 4+1 ” 视图模 型
◇ 开发视图
◇ 开发视图
通用空中交通管制代码 客户定制
各种各样的空中 5 人机接口 离线工具
交通管制系统 外部系统 测试工具
领域特定
特定的空中交通 4
管制系统构件 空中交通管制功能区:飞行管理、雷达管理等
空中交通管制 3
航空类、空中交通管制类
系统框架
分布式虚拟机 2
领域无关
支撑机制:通信、时间、储存、资源管理等
基本元素 1
公用构件 低层服务
硬件、操作系
统、数据库
第 2 章 软件体 系结构建模 2.2 “ 4+1 ” 视图模 型
◇ 进程视图
◇ 进程视图
未指定
进程
消息
远程过程调用
简化进程 双向消息
事件广播
循环进程
第 2 章 软件体 系结构建模 2.2 “ 4+1 ” 视图模 型
◇ 进程视图
终端进程
控制器进程
慢周期控 主控制
制器任务 快周期控 器任务
制器任务
第 2 章 软件体 系结构建模 2.2 “ 4+1 ” 视图模 型
◇ 物理视图
◇ 物理视图
通信
处理器
临时通信
单向通信
其他设备 双向通信
宽带或总线
第 2 章 软件体 系结构建模 2.2 “ 4+1 ” 视图模 型
◇ 物理视图
ACS 系统的物 理视 图
C C
主 备份
F F F F
主 备份 主 备份
K K K K K K K K
第 2 章 软件体 系结构建模 2.2 “ 4+1 ” 视图模 型
◇ 物理视图
F
具有 进程 分配
会话进程
的小 型 AC S 系
统的 物理 视图
终端进程
控制器进程
第 2 章 软件体 系结构建模 2.2 “ 4+1 ” 视图模 型
◇ 物理视图 C
中心进程
备份节点
具有进程 分
F F
配的大 型 伪中心进程 伪中心进程
ACS 系统 的
物理视 图 会话进程 会话进程
K K K
◇ 场景
◇ 场景
本地呼 叫场 景的一 个原 型
(1)摘机
(2)拨号音 (4)号码
小王:控制器 小王:终端 编号计划
(3)号码
(5)打
开会话
小王:会话
第 2 章 软件体 系结构建模 2.2 “ 4+1 ” 视图模 型
◇ 小结
软件体系结构
1:N
配置 连接件
构件
1:N
1:N
端口 角色
第 2 章 软件体 系结构建模 2. 4 体系结 构的生命周 期模型
◇ 软件过程
需求分析
建立体系 结
构
设计
实现
测试
第 2 章 软件体 系结构建模 2. 4 体系结 构的生命周 期模型
◇ 生命周期模 型
体系结构的形式化
体系结构的非
基础(数学模型)
形式化描述
体系结构的终结
体系结构的 体系结构的
性质分析 规范描述
体系结构提供、
评价和度量
否
否
需要演化 需要求精
体系结构实施
或扩展否 否
是
是
选读
第 2 章 软件体 系结构建模 本章作业与 思考题
◎ 数据 流风 格:批处 理序 列; 管道 / 过滤 器。
◎ 独立 构件 风格:进 程通 讯; 事件系 统。
◎ 虚拟 机风 格:解释 器; 基于 规则的 系统 。
管道
过滤器
第 3 章 软件体 系结构风格 3. 2 经典 软件 体系结 构风
格
◇ 管道和过滤 器风格的优 点
对象 对象
对象 抽象数
据类型
对象
对象
过程调用
第 3 章 软件体 系结构风格 3. 2 经典 软件 体系结 构风
格
◇ 面向对象系 统的优点
过程调用
用户系统
基本工具
核心层
各种构件
第 3 章 软件体 系结构风格 3. 2 经典 软件 体系结 构风
格
◇ 分层系统的 优点
计算
直接存取 知识源
知识源 黑板 知识源
(共享数据)
知识源 内存
第 3 章 软件体 系结构风格 3. 2 经典 软件 体系结 构风
格
◇ C2 风格
构件 构件 构件
连接件 连接件
构件 构件
连接件 连接件
连接件 连接件
构件 构件
第 3 章 软件体 系结构风格 3. 2 经典 软件 体系结 构风
格
◇ C2 风格的 特点
◇ 产生背景
◎ 20 世纪 80 年代 以后 ,集中 式结 构逐渐 被以 PC
机为 主的 微机网 络所 取代。 个人 计算机 和工 作站的
采用 ,永 远改变 了协 作计算 模型 ,从而 导致 了分散
的个 人计 算模型 的产 生。
第 3 章 软件体 系结构风格 3. 3 客户 / 服务器 风格
◇ 基本概念
◇ 体系结构
打印机
PWR
OK
WIC0
ACT/CH0
ACT/CH1
WIC0
ACT/CH0
ACT/CH1
ETH
ACT
COL
其他公用设备
调制解调器 数据库服务器
Power/TX Link/Rx LPT1 LPT2 COM
Print Server
Internet
Intranet
◇ 任务分配
◎ 服务器
( 1 )数 据库 安全性 的要 求;
( 2 )数 据库 访问并 发性 的控制 ;
( 4 )数 据库 的备份 与恢 复。
第 3 章 软件体 系结构风格 3. 3 客户 / 服务器 风格
◇ 任务分配
◎ 客户应用程 序
( 1 )提 供用 户与数 据库 交互的 界面 ;
◇ 处理流程
输出数据 业务处理结束
全部处理结束
表示层 业务处理程序
◇ 优点
◎ C/ S 体系结 构具有强 大的数据 操作和事务处 理能力,模
型思想 简单,易于 人们理解和 接受。
◇ 缺点
◎ 开发成本较 高
◎ 客户端程序 设计复杂
◎ 信息内容和 形式单一
◎ 软件移植困 难
◎ 软件维护和 升级困难
◎ 新技术不能 轻易应用
第 3 章 软件体 系结构风格 3. 4 三层客 户 / 服务 器风
格
◇ 体系结构
数据库服务器1 数据库服务器2
应用服务器
Internet
Intranet
... ...
输出数据 业务处理结束
全部处理结束
业务处理程序
表示层
数据存取请求
DBMS 执行SQL
业务处理结束
SQL 请求结束
数据登录/更新
/读取的结果
数据层 数据存取程序
功能层
第 3 章 软件体 系结构风格 3. 4 三层客 户 / 服务 器风
格
◇ 物理结构
服务器2 数据层
数据层
服务器1 功能层 数据层
功能层
自学
第 3 章 软件体 系结构风格 3. 4 三层客 户 / 服务 器风
格
◇ 优点
◇ 基本概念
◇ 体系结构
客户端
浏览器 数
据
库
数据库 服
务
Web服务器 器
客户端
浏览器
第 3 章 软件体 系结构风格 3.5 浏览器 / 服务器风 格
◇ 优点
◇ 缺点
应用对象 通用服务
对象服务(Object Services)
第 3 章 软件体 系结构风格 3.6 公共对 象请求代 理体系结
构
◇ CORB A 技术规范
◎ 接口池 ( IR )
◎ 对象适 配器( OA )
第 3 章 软件体 系结构风格 3.6 公共对 象请求代 理体系结
构
◇ CORB A 技术规范
◎ 接口定 义语 言
CORB A 利用 IDL 统一 地描述服务 器对象( 向调用者提 供服
务的对 象)的接 口。 ID L 本身也是面 向对象的。它 虽然不是
编程语 言,但它 为客户对象 (发出服务请 求的对象) 提供了
语言的 独立性, 因为客户对 象只需了解服 务器对象的 IDL 接
口,不 必知道其 编程语言。
◎ 接口池
CO RBA 的接口池包括 了分布计算 环境中所 有可用的服 务器
对象的 接口表示 。它使动态 搜索可用服务 器的接口、 动态构
造请求 及参数成 为可能。
第 3 章 软件体 系结构风格 3.6 公共对 象请求代 理体系结
构
◇ CORB A 技术规范
◎ 动态调 用接 口
CO RBA 的动态调用接 口提供了一 些标准函 数以供客户 对象
动态创 建请求、 动态构造请 求参数。客户 对象将动态 调用接
口与接 口池配合 使用可实现 服务器对象接 口的动态搜 索、请
求及参 数的动态 构造与动态 发送。当然, 只要客户对 象在编
译之前 能够确定 服务器对象 的 ID L 接口, COR BA 也允许客 户
对象使 用静态调 用机制。显 然,静态机制 的灵活性虽 不及动
态机制 ,但执行 效率却胜过 动态机制。
第 3 章 软件体 系结构风格 3.6 公共对 象请求代 理体系结
构
◇ CORB A 技术规范
◎ 动态调 用接 口
在 CORB A 中, 对象适配器 用于屏蔽 ORB 内核 的实现细节
,为服 务器对象 的实现者提 供抽象接口, 以便他们使 用 ORB
内部的 某些功能 。这些功能 包括服务器对 象的登录与 激活、
客户请 求的认证 等。
第 3 章 软件体 系结构风格 3.6 公共对 象请求代 理体系结
构
◇ 体系结构
OMG IDL
OMG IDL源文件
OMG IDL编译器
客户桩
动态激发API
ORB 客户端
上下文对象
接口仓库
对象服务
对象工具
服务器
ORB API
BOA API
对象适配器
服务器应
用程序 服务器框架
方法
实现仓库
第 3 章 软件体 系结构风格 3.6 公共对 象请求代 理体系结
构
◇ 特点
◇ 概念
◇ 框架
A 第 一 层
B … … C 第 二 层
… D … … E … 第 三 层
F … G … H … … J 第 四 层
K 第 五 层
第 3 章 软件体 系结构风格 3.7 正交软件体 系结构
◇ 特征
◇ 实例
自学
第 3 章 软件体 系结构风格 3.7 正交软件体 系结构
◇ 优点
复合构件
构件
消息总线(连接件)
第 3 章 软件体 系结构风格 3.8 基于层 次消息总 线的体系
结构
◇ HMB 风格的 构件模型
接口部分 行为部分
结构部分
第 3 章 软件体 系结构风格 3.8 基于层 次消息总 线的体系
结构
◇ 构件接口
消息传递
消息总线
属性:构件实例表
构件-消息响应登记表
消息过滤表
服务:消息登记
消息分派
消息传递
消息过滤
第 3 章 软件体 系结构风格 3.8 基于层 次消息总 线的体系
结构
◇ 构件 静态结 构
系统
C1 C2
C3 C4 C4-1
C3-1 C3-2
◎ 消息过 滤
第 3 章 软件体 系结构风格 3.9 异构结 构风格
◇ 为什么要使 用异构结构
B/S结构 数据
修改和维护
工作站 库服
务器
Web服务器
Internet
查询和浏览 C/S结构
工作站
内部局域网
Internet
用户 查询和浏览工作站 修改和维护工作站
第 3 章 软件体 系结构风格 3.9 异构结 构风格
企业外部 企业内部
Internet C/S结构
维护和修改
工作站 数据
Web服
B/S结构
务器 库服
务器
查询和浏览 Internet
C/S结构
工作站
内部局域网
◇ 异构实例
变电站外部 变电站内部
B/S结构 数据
县调
库服
务器
Web服务器
地调 Internet
C/S结构
变电站内部局域网
省局
◇ 互连系统构 成的系统
第 3 章 软件体 系结构风格 3. 10 SI S 体系结 构风格
◇ 基于 SASI S 的软件过 程
演化和维护 测试 实现
第 3 章 软件体 系结构风格 3. 10 SI S 体系结 构风格
◇ 基于 SASI S 的软件过 程
上级系统
A
B C
主角1 主角2
系统X
从属系统
A1 A2 B2 A3
主角1 B1 C2 C3 主角2
◇ 基于 SASI S 的软件过 程
A2 B2
C2
系统X1 系统X3
系统X2
第 3 章 软件体 系结构风格 3. 11 特定领域软 件体系结构
◇ 定义
◇ 定义
◇ 基本活动
◎ 领域分 析
◎ 领域设 计
◎ 领域实 现
第 3 章 软件体 系结构风格 3. 11 特定领域软 件体系结构
领域分 管理
◇ 领域分析 析方法 机制
领域知识资源
技术文献
分类方法
已完成的软件项目
标准
用户评述
功能模型
专家建议 领域分析
领域语言
当前及未来的需求
领域实现人员
领域设计人员
领域分析人员
领域专家
第 3 章 软件体 系结构风格 3. 11 特定领域软 件体系结构
◇ 建立过程
◎ 定义领 域范围: 确定什么在 感兴趣的领 域中以及本过 程到何时
结束。
◇ 三层次系统 模型
领域构
领域开发环境
架师
参考结构
领域模型
开发工具
参考需求
构架
应用工
领域特定的应用开发环境
程师
实例化的
体系结构
操作员 应用执行环境
第 3 章 软件体 系结构风格 3. 11 特定领域软 件体系结构
◇ 实例
自学
第 3 章 软件体 系结构风格 3. 11 特定领域软 件体系结构
◇ 描述方法的 种类
◎ 图形表 达工具
◎ 模块内 连接语 言
◎ 基于软 构件 的系统 描述 语
言
◎ 软件体 系结构 描述 语言
第 4 章 软件体 系结构描述 4.1 软件体系结 构描述方法
◇ 图形表达工 具
项目管理 静态分析器 时间分析器
测试配置 测试结果库 缓冲
最优/最劣时间
布图算法 复杂度计算
计算
带时间特性的 函数调用关系
程序复杂度
流程图 图
测试结果打印
第 4 章 软件体 系结构描述 4.1 软件体系结 构描述方法
◇ 模块内连接 语言
◇ 基于软构件 的系统描述 语言
◇ 软件体系结 构描述语言
◇ 典型元素含 义比较
第 4 章 软件体 系结构描述 4.3 软件体系结 构描述语言
◇ 常见的软件 体系结构元 素
第 4 章 软件体 系结构描述 4.4 典型软 件体系结 构描述语
言
◇ C2 概述 (1 )
AttConn Important
AttConn
MainConn
Meeting
Initiator
第 4 章 软件体 系结构描述 4.4 典型软 件体系结 构描述语
言
◇ C2 对 Me etgin gInit iator 构件的 描述
(1)
com po nen t Mee ti ngI ni tia to r i s
int erf ac e
top_ do mai n is
out
Ge tPr ef Se t() ;
Ge tEx cl Se t() ;
Ge tEq ui pR eqt s() ;
Ge tLo cP re fs( ) ;
Re mov eE xc lSe t() ;
Re que st Wi thd raw al (to A tt end ee) ;
Requ est Wi th dra wa l(t o
Imp or tan tA tte nd ee) ;
Ad dPr ef Da tes () ;
Ma rkM tg (d :da te ; l: lov _t yp e) ;
第 4 章 软件体 系结构描述 4.4 典型软 件体系结 构描述语
言
◇ C2 对 Me etgin gInit iator 构件的 描述
(2)
in
Pr efS et (p :da te_ mg ) ;
Ex clS et (e :da ta_ mg ) ;
Eq uip Re qt s(e q:e qu ip_ ty pe ) ;
Lo cPr ef (l :lo c_t yp e) ;
beh av io r
star tu p al way s_ gen er at e Ge tPr ef Set , Get Ex cl Set ,
Get Eq uip Re qts ,
Ge tLo cP re fs ;
rec ei ve d_m es sag es Pre fSe t ma y_ gen er at e Re mo veE xcl Se t xo r
Req ue stW it hdr aw al xo r M ar kMt g ;
rec ei ved _me ss ag es Exc lSe t ma y_g ene ra te Ad dPr ef Dat es xo r
Rem ov eEx cl Set
xor R equ es tWi th dra wa l x or Ma rk Mtg ;
rec ei ved _me ss ag es Eq uip Req ts may_ ge ner ate Add Pre fD ate s
xor
Rem ov eEx cl Set x or Re que st Wit hd raw al xo r Mar kM tg ;
rec ei ved _me ss ag es Lo cPr ef al wa ys_ ge ner ate n ul l ;
第 4 章 软件体 系结构描述 4.4 典型软 件体系结 构描述语
言
◇ C2 对 At tende e 构件的描述 (1)
co mpo ne nt At ten de e i s
int erf ac e
bott om _do ma in is
out
Pr efS et (p :da te_ mg ) ;
Ex clS et (e :da te_ mg ) ;
Eq uip Re qt s(e q:e qu ip_ ty pe ) ;
in
Ge tPr ef Se t() ;
Ge tEx cl Se t() ;
Ge tEq ui pR eqt s() ;
Re mov eE xc lSe t() ;
Re que st Wi thd raw al () ;
Ad dPr ef Da tes () ;
Ma rkM tg (d :da te ; l: loc _t yp e) ;
第 4 章 软件体 系结构描述 4.4 典型软 件体系结 构描述语
言
◇ C2 对 At tende e 构件的描述 (2)
beh av ior
rec ei ve d_m ess ag es Ge tP ref Set a lwa ys _g ene rat e Pre fS et ;
rec ei ve d_m ess ag es Ad dP ref Dat es al wa ys _ge ner at e P re fS et ;
rec ei ve d_m ess ag es Ge tE xcl Set a lwa ys _g ene rat e Exc lS et ;
rec ei ve d_m ess ag es Get Eqi pR eq ts alwa ys _g ene rat e
Eqi pR eq ts ;
rec ei ve d_m ess ag es Remo ve Ex clS et alwa ys_ ge ne rat e
Exc lS et ;
rec ei ve d_m ess ag es Re ues tWi th dr awa l alwa ys _g ene rat e
nul l ;
rec ei ve d_m ess ag es Ma rk Mtg al wa ys_ ge ne rat e n ul l ;
end A tt end ee ;
第 4 章 软件体 系结构描述 4.4 典型软 件体系结 构描述语
言
◇ C2 对 Im porta ntAtt endee 构件的 描述
◇ UML 简介
◎ 支持 用不 同实现技 术进 行的 软件开 发全 过程
。
第 4 章 软件体 系结构描述 4.5 软件体 系结 构与 UML
◇ UML 简介
第 4 章 软件体 系结构描述 4.5 软件体 系结 构与 UML
◇ UML 简介
第 4 章 软件体 系结构描述 4.5 软件体 系结 构与 UML
◇ UML 简介
State
State
Diagrams
Use Case
Use Case
类图
Diagrams
State
Use Case Diagrams State
Use Case
Diagrams
用例图
Diagrams Diagrams
对象图
Diagrams
序列图
Diagrams
Scenario State
Scenario State
Diagrams
Diagrams
协作图
Diagrams UML 构件图
Diagrams
Scenario Component
Scenario
Diagrams
Component
Diagrams
状态图
Diagrams 部署图
Diagrams
活动图
第 4 章 软件体 系结构描述 4.5 软件体 系结 构与 UML
◇ 用例图
用于显 示
若干角 色
以及这 些
角色与 系
统提供 的
用例之 间
的连接 关
系。用 例
是系统 提
供的功 能
的描述
第 4 章 软件体 系结构描述 4.5 软件体 系结 构与 UML
◇ 类图
表示系
统中的
类和类
与类之
间的关
系,它
是对系
统静态
结构的
描述
第 4 章 软件体 系结构描述 4.5 软件体 系结 构与 UML
◇ 序列图
用来 反映若
干个 对象之
间的 动态协
作关 系,也
就是 随着时
间的 推移,
对象 之间是
如何 交互的
第 4 章 软件体 系结构描述 4.5 软件体 系结 构与 UML
◇ 协作图
描述对 象间 的
协作关 系, 协
作图跟 序列 图
相似, 显示 对
象间的 动态 合
作关系 。
如果强 调时 间
和顺序 ,则 使
用序列 图; 如
果强调 上下 级
关系, 则选 择
协作图 。这 两
种图合 称为 交
互图。
第 4 章 软件体 系结构描述 4.5 软件体 系结 构与 UML
◇ 状态图
描述类 的
对象所 有
可能的 状
态以及 事
件发生 时
状态的 转
移条件 。
通常, 状
态图是 对
类图的 补
充
第 4 章 软件体 系结构描述 4.5 软件体 系结 构与 UML
◇ 活动图
描述满 足
用例要 求
所要进 行
的活动 以
及活动 间
的约束 关
系,有 利
于识别 并
行活动
第 4 章 软件体 系结构描述 4.5 软件体 系结 构与 UML
◇ 构件图
描述代
码构件
的物理
结构及
各构件
之间的
依赖关
系
第 4 章 软件体 系结构描述 4.5 软件体 系结 构与 UML
◇ 部署图
部署图
定义系
统中软
硬件的
物理体
系结构
第 4 章 软件体 系结构描述 4.5 软件体 系结 构与 UML
◇ 直接使用 UM L 建模
元-元模型
元 - 元模 型层 定义了 元模
元模型
型层 的规 格说明 语言 ,元
模型 层为 给定的 建模 语言
模型
定义 规格 说明, 模型 层用
来定 义特 定软件 系统 的模
型, 用户 对象用 来构 建给
定模 型的 特定实 例。
用户对象
第 4 章 软件体 系结构描述 4.5 软件体 系结 构与 UML
◇ 直接使用 UM L 建模
◎ 语义约束
◇ 直接使用 UM L 建模
◇ 直接使用 UM L 建模
◎ UML 语义部 分
◇ 通用元素:主 要描述 UML 中各元 素的语义。 通用元素是
UML 中的基本 构造单位, 包括模型元素 和视图元素 ,模型元
素用来 构造系统, 视图元素用 来构成系统的 表示成分;
◇ 通用机制:主要 描述使 UML 保持简 单和概念 上一致的机
制的语 义。包括定 制、标记值 、注记、约束 、依赖关系 、类
型 - 实例、类型 - 类的对 应关系等机 制;
◇ 通用类型:主要 描述 UML 中各种 类型的语义 。这些类型
包括布 尔类型、表 达式类型、 列表类型、多 重性类型、 名字
类型、 坐标类型、 字符串类型 、时间类型、 用户自定义 类型
等。
◇ 直接使用 UM L 建模
◎ 会议安排系 统的类图
Person
0..*
0..* Attendee
StronglyConflicts With
Conflicts With
Important
Attendee 1..* 1..* 0..* 0..*
0..*
Profers
Date
0..*
Location
1 1 1
1 Profers 0..*
1 Excludes 0..*
Meeting
1 Proposes 1 Meeting
Initiator
1 Invites 2
第 4 章 软件体 系结构描述 4.5 软件体 系结 构与 UML
◇ 直接使用 UM L 建模
◎ 会议安排系 统类接口
<<interface>>
MtgInit
<<interface>>
GetPrefSet(); ImportantMtgInit
GetExclSet();
RemoveExclSet();
GetLocPrefs();
RequestWithdrawal(Attendee);
AddPrefDates();
<<interface>>
MtgAttend
<<interface>>
ImportantMtgAttend
PrefSet(date_mg);
ExclSet(date_mg);
LocPrefs(loc_type);
EquipReqts(equip_type);
第 4 章 软件体 系结构描述 4.5 软件体 系结 构与 UML
◇ 直接使用 UM L 建模
◎ C2 连接件 模型
AttConn
ImportantAttConn
GetPrefSet(); MainConn
GetExclSet();
GetLocPrefs();
RemoveExclSet();
LocPrefs(loc_type);
RequestWithdrawal(Attendee);
AddPrefDates();
PrefSet(date_mg);
ExclSet(date_mg);
EquipReqts(equip_type);
第 4 章 软件体 系结构描述 4.5 软件体 系结 构与 UML
◇ 直接使用 UM L 建模
◎ 细化的类图
第 4 章 软件体 系结构描述 4.5 软件体 系结 构与 UML
◇ 直接使用 UM L 建模
◎ 会议安排系 统的协作图
:Attendee :ImportantAttendee
7:PrefSet(date_mg) 6:PrefSet(date_mg)
5:GetPrefSet() 4:GetPrefSet()
:AttConn :ImportantAttConn
9:PrefSet(date_mg) 8:PrefSet(date_mg)
3:GetPrefSet() 2:GetPrefSet()
:MainConn
11:PrefSet(date_mg)
10:PrefSet(date_mg) 1:GetPrefSet()
:MeetingInitiator
第 4 章 软件体 系结构描述 4.5 软件体 系结 构与 UML
◇ 使用 UML 扩展机制
自学
第 4 章 软件体 系结构描述 本章作业 与思 考题
◎ 交互 式动态 性
◎ 结构 化动态 性
◎ 体系 结构动 态性
第 5 章 动态软 件体系结构 5.1 动态软件 体系 结构概
述
◇ 动态体系结 构的研究
◎ 模拟和 描述 体系结 构动 态
更新
◎ 体系 结构动 态更 新的执 行
Change scripts
Design Changes
Changes environment
applies to implicitly affect
Model implementation
Architecture Implementation
Model
External
Architecture
Analysis
Evolution Manager Modules
第 5 章 动态软 件体系结构 5.2 软件体系 结构 动态模
型
◇ 基于构件的 动态系统结 构模型
◎ 模型 简介
体系结 体系结构配置 体系结构描述 执行
构层
构件 连接件 构件
构件配置 构件配置
连接件
中间层 构件描述 构件描述
配置
执行 执行
构件接口 构件连接 构件接口
应用层
执行 执行
第 5 章 动态软 件体系结构 5.2 软件体系 结构 动态模
型
◇ 基于构件的 动态系统结 构模型
◎ 更新请 求描述
◇ 更新类 型
◇ 更新对 象列 表
◇ 对象的 新版 本说明
◇ 对象更 新方 法
◇ 更新函 数
◇ 更新限 制
第 5 章 动态软 件体系结构 5.2 软件体系 结构 动态模
型
◇ 基于构件的 动态系统结 构模型
◎ 更新执 行步骤
◇ 检测更 新的 范围
◇ 更新准 备工 作
◇ 执行更 新
◇ 存储更 新
第 5 章 动态软 件体系结构 5.2 软件体系 结构 动态模
型
◇ 基于构件的 动态系统结 构模型
◎ 实例分 析
◇ 局部更 新
请求更新
提交更新请求
判
断
通知有更新请求
通知有更新请求
返回准备
就绪信息
返回准备 返回准备
就绪信息 就绪信息
通知一切就绪
准备执行更新 执行
更新
通知更新执行完毕并返回结果
通知更新 通知更新结束
结束 返回相应信息 通知更新结束
通知更新结束
第 5 章 动态软 件体系结构 5.2 软件体系 结构 动态模
型
◇ πADL 动态体 系结构
选读
第 5 章 动态软 件体系结构 5.2 动态体系 结构 的描述
◇ 动态体系结 构描述语言
◎ Dyna mic W right
Client L Server1
Client L Server1
L
C Server2
Server2
静态 描述 动态描 述
第 5 章 动态软 件体系结构 5.3 动态体系 结构 的描述
◇ 动态体系结 构描述语言
◎ Darw in
Component{
provide prev <port, int>;
require next <port, int>;
}
filter
prev next
output
第 5 章 动态软 件体系结构 5.3 动态体系 结构 的描述
◇ 可构造性动 态特征
Static view
Configuration directives
Dynamic view
第 5 章 动态软 件体系结构 5.4 动态体 系结 构特征
◇ 适应性动态 特征
Static view
Events
Dynamic view
第 5 章 动态软 件体系结构 5.4 动态体 系结 构特征
◇ 智能性动态 特征
Static view
Events
Dynamic view
第 5 章 动态软 件体系结构 本章作业与思考题
◇ 什么是 We b 服务
◇ 什么是 We b 服务
◎ 数据层
◎ 数据访问 层
◎ 业务层
◎ 业务面
◎ 监听者
第 6 章 Web 服务体 系结构 6.1 Web 服务概述
◎ 应用的 分布式
◎ 应用到 应用的 交互
◎ 平台无 关性
第 6 章 Web 服务体 系结构 6.1 Web 服务概述
◇ Web 服务的 特点
◎ 使用标准 协议 规范
◎ 使用协约 的规 范性
◎ 高度集 成能力
◎ 完好的 封装性
◎ 松散耦 合
第 6 章 Web 服务体 系结构 6.2 Web 服务体系 结构模 型
◇ Web 服务模 型
服务代理
发布
发现
绑定
服务请求者 服务提供者
第 6 章 Web 服务体 系结构 6.2 Web 服务体系 结构模 型
◎ 构建
◎ 部署
◎ 运行
◎ 管理
第 6 章 Web 服务体 系结构 6.2 Web 服务体系 结构模 型
◇ Web 服务栈
发现服务 UDDI、DISCO
描述服务 WSDL、XML Schema
消息格式层 SOAP
编码格式层 XML
传输协议层 HTTP,TCP/IP,SMTP等
第 6 章 Web 服务体 系结构 6.2 Web 服务体系 结构模 型
◎ 高度的 通用性 和易 用性
◎ 完全 的平 台、语 言独 立
性
◎ 高度的 集成性
◎ 容易部 署和发 布
第 6 章 Web 服务体 系结构 6.3 Web 服务的核 心技 术
◇ 作为 Web 服务基础的 XM L
◎ XM L 是 W3 C 制定的 作为 In te rn et 上数
据交换和 表示 的标准 语言 ,是一 种允 许用户
定义自己 的标 记的元 语言 。
第 6 章 Web 服务体 系结构 6.3 Web 服务的核 心技 术
◇ 简单对象访 问协议
SOAP Envelope
SOAP Header
◎ SO AP 信封
SOAP Block
◎ SO AP 编码 规则 SOAP Block
◎ SO AP RP C 表示 SOAP Body
SOAP Block
◎ SO AP 绑定
SOAP Block
第 6 章 Web 服务体 系结构 6.3 Web 服务的核 心技 术
Service
Port
(e.g. http://host/svc)
Port
Binding
(e.g. SOAP)
Binding
portType
Operation(s)
inMessage OutMessage
Abstract interface
第 6 章 Web 服务体 系结构 6.3 Web 服务的核 心技 术
◇ 统一描述、 发现和集成 协议
◎ 商业实 体结构
businessEntity: 发布
服务信息的商业实体
的详细信息 tModel: 服务或分类
◎ 商业服 务结构 法的规范描述。是技
术指纹的表现基础
◎ 绑定模 板 businessService: 一
组特定的技术服务的
描述信息
◎ t 模型结 构
BindingTemplate: 关
于服务的入口点和构
造规范的技术信息
第 6 章 Web 服务体 系结构 6.4 面向服 务的 软件体 系结
构
◇ SOA 的概念
◎ W3C 定义
SO A 为一种 应用 程序体 系结 构, 在这种 体系 结构
中, 所有 功能都 定义 为独立 的服 务,这 些服 务带
有定 义明 确的可 调用 接口, 可以 以定义 好的 顺序
调用 这些 服务来 形成 业务流 程。
第 6 章 Web 服务体 系结构 6.4 面向服 务的 软件体 系结
构
◇ SOA 的概念
◎ Gart ner 定义
SO A 为客 户端 / 服务 器的 软件设 计方 法,一 项
应用由软 件服 务和软 件服务 使用 者组成 , SO A
与大多数 通用 的客户 端 / 服务器 模型不 同之 处
,在于它 着重 强调软 件构件 的松 散耦合 ,并 使
用独立的 标准 接口。
第 6 章 Web 服务体 系结构 6.4 面向服 务的 软件体 系结
构
◇ SOA 的概念
应用配置
历史遗留系统
第 6 章 Web 服务体 系结构 6.4 面向服 务的 软件体 系结
构
◇ SOA 的概念
◎ 单个服 务内 部结构
数 数据
服务接口 逻
服 共同的封装 据
辑 访
务 共同的语言格式 层 SQL
问 XML Flat File
共同的安全和容错处理 Database
层
第 6 章 Web 服务体 系结构 6.4 面向服 务的 软件体 系结
构
◇ SOA 的概念
◎ SOA 模型的特 征
◎ 松散耦 合
◎ 粗粒度 服务
◎ 标准化 接口
第 6 章 Web 服务体 系结构 6.4 面向服 务的 软件体 系结
构
◇ SOA 的设计 原则
◎ 面向服 务的 分析与 设计 原理
业务组织 业务流程建模
面向服务的分
体系结构 企业体系结构
析与设计
底层设计 面向对象分析与设计
分析 设计 开发
第 6 章 Web 服务体 系结构 6.4 面向服 务的 软件体 系结
构
◇ SOA 的设计 原则
◎ SOA 的实践原 则
服务集成器
系统 过程模版 过程定义 过程库
入口 原 数据
GUI 过程监控 执行分析引擎 子 仓库
服
IE 务
运行交互 服务目录 库 数据
PDA 库
服务单元搜索
第 6 章 Web 服务体 系结构 本章作业 与思考 题
◇ 设计模式概 述
◇ 设计模式概 述
◎ MV C 模式
Observer
call update update
Model
core data
setOfObservers
attach(Observer)
attach View
detach(Observer)
notify getData myModel
myController create
getData Controller
initialize(Model) manipulate
service makeController disaplay myModel
activate myView
display initialize(Model,View)
update attach
handleEvent
call service
update
第 7 章 基于体 系结构的软 件开发 7.1 设计 模式
◇ 设计模式概 述
一个 好的 模式必 须做 到以下 几点 :
◎ 解决一个问题: 从模式可 以得到解 ,而不仅仅是 抽象的原
则或策 略。
◎ 是一个被证明了 的概念: 模式通过 —个记录得到 解.而不
是通过 理论或推测 。
◎ 解并不是显然的 :许多解 决问题的 方法(例如软 件设计范
例或方 法)是从最 基本的原理得 到解;而最 好的方法是 以非直
接的方 式得到解, 对大多数比较 困难的设计 问题来说, 这是必
要的。
◎ 描述了一种关系 :模式并 不仅仅描 述模块,它给 出更深层
的系统 结构和机理 。
◎ 模式有重要的人 为因素: 所有的软 件服务于人类 的舒适或
生活质 量,而最好 的模式追求它 的实用性和 美学。
第 7 章 基于体 系结构的软 件开发 7.1 设计 模式
◇ 设计模式的 基本成分
◎ 模式名 称
◎ 问题
◎ 解决方 案
◎ 后果
第 7 章 基于体 系结构的软 件开发 7.1 设计 模式
◇ 设计模式的 描述( 1 )
◇ 设计模式的 描述( 2 )
◇ 模式和软件 体系结构
◎ 模式作为 体系 结构构 造块
◎ 构造异构 体系 结构
◎ 模式和方 法
◎ 实现模式
第 7 章 基于体 系结构的软 件开发 7.1 设计 模式
◇ 设计模式方 法分类
◎ Co ad 的面 向对 象模式
◎ 代码模 式
◎ 框架应 用模式
◎ 形式合 约
第 7 章 基于体 系结构的软 件开发 7.1 设计 模式
◇ 设计模式方 法分类
1 、 Co ad 的面 向对 象模式 ( 1 )
◇ 设计模式方 法分类
1 、 Co ad 的面 向对 象模式 ( 2 )
( 3 )与 MV C 框架相关的模 式。
◇ 设计模式方 法分类
2 、代 码模 式
◇ 设计模式方 法分类
3 、框架 应用 模式
◇ 设计模式方 法分类
4 、形 式合 约 (1)
形式合 约也 是一种 描述 框架 设计的 方法, 强调 组成框 架的 对象间 的交
互关系 。有 人认为 它是 面向 交互的 设计, 对其 他方法 的发 展有启 迪作
用。但 形式 化方法 由于 其过 于抽象 ,而有 很大 的局限 性, 仅仅在 小规
模程序 中使 用。
优点:
( 1 )符 号所 包含的 元素 很少 ,并且 其中引 入的 概念能 够被 映射成 为
面向对 象程 序设计 语言 中的概 念。 例如, 参与者 映射 成为对 象。
◇ 设计模式方 法分类
4 、形 式合 约 (2)
缺点:
◇ 设计模式目 录的内容
系统
设计元素 概念子系统
模板
概念构件 模板
实际构件
图示
聚合
继承
进化
第 7 章 基 于体 系结 构的软 件开 发 7.2 基于体系 结构的设计方
法
◇ 有关概念
需求分析
功能需求
抽象
用例
质量需求
抽象
质量因素
体系结构选项
约束
ABSD方法
抽象构件
软件模板
约束
需求
实际构件设计
第 7 章 基 于体 系结 构的软 件开 发 7.2 基于体系 结构的设计方
法
◇ ABSD 方法的步骤
1 、 AB SD 方法 定义 的设计 元素
系统
概念子系统
模板
概念构件 模板
实际构件
图示
聚合
继承
进化
第 7 章 基 于体 系结 构的软 件开 发 7.2 基于体系 结构的设计方
法
◇ ABSD 方法的步骤
2 、设计 元素 的产生 顺序
B C
第 7 章 基 于体 系结 构的软 件开 发 7.2 基于体系 结构的设计方
法
◇ ABSD 方法的步骤
3 、设计 元素 的活动
定义逻辑视图
校验质 定义
量因素 并发
和约束 视图
定义配置视图
第 7 章 基 于体 系结 构的软 件开 发 7.2 基于体系 结构的设计方
法
◇ ABSD 方法的步骤
定义 逻辑 视图 功能分解
选择基本体
系结构风格
为体系结构
分配功能
提炼模板
用用例和变化
因素进行校验
第 7 章 基 于体 系结 构的软 件开 发 7.2 基于体系 结构的设计方
法
◇ ABSD 方法的步骤
某系 统的 逻辑视 图
用户界面子系统
用户界面页服务1 用户界面页服务1
服务1子系统 服务2子系统
操作系统子系统
网络子系统
图注: 数据流
第 7 章 基 于体 系结 构的软 件开 发 7.2 基于体系 结构的设计方
法
◇ ABSD 方法的步骤
( 1 )功能 分解
( 2 )选择 体系结构风 格
每个设 计元素有一 个主要的体系 结构风格或 模式,这是 设计元
素如何 完成它的功 能的基础。主 要风格并不 是唯一风格 ,为了
达到特 定目的,可 以进行修改。
体系结 构风格的选 择建立在设计 元素的体系 结构驱动基 础上。
在软件 设计过程中 ,并不总是有 现成的体系 结构风格可 供选择
为主要 的体系结构 风格。
一旦选 定了一个主 要的体系结构 风格,该风 格必须适应 基于属
于这个 设计元素的 质量需求,体 系结构选择 必须满足质 量需求
。
为设计 元素选择体 系结构风格是 一个重要的 选择,这种 选择在
很大程 度上依赖于 软件设计师的 个人设计经 验。
第 7 章 基 于体 系结 构的软 件开 发 7.2 基于体系 结构的设计方
法
◇ ABSD 方法的步骤
( 3 )为风 格分配功能
( 4 )细化 模板
( 5 )功能 校验
( 6 )创建 并发视图
初始化
开始
计时服务
用户界面处理
(服务1)
用户界面处理 诊断例程
(服务2)
命令服务1 命令服务2
图注: 控制线程
第 7 章 基 于体 系结 构的软 件开 发 7.2 基于体系 结构的设计方
法
◇ ABSD 方法的步骤
( 7 )创建 配置视图
( 7 )创建 配置视图
用户界面页服务1 用户界面页服务1
用户界面页服务2 用户界面页服务2
服务1子系统 服务1
服务2子系统 服务2
操作系统子系统
操作系统
网络子系统
( 8 )验证 质量场景
( 9 )验 证约 束
◇ 设计和演化 过程
◎ 实验原 型阶段
◎ 演化开 发阶段
第 7 章 基 于体 系结 构的软 件开 发 7.3 体系结 构的设计 与演化
◇ 实验原型阶 段
第一个 开发 周期
第一个 开发周期 没有具体的、 明确的目标 。此时,为
了提高 开发效率, 缩短开发周期 ,所有开发 人员可以分 成了
两个小 组,一个小 组创建图形用 户界面 ,另 一个小组 创建 一
个问题 域模型 。两个 小组要并行 地工作,尽 量不要发生相 互
牵制的 现象。
◇ 实验原型阶 段
第二个 开发 周期
◎ 标识 构件
◎ 提出 软件 体系结 构模 型
◎ 把已标识 的构 件映射 到软 件体系 结构
中
◎ 分析 构件 之间的 相互 作用
◎ 产生 软件 体系结 构
◎ 软件 体系 结构正 交化
第 7 章 基 于体 系结 构的软 件开 发 7.3 体系结 构的设计 与演化
◇ 实验原型阶 段
第二个 开发 周期
( 1 )标识 构件
第一 步, 生成类 图
第二 步, 对类进 行分 组
第三 步, 把类打 包成 构件
第 7 章 基 于体 系结 构的软 件开 发 7.3 体系结 构的设计 与演化
◇ 实验原型阶 段
第二个 开发 周期
( 2 )提出 软件体系结 构模 型
◇ 实验原型阶 段
第二个 开发 周期
◇ 实验原型阶 段
第二个 开发 周期
( 4 )分析 构件之间的 相互 作用
◇ 实验原型阶 段
第二个 开发 周期
( 5 )产生 软件体系结 构
◇ 实验原型阶 段
第二个 开发 周期
( 6 )软 件体 系结构 正交 化
◇ 演化开发阶 段
◎ 需求变 动归类
◎ 制订体 系结构 演化计 划
◎ 修改、 增加或 删除构 件
◎ 更新 构件 的相互作 用
◎ 产生演 化后的 体系结 构
◎ 迭代
◎ 对以上 步骤进 行确认 ,进 行阶段 性技 术评审
◎ 对所做 的标记 进行处 理
第 7 章 基 于体 系结 构的软 件开 发
7.4 基于体 系结构的软件 开发模型
◇ ABSD M
第 7 章 基 于体 系结 构的软 件开 发
7.4 基于体 系结构的软件 开发模型
◇ 体系结构需 求
第 7 章 基 于体 系结 构的软 件开 发
7.4 基于体 系结构的软件 开发模型
◇ 体系结构设 计
第 7 章 基 于体 系结 构的软 件开 发
7.4 基于体 系结构的软件 开发模型
◇ 体系结构文 档化
◇ 体系结构复 审
◇ 体系结构实 现
第 7 章 基 于体 系结 构的软 件开 发
7.4 基于体 系结构的软件 开发模型
◇ 体系结构演 化
第 7 章 基 于体 系结 构的软 件开 发 本章 作业与思考 题
S1 S2 Si Sn-1 Sn
S1 0 R1P12 R1P1i R1P 1n-1 R1P1n
S2 R2P21 0 R2P2i R2P 2n-1 R2P2n
◇ 顺序结构风 格
体系结构视图
p12
(a) C1 C2 Ck
状态视图 Rk
(b) R1 R2
S1 S2 Sk
M (i, j ) 0, Si 不能够到达S j
,for 1 i, j k
M (i, j ) ri pij , Si能够到达S j
第 8 章 软 件体 系结 构的分 析与 测试 8.1 可靠性 建模
◇ 并行 / 管道 - 过滤器 结构风格
C2 R2
体系结构视图 p
12 p2k
R1 Rk
C3
(a) C1 Ck
Ck-1
S p1
状态视图
(b) S1 Sk
k −1
P12
∏P
n =2
nk
M (i, j ) Ri Pij , Si S p
for 1 i, j | S |
M (i, j ) Rn Pnj , Si S p ,
and 1 n k
Cn in Si
M (i, j ) 0, Si 不能到达S j
第 8 章 软 件体 系结 构的分 析与 测试 8.1 可靠性 建模
◇ 容错结构风 格 P
C2 2(k-2)
体系结构视图 p12 P2(k-1) Ck-2
C3 Rk
(a) C1 Ck
Ck-1
R1
Ck-3 Rk-1
Sb1
状态视图 Sk-2
(b) S1 Sk
Sk-1
M (i, j ) Ri Pij , Si Sb
ar q 1
M (i, j ) Ra1
q a 2 m a1
(1_ R )
m n R , Si Sb并且包括
Si Ca1 ···Car
M (i, j ) 0, S 不能到达S ,1 i, j | S |,1 a k
i j r
第 8 章 软 件体 系结 构的分 析与 测试 8.1 可靠性 建模
◇ 调用 - 返回结构风 格
体系结构视图 p12
(a) C1 C2
p21
p13 R1
C3
状态视图
(b) S1 S2
R1
S3
◇ 系统的可靠 性模型化步 骤
◇ 软件体系结 构风险分析 背景
◎ 动态方 法
◎ 构件依 赖图
第 8 章 软 件体 系结 构的分 析与 测试8.2 可靠性 风险分 析
◇ 软件体系结 构风险分析 方法
◎ 测试内 容
◎ 测试准 则
◎ 测试需 求和测 试用 例的生 成
自学
第 8 章 软 件体 系结 构的分 析与 测试 本章作业 与思 考题
2 、如 何模 型化系 统的 可靠性 ?
◇ 性能
◇ 可靠性 (1 )
◇ 可靠性 (2 )
◎ 容错
◎ 健壮性
第 9 章 软 件体 系结 构评估 9.1 体系结 构评估 概述
◇ 可用性
◇ 安全性
◇ 可修改性
◎ 可维护 性
◎ 可扩展 性
◎ 结构重 组
◎ 可移植 性
第 9 章 软 件体 系结 构评估 9.1 体系结 构评估 概述
◇ 功能性
◇ 可变性
◇ 集成性
◇ 互操作性
◇ 基本概念
◇ 基本概念
( 2 )风 险承 担者
◇ 基本概念
( 3 )场 景 (1 )
◇ 基本概念
( 3 )场景 (2)
◇ 主要的评估 方式
◇ 基于 场景的 评估 方式
◇ 基于 度量的 评估 方式
第 9 章 软 件体 系结 构评估 9.2 SA 评估的 主要方 式
◇ 基于场景的 评估方式 (1 )
◇ 基于场景的 评估方式 (2 )
◇ 基于度量的 评估方式 (1 )
◇ 基于度量的 评估方式 (2 )
◇ 三种评估方式 的比较
第 9 章 软 件体 系结 构评估 9.3 ATAM 评估 方法
◇ ATAM 评估的步骤
◇ 描述 ATAM 方法
AT AM 评估的 第一步要求 评估小组负 责人向参加会 议的风险
承担者 介绍 AT AM 评估方 法。在这一 步,要解释 每个人将要 参与
的过程 ,并预留出 解答疑问的 时间,设置 好其他活动的 环境和预
期结果 。关键是要 使每个人都 知道要收集 哪些信息,如 何描述这
些信息 ,将要向谁 报告等。特 别是要描述 以下事项:
( 1 ) AT AM 方法步骤 简介;
( 2 )获取和分析 技术:效用 树的生成 ,基于体系 结构方法的 获
取 / 分析,场景的 映射等;
( 3 )评估结果: 所得出的场 景及其优 先级,用户 理解 / 评估 体
系结构 的问题,描 述驱动体系 结构的需求 并对这些需求 进行分类
,所确 定的一组体 系结构方法 和风格,一 组所发现的风 险点和无
风险点 、敏感点和 权衡点。
第 9 章 软 件体 系结 构评估 9.3 ATAM 评估 方法
◇ 描述商业动 机
参加评估的所有 人员必须 理解待评 估的系统,在 这一步,
项目经 理要从商业 角度介绍系 统的概况
◇ 描述体系结 构 (1)
◇ 描述体系结 构 (2)
体系结 构描述(约 20 张幻灯片 , 60 分钟)
◇ 描述体系结 构 (3)
◇ 确定体系结 构方法
◇ 生成质量属 性效用树 (1 )
◇ 生成质量属 性效用树 (2 )
(M,L)把客户数据库的存
数据延迟 储延迟减到最小值(200ms)
(H,M)提供实时视频图象
性能
(M,M)使认证服务器的
交易吞吐量
平均吞吐量最大化
新产品目录
(L,H)以小于20人月的
可修改性
商业产品 工作量添加CORBA中间件
的改变 (H,L)以小于4人周的工
作量更改Web用户界面
效用
(L,H)若站点1断电,要求在
3秒内将任务重定向到站点3
(M,M)若磁盘出现故障,
硬件故障
要在5分钟内重新启动
可用性 (H,M)要在1.5分钟内检
商业软件故障 测并恢复网络故障
(L,H)信用卡交易在
99.999%的时间内是安全的
数据机密性
(L,H)客户数据库认证在
安全性 99.999%的时间内能正常工作
数据完整性
第 9 章 软 件体 系结 构评估 9.3 ATAM 评估 方法
◇ 分析体系结 构方法 (1 )
◇ 分析体系结 构方法 (2 )
第 9 章 软 件体 系结 构评估 9.3 ATAM 评估 方法
◇ 分析体系结 构方法 (3 )
第 9 章 软 件体 系结 构评估 9.3 ATAM 评估 方法
◇ 讨论和分级 场景 (1)
风险承担者需进 行两项相 关的活动 :集体讨论 用例场景
(描述 风险承担者 期望使用系 统的方式) 和改变场景( 描述
风险承 担者所期望 的系统在将 来变更的方 式)。用例场 景是
场景的 一种,在用 例场景中, 风险承担者 是一个终端用 户,
使用系 统执行一些 功能。改变 场景代表系 统的变更,可 分为
成长场 景和考察场 景两类。
◇ 讨论和分级 场景 (2)
◇ 讨论和分级 场景 (3)
第 9 章 软 件体 系结 构评估 9.3 ATAM 评估 方法
◇ 讨论和分级 场景 (4)
第 9 章 软 件体 系结 构评估 9.3 ATAM 评估 方法
◇ 分析体系结 构方法
◇ 描述评估结 果
最后,要 把 AT AM 分析中所 得到的各种 信息进行归 纳,并反
馈给风 险承担者。 这种描述一 般要采用辅 以幻灯片的形 式,
但也可 以在 AT AM 评估结 束之后,提 交更完整的 书面报告。
◇ ATAM 评估的阶段
第一 个阶段以体 系结构为 中心,重点 是获取体系 结构信息
并进行 分析。第二 个阶段以风 险承担者为 中心,重点是 获取
风险承 担者的观点 ,验证第一 个阶段的结 果。
◇ 第一阶段 (1 )
AT AM 评估小 组要与提交待 评估的体系 结构的小组 见面(或
许这是 双方第一次 会见),这 一会议有两 方面的目的, 一是
组织和 安排以后的 工作,二是 收集相关信 息。从组织角 度来
看,体 系结构小组 负责人要保 证让合适的 人选参加后续 会议
,还要 保证这些人 为参加相关 会议做了充 分的准备,抱 着正
确的态 度。
第一天 通常作为整 个 AT AM 过程的一 个缩影,主 要关注 1-6 步
的工作 。第一次会 议所收集的 信息意味着 要保证体系结 构能
得到正 确的评估。 同时,在第 一次会议也 会收集和分析 一些
初步的 场景,作为 理解体系结 构、需要收 集和提交的信 息、
所产生 的场景的含 义的一种途 径。
第 9 章 软 件体 系结 构评估 9.3 ATAM 评估 方法
◇ 第一阶段 (2 )
◇ 第一阶段 (3 )
在这 一天的最后 ,评估人 员将对项目 的状态和环 境、驱动
体系结 构需求,以 及体系结构 文档都有较 清晰的认识。
◇ 第二阶段
自学
第 9 章 软 件体 系结 构评估 本章作 业与思 考题
1 、为什 么要 评估软 件体 系结 构?
3 、 AT AM 评估 方法 的基本 步骤 是什
么?
课 程 内 容
◇ 软件体 系结构 概论
◇ 软件体 系结构 建模
◇ 软件体 系结构 风格
◇ 软件体 系结构 描述
◇ 动态软 件体系 结构
◇ We b 服务体 系结 构
◇ 基于体 系结构 的软 件开发
◇ 软件体 系结构 的分 析与测
试
◇ 软件体 系结构 评估
◇ 软件产 品线体 系结 构
第 10 章 软 件产 品线 体系结 构10.1 软件 产品 线的出 现和 发
展
◇ 出现和发展
软件工程
技术侧面
软件体系结构
领域工程
特定领域
软体体系结构
软件产品线
应用领域
第 10 章 软 件产 品线 体系结 构 10.2 软件 产品 线概述
◇ 基本概念
◇ 基本概念
CMU /S EI 的定义 :“产品 线是一个产 品集合,这 些产品共
享一个 公共的、可 管理的特征 集,这个特 征集能满足选 定的市
场或任 务领域的特 定需求。这 些系统遵循 一个预描述的 方式,
在公共 的核心资源 (c or e ass ets ) 基础上 开发的。 ”
◇ 软件产品线 的过程模型
1 、双 生命 周期模 型
领域工程
现有系
统需求
领域分析 领域设计 领域实现
应用工程
新系统
需求 新系统
需求分析 系统设计 系统实现
第 10 章 软 件产 品线 体系结 构 10.2 软件 产品 线概述
◇ 软件产品线 的过程模型
2 、 SEI 模
型 产品线开发
核心资
产品开发
源开发
管理
领域工程 应用工程
第 10 章 软 件产 品线 体系结 构 10.2 软件 产品 线概述
◇ 软件产品线 的过程模型
2 、 SEI 模型
◎ 循环重复是 产品线开发过 程的特征 ,也是核心 资源开发
、产品 线开发以及 核心资源和 产品之间协作 的特征;
◇ 软件产品线 的过程模型
3 、三 生命周 期模 型
第 10 章 软 件产 品线 体系结 构 10.2 软件 产品 线概述
◇ 软件产品线 的组织结构
管理者
体系结构组 配置管理组
◇ 软件产品线 的建立方式
第 10 章 软 件产 品线 体系结 构 10.2 软件 产品 线概述
◇ 软件产品线 的演化
◎ 黑盒框 架
◎ 白盒框 架
第 10 章 软 件产 品线 体系结 构 10.4 软件产 品线 基本活 动
◇ 产品线基本 活动
产品线开发
核心资
产品开发
源开发
管理
领域工程 应用工程
第 10 章 软 件产 品线 体系结 构 10.4 软件产 品线 基本活 动
◇ 产品线分析
产品计划
产品线分析
资源开发
产品开发
(资源使用)
确认机遇
决策者 产品线开发
产品线开
产品
最终用户 发人员
第 10 章 软 件产 品线 体系结 构 10.4 软件产 品线 基本活 动
◇ 产品开发
第 10 章 软 件产 品线 体系结 构 10.5 产品 线体 系结构 的设
计
◇ 产品线体系 结构简介
◎ 软件产品 线体 系结构 指一 个软件 开发 组织为 一组
相关 应用 或产品 建立 的公共 体系 结构。
特定的产品线构件
框架体系结构
产品族 框架实现
商业部门 产品特定的代码
需求
产品线体系结构
产品线需求
产品线 产品线
构件 构件
产品线
构件
第 10 章 软 件产 品线 体系结 构 10.5 产品 线体 系结构 的演
化
◇ 背景介绍
产品线体系结构
光盘服务器 Jaz服务器
体系结构 体系结构 各种产品 各种产品
各种产品 各种产品
第 10 章 软 件产 品线 体系结 构 10.5 产品 线体 系结构 的演
化
◇ 背景介绍
NFS
文件系统框架 存取控制
块设备
SCSI
硬件
第一 代文 件系统 框架
第 10 章 软 件产 品线 体系结 构 10.5 产品 线体 系结构 的演
化
◇ 背景介绍
NFS
文件系统框架 存取控制框架
块设备
SCSI
硬件
第二 代文 件系统 框架
第 10 章 软 件产 品线 体系结 构 10.5 产品 线体 系结构 的演
化
◇ 两代产品的 各种发行版 本
网络文件系统框架 文件系统框架
以太网模块
Netware Pseudo
令牌网模块
NFS ISO9660
SMB
网络协议框架 SCSI
第一 代产 品的第 二个 版本
第 10 章 软 件产 品线 体系结 构 10.5 产品 线体 系结构 的演
化
◇ 两代产品的 各种发行版 本
网络文件系统框架 文件系统框架
以太网模块
Netware Pseudo
令牌网模块
NFS ISO9660
SMB
网络协议框架 SCSI
HTTP
第一 代产 品的第 三个 版本
第 10 章 软 件产 品线 体系结 构 10.5 产品 线体 系结构 的演
化
◇ 两代产品的 各种发行版 本
网络文件系统框架 文件系统框架
以太网模块
Netware Pseudo
令牌网模块
NDS ISO9660
NFS
网络协议框架 SCSI
SMB
HTTP
第一 代产 品的第 四个 版本
第 10 章 软 件产 品线 体系结 构 10.5 产品 线体 系结构 的演
化
◇ 两代产品的 各种发行版 本
文件 系统 框架的 时间 线
第 10 章 软 件产 品线 体系结 构 10.5 产品 线体 系结构 的演
化
◇ 两代产品的 各种发行版 本
网络文件系统框架
NFS
文件系统框架
SMB
MUPP
块设备
存取控制框架 FAT-16
SCSI
第二 代产 品的第 二个 版本
第 10 章 软 件产 品线 体系结 构 10.5 产品 线体 系结构 的演
化
◇ 两代产品的 各种发行版 本
网络文件系统框架 文件系统框架 备份
FAT-16
Netware
UDF
SMB
MTF 块设备->存储接口
HTTP
SNMP
存取控制框架 SCSI
第二 代产 品的第 三个 版本
第 10 章 软 件产 品线 体系结 构 10.5 产品 线体 系结构 的演
化
◇ 两代产品的 各种发行版 本
网络文件系统框架 文件系统框架
FAT-16
Netware
UDF
SMB
MTF 存储接口
HTTP
ISO9660
SNMP
SCSI
NFS
存取控制框架
第二代产 品的 第四个 版本
第 10 章 软 件产 品线 体系结 构 10.5 产品 线体 系结构 的演
化
◇ 需求和演化 的分类
4、扩展标准支持
2、在产品线中
增加新的产品
5、硬件、操作系统
的新版本,或第三方
1、构建新的 增加了新功能
产品族
3、改进已有功能 6、改进框架的质量
属性
需求分类 之间 的关系
第 10 章 软 件产 品线 体系结 构 10.5 产品 线体 系结构 的演
化
◇ 需求和演化 的分类
3、新产品线体
系结构构件
5、分解产品线
体系结构构件
7、增加构件
1、产品线体 之间的关系
系结构的分解
2、导出产品 4、修改产品线
线体系结构 体系结构构件 8、修改构件
之间的关系
6、代替产品线
体系结构构件
各种 演化 之间的 关系
第 10 章 软 件产 品线 体系结 构 本章作 业与思考题
[ 问题 1]
请用 100 字以内 文字说明 A 公司是否 适合采用产 品线方法? 为什么
?
[ 问题 2]
请用 200 字以内 文字说明如何 在原有产品 的基础上建 立产品线?
[ 问题 3]
请用 150 字以内 文字说明成功 实施产品线 的主要因素 是什么?