第一部分 概览
第1章 引言
1.1 软件建模
1.2 面向对象方法与统一建模语言
1.3 软件体系结构设计
1.4 方法和表示法
1.5 COMET:一种基于UML的软件应用建模和设计方法
1.6 UML标准
1.7 软件体系结构的多视图
1.8 软件建模和设计方法的发展
1.9 面向对象分析和设计方法的发展
1.10 并发、分布式和实时设计方法
1.11 总结
练习
第2章 UML表示法概述
2.1 UML图
2.2 用例图
2.3 类和对象
2.4 类图
2.4.1 关联
2.4.2 聚合和组合层次
2.4.3 泛化和特化层次
2.4.4 可见性
2.5 交互图
2.5.1 通信图
2.5.2 顺序图
2.6 状态机图
2.7 包
2.8 并发通信图
2.9 部署图
2.10 UML扩展机制
2.10.1 构造型
2.10.2 标记值
2.10.3 约束
2.11 本书的约定
2.11.1 需求建模
2.11.2 分析建模
2.11.3 设计建模
2.12 总结
练习
第3章 软件生存周期模型和过程
3.1 软件生存周期模型
3.1.1 瀑布生存周期模型
3.1.2 瀑布模型的局限性
3.1.3 抛弃型原型
3.1.4 通过增量开发的演化式原型
3.1.5 抛弃型原型和增量开发的结合
3.1.6 螺旋模型
3.1.7 统一软件开发过程
3.2 设计验证和确认
3.2.1 软件质量保证
3.2.2 软件设计的性能分析
3.3 软件生存周期的活动
3.3.1 需求分析和规约
3.3.2 体系结构设计
3.3.3 详细设计
3.3.4 编码
3.4 软件测试
3.4.1 单元测试
3.4.2 集成测试
3.4.3 系统测试
3.4.4 验收测试
3.5 总结
练习
第4章 软件设计和体系结构概念
4.1 面向对象概念
4.2 信息隐藏
4.2.1 面向对象设计中的信息隐藏
4.2.2 信息隐藏示例
4.2.3 设计信息隐藏对象
4.3 继承和泛化/特化
4.4 并发处理
4.4.1 顺序应用与并发应用
4.4.2 并发对象
4.4.3 并发对象间的协作
4.4.4 同步问题
4.4.5 生产者/消费者问题
4.4.6 异步消息通信
4.4.7 带回复的同步消息通信
4.5 设计模式
4.6 软件体系结构和构件
4.6.1 构件和构件接口
4.6.2 连接器
4.7 软件质量属性
4.8 总结
练习
第5章 软件建模和设计方法概览
5.1 COMET基于用例的软件生存周期
5.1.1 需求建模
5.1.2 分析建模
5.1.3 设计建模
5.1.4 增量软件构建
5.1.5 增量软件集成
5.1.6 系统测试
5.2 COMET生存周期与其他软件过程的比较
5.2.1 COMET生存周期与统一软件开发过程对比
5.2.2 COMET生存周期与螺旋模型对比
5.3 需求、分析和设计建模
5.3.1 需求建模中的活动
5.3.2 分析建模中的活动
5.3.3 设计建模中的活动
5.4 设计软件体系结构
5.5 总结
练习
第二部分 软件建模
第6章 用例建模
6.1 需求建模
6.1.1 需求分析
6.1.2 需求规约
6.1.3 软件需求规约的质量属性
6.2 用例
6.3 参与者
6.3.1 参与者、角色和用户
6.3.2 主要和次要参与者
6.3.3 对参与者建模
6.3.4 谁是参与者
6.4 标识用例
6.5 用例模型中文档化用例
6.6 用例描述示例
6.7 用例关系
6.8 包含关系
6.8.1 包含关系和包含用例示例
6.8.2 结构化冗长的用例
6.9 扩展关系
6.9.1 扩展点
6.9.2 扩展点和扩展用例示例
6.10 用例组织指南
6.11 规定非功能性需求
6.12 用例包
6.13 活动图
6.14 总结
练习
第7章 静态建模
7.1 类之间的关联
7.1.1 类图描述关联
7.1.2 关联的多重性
7.1.3 三元关联
7.1.4 一元关联
7.1.5 关联类
7.2 组合和聚合层次
7.3 泛化/特化层次
7.4 约束
7.5 静态建模和UML
7.6 系统上下文的静态建模
7.7 使用UML构造型对类分类
7.8 外部类建模
7.8.1 从外部类开发软件系统上下文类图示例
7.8.2 参与者和外部类
7.8.3 从参与者开发软件系统上下文类图示例
7.9 实体类的静态建模
7.10 总结
练习
第8章 对象和类组织
8.1 对象和类的组织准则
8.2 对应用类和对象建模
8.3 对象和类的组织分类
8.4 外部类与软件边界类
8.5 边界类和对象
8.5.1 用户交互对象
8.5.2 代理对象
8.5.3 设备I/O边界对象
8.5.4 描述外部类和边界类
8.6 实体类和对象
8.7 控制类和对象
8.7.1 协调者对象
8.7.2 状态相关的控制对象
8.7.3 计时器对象
8.8 应用逻辑类和对象
8.8.1 业务逻辑对象
8.8.2 算法对象
8.8.3 服务对象
8.9 总结
练习
第9章 动态交互建模
9.1 对象交互建模
9.1.1 通信图
9.1.2 顺序图
9.1.3 对象交互建模的分析和设计决策
9.1.4 顺序图和通信图对比
9.1.5 用例和场景
9.1.6 通用和实例形式的交互图
9.2 交互图上的消息序列编号
9.2.1 交互图上的消息标签
9.2.2 交互图上的消息序列编号
9.2.3 并发和可替换的消息序列
9.2.4 消息序列描述
9.3 动态交互建模
9.4 无状态动态交互建模
9.5 无状态动态交互建模示例
9.5.1 查看警报示例
9.5.2 下单请求示例
9.6 总结
练习
第10章 有限状态机
10.1 有限状态机和状态转换
10.1.1 事件
10.1.2 状态
10.2 状态图示例
10.2.1 ATM状态图示例
10.2.2 微波炉状态图示例
10.3 事件和警戒条件
10.4 动作
10.4.1 状态转换中的动作
10.4.2 进入动作
10.4.3 退出动作
10.5 层次化状态图
10.5.1 层次化状态分解
10.5.2 复合状态
10.5.3 状态转换的聚合
10.5.4 正交状态图
10.6 开发状态图的指导原则
10.7 从用例开发状态图
10.8 从用例开发状态图示例
10.8.1 为每个用例开发状态图
10.8.2 考虑可替换序列
10.8.3 开发集成的状态图
10.8.4 开发层次化状态图
10.9 总结
练习
第11章 状态相关的动态交互建模
11.1 状态相关的动态交互建模中的步骤
11.2 使用交互图和状态图对交互场景建模
11.3 状态相关的动态交互建模示例:银行系统
11.3.1 确定主序列
11.3.2 确定可替换序列
11.3.3 主序列:有效PIN码
11.3.4 可替换序列:无效PIN码
11.3.5 可替换序列:第三次无效PIN码
11.3.6 可替换序列:被盗的或过期的卡片
11.3.7 所有场景通用的交互图
11.3.8 控制对象和状态图的编序
11.4 总结
练习
第三部分 软件体系结构设计
第12章 软件体系结构概览
12.1 软件体系结构以及基于构件的软件体系结构
12.1.1 基于构件的软件体系结构
12.1.2 体系结构构造型
12.2 软件体系结构的多视图
12.2.1 软件体系结构的结构视图
12.2.2 软件体系结构的动态视图
12.2.3 软件体系结构的部署视图
12.3 软件体系结构模式
12.3.1 抽象分层体系结构模式
12.3.2 调用/返回模式
12.3.3 异步消息通信模式
12.3.4 带回复的同步消息通信模式
12.4 描述软件体系结构模式
12.5 接口设计
12.6 设计软件体系结构
12.7 总结
练习
第13章 软件子系统体系结构设计
13.1 软件体系结构设计中的问题
13.2 集成通信图
13.3 子系统设计中的关注点分离
13.3.1 复合对象
13.3.2 地理位置
13.3.3 客户端和服务
13.3.4 用户交互
13.3.5 外部对象的接口
13.3.6 控制范围
13.4 子系统组织准则
13.4.1 客户端子系统
13.4.2 用户交互子系统
13.4.3 服务子系统
13.4.4 控制子系统
13.4.5 协调者子系统
13.4.6 输入/输出子系统
13.5 子系统间消息通信的决策
13.6 总结
练习
第14章 设计面向对象的软件体系结构
14.1 面向对象的软件体系结构的概念、体系结构和模式
14.2 设计信息隐藏类
14.3 设计类接口和操作
14.3.1 基于交互模型设计类操作
14.3.2 基于交互模型设计类操作示例
14.3.3 基于静态模型设计类操作
14.4 数据抽象类
14.5 状态机类
14.6 图形用户交互类
14.7 业务逻辑类
14.8 设计中的继承
14.8.1 类继承
14.8.2 抽象类
14.8.3 抽象类和子类示例
14.8.4 抽象超类和子类设计
14.9 类接口规约
14.10 信息隐藏类的详细设计
14.10.1 账户抽象超类的详细设计
14.10.2 支票账户子类的详细设计
14.10.3 储蓄账户子类的详细设计
14.11 多态和动态绑定
14.12 Java中类的实现
14.13 总结
练习
第15章 设计客户端/服务器软件体系结构
15.1 客户端/服务器体系结构的概念、体系结构和模式
15.2 客户端/服务软件体系结构的结构模式
15.2.1 多客户端/单服务体系结构模式
15.2.2 多客户端/多服务体系结构模式
15.2.3 多层客户端/服务体系结构模式
15.3 客户端/服务器体系结构的通信模式
15.3.1 带回复的同步消息通信模式
15.3.2 带回调的异步消息通信模式
15.4 客户端/服务器系统的中间件
15.4.1 客户端/服务器系统平台
15.4.2 Java远程方法调用
15.5 服务子系统的设计
15.5.1 顺序性服务的设计
15.5.2 顺序性服务设计示例
15.5.3 并发服务设计
15.6 包装器类的设计
15.6.1 数据库包装器类的设计
15.6.2 数据库包装器类示例
15.7 从静态模型到关系数据库的设计
15.7.1 关系数据库概念
15.7.2 确定主键
15.7.3 将关联映射到外键
15.7.4 将关联类映射到关联表
15.7.5 将整体/部分关系映射到关系数据库
15.7.6 将泛化/特化关系映射到关系数据库
15.8 总结
练习
第16章 设计面向服务的体系结构
16.1 面向服务的体系结构的概念、体系结构和模式
16.2 软件体系结构代理者模式
16.2.1 服务注册模式
16.2.2 代理者转发模式
16.2.3 代理者句柄模式
16.2.4 服务发现模式
16.3 面向服务的体系结构的技术支持
16.3.1 Web服务协议
16.3.2 Web服务
16.3.3 注册服务
16.3.4 代理和发现服务
16.4 软件体系结构事务模式
16.4.1 两阶段提交协议模式
16.4.2 复合事务模式
16.4.3 长事务模式
16.5 协商模式
16.6 面向服务体系结构中的服务接口设计
16.7 面向服务体系结构中的服务协调
16.8 设计面向服务的体系结构
16.9 服务复用
16.10 总结
练习
第17章 设计基于构件的软件体系结构
17.1 基于构件的软件体系结构的概念、体系结构和模式
17.2 设计基于构件的分布式软件体系结构
17.3 复合子系统和构件
17.4 使用UML建模构件
17.4.1 构件接口设计
17.4.2 供给和请求接口
17.4.3 连接器和交互构件
17.4.4 设计复合构件
17.5 构件组织准则
17.5.1 与物理数据源的邻近性
17.5.2 局部自治性
17.5.3 性能
17.5.4 特定硬件
17.5.5 I/O构件
17.6 组消息通信模式
17.6.1 广播消息通信模式
17.6.2 订阅/通知消息通信模式
17.6.3 使用订阅和通知的并发服务设计
17.7 应用部署
17.7.1 应用部署事务
17.7.2 应用部署示例
17.8 总结
练习
第18章 设计并发和实时软件体系结构
18.1 并发和实时软件体系结构的概念、体系结构及模式
18.2 实时系统的特点
18.3 实时软件体系结构中的控制模式
18.3.1 集中式控制体系结构模式
18.3.2 分布式控制体系结构模式
18.3.3 层次化控制体系结构模式
18.4 并发任务组织
18.5 I/O任务组织准则
18.5.1 事件驱动I/O任务
18.5.2 周期性I/O任务
18.5.3 按需驱动I/O任务
18.6 内部任务组织准则
18.6.1 周期性任务
18.6.2 按需驱动任务
18.6.3 控制任务
18.6.4 用户交互任务
18.7 开发并发任务体系结构
18.8 任务通信和同步
18.8.1 异步(松耦合)消息通信
18.8.2 带回复的同步(紧耦合)消息通信
18.8.3 不带回复的同步(紧耦合)消息通信
18.8.4 事件同步
18.8.5 信息隐藏对象上的任务交互
18.8.6 修正的并发通信图
18.9 任务接口和任务行为规约
18.9.1 针对银行服务任务的TIS示例
18.9.2 针对读卡器接口任务的TIS示例
18.10 Java中并发任务的实现
18.11 总结
练习
第19章 设计软件产品线体系结构
19.1 演化软件产品线工程
19.2 软件产品线的需求建模
19.2.1 软件产品线的用例建模
19.2.2 特征建模
19.3 软件产品线的分析建模
19.3.1 软件产品线的静态建模
19.3.2 软件产品线的动态交互建模
19.4 软件产品线的动态状态机建模
19.5 软件产品线的设计建模
19.5.1 建模基于构件的软件体系结构
19.5.2 软件体系结构模式
19.6 总结
练习
第20章 软件质量属性
20.1 可维护性
20.2 可修改性
20.3 可测试性
20.4 可追踪性
20.5 可扩展性
20.6 可复用性
20.7 性能
20.8 安全性
20.9 可用性
20.10 总结
练习
第四部分 案例研究
第21章 客户端/服务器软件体系结构案例研究:银行系统
21.1 问题描述
21.2 用例模型
21.2.1 “验证PIN码”用例
21.2.2 具体的“取款”用例
21.2.3 具体的“查询账户”用例
21.2.4 具体的“转账”用例
21.3 静态建模
21.3.1 问题域的静态建模
21.3.2 系统上下文的静态建模
21.3.3 实体类的静态建模
21.4 对象组织
21.4.1 客户端/服务器子系统组织
21.4.2 ATM客户端对象和类的组织:边界对象
21.4.3 ATM客户端对象和类的组织:用例中的对象
21.4.4 服务子系统中的对象组织
21.5 动态建模
21.5.1 客户端验证PIN码交互图的消息序列描述
21.5.2 服务器端验证PIN码交互图的消息序列描述
21.5.3 客户端取款交互图的消息序列描述
21.5.4 服务器端取款交互图的消息序列描述
21.6 ATM状态图
21.6.1 处理客户输入复合状态
21.6.2 处理交易复合状态
21.6.3 结束交易复合状态
21.7 银行系统的设计
21.8 集成通信模型
21.9 将系统划分为子系统
21.10 ATM客户端子系统的设计
21.10.1 设计ATM子系统并发任务体系结构
21.10.2 定义ATM子系统任务接口
21.10.3 设计ATM客户端信息隐藏类
21.11 银行服务子系统的设计
21.11.1 设计银行服务子系统并发任务体系结构
21.11.2 设计银行服务信息隐藏类
21.11.3 设计银行服务接口
21.12 关系数据库设计
21.13 银行系统的部署
21.14 其他设计考虑
21.15 详细设计
21.15.1 读卡器接口任务的事件顺序逻辑示例
21.15.2 ATM控制任务的事件顺序逻辑示例
21.15.3 银行服务任务的事件顺序逻辑示例
第22章 面向服务的体系结构案例研究:在线购物系统
22.1 问题描述
22.2 用例建模
22.2.1 “浏览目录”用例描述
22.2.2 “下单请求”用例描述
22.2.3 “处理配送订单”用例描述
22.2.4 “确认配送和给客户开账单”用例描述
22.2.5“查看订单”用例的活动图
22.3 静态建模
22.3.1 软件系统上下文建模
22.3.2 问题域的静态实体类建模
22.4 对象和类组织
22.5 动态建模
22.5.1 “浏览目录”用例的动态建模
22.5.2 “下单请求”用例的动态建模
22.5.3 “处理配送订单”用例的动态建模
22.5.4 “确认配送和给客户开账单”用例的动态建模
22.5.5 “查看订单”用例的动态建模
22.6 面向服务体系结构的代理者和包装器技术支持
22.7 设计建模
22.7.1 面向服务的体系结构概述
22.7.2 分层软件体系结构
22.7.3 体系结构通信模式
22.7.4 并发软件设计
22.7.5 服务接口设计
22.7.6 面向服务的软件体系结构设计
22.7.7 构件端口和接口设计
22.8 服务复用
第23章 基于构件的软件体系结构案例研究:应急监控系统
23.1 问题描述
23.2 用例建模
23.2.1 “查看监控数据”用例描述
23.2.2 “查看警报”用例描述
23.2.3 “生成监控数据”用例描述
23.2.4 “生成警报”用例描述
23.3 静态建模
23.4 动态建模
23.4.1 类和对象组织
23.4.2 用例的通信图
23.4.3 “查看警报”用例的通信图
23.4.4 “查看监控数据”用例的通信图
23.4.5 “生成警报”用例的通信图
23.4.6 “生成监控状态”用例的通信图
23.5 设计建模
23.5.1 集成的通信图
23.5.2 基于构件的分层体系结构
23.5.3 体系结构通信模式
23.5.4 基于分布式构件的软件体系结构
23.5.5 构件和服务接口设计
23.6 软件构件部署
第24章 实时软件体系结构案例研究:自动引导车辆系统
24.1 问题描述
24.2 用例建模
24.2.1 “移动到站点”用例
24.2.2 “发送车辆状态”用例
24.3 静态建模
24.3.1 概念静态模型
24.3.2 软件系统上下文建模
24.4 对象和类组织
24.5 动态状态机建模
24.6 动态交互建模
24.6.1 “移动到站点”用例的动态建模
24.6.2 “发送车辆状态”用例的动态建模
24.7 设计建模
24.7.1 集成通信图
24.7.2 基于构件的工厂自动化系统软件体系结构
24.7.3 自动引导车辆系统的软件体系结构
24.7.4 并发软件体系结构
24.7.5 体系结构通信模式
24.7.6 基于构件的软件体系结构
24.7.7 构件接口设计
附录A 软件体系结构模式分类
附录B 教学考虑
术语表
练习答案
参考文献
索引
以下为对购买帮助不大的评价