第1章 软件工程和建模 1
1.1 软件工程的发展历史 1
1.2 软件工程的基本原理 2
1.3 软件生命周期 3
1.4 软件开发模型 5
1.5 软件开发方法 10
1.5.1 面向过程的开发方法 10
1.5.2 面向数据结构的开发方法 10
1.5.3 面向对象的开发方法 11
1.6 软件开发方法的评价与选择 12
1.7 软件建模 14
本章小结 16
习题1 16
第2章 面向对象技术 17
2.1 什么是面向对象 17
2.2 面向对象的基本概念 18
2.3 面向对象的分析 22
2.4 面向对象的设计 23
2.4.1 面向对象的设计准则 23
2.4.2 面向对象的设计过程 25
2.5 面向对象方法比较 28
2.5.1 Booch面向对象方法 29
2.5.2 Jacobson的面向对象方法 31
2.5.3 Coad-Yourdon面向对象方法 32
2.5.4 OMT面向对象方法 34
2.6 面向对象开发语言和建模工具 36
本章小结 36
习题2 36
第3章 UML语言基础 37
3.1 UML发展历史 37
3.2 UML的主要内容 38
3.2.1 UML语义 39
3.2.2 UML表示法 39
3.2.3 对象约束语言 41
3.3 UML中的符号和图形 41
3.3.1 模型的概念 41
3.3.2 模型元素 41
3.3.3 模型元素之间的关系 42
3.3.4 模型组织 43
3.4 公共机制 46
3.4.1 修饰 46
3.4.2 说明 46
3.4.3 公共划分 46
3.5 扩展机制 47
3.5.1 构造型 47
3.5.2 标记值 48
3.5.3 约束 48
3.6 UML的特点和应用领域 49
3.6.1 UML的主要特点 49
3.6.2 UML的应用领域 50
本章小结 52
习题3 52
第4章 用例图 53
4.1 概述 53
4.2 系统 54
4.3 活动者 55
4.3.1 定义 55
4.3.2 确定活动者 55
4.3.3 活动者之间的关系 56
4.4 用例 57
4.4.1 定义 57
4.4.2 用例表示法 57
4.4.3 用例描述 57
4.5 用例之间的联系 59
4.5.1 泛化联系 59
4.5.2 使用联系 59
4.5.3 包含联系 60
4.5.4 扩展联系 60
4.6 用例建模 61
4.6.1 建立用例图 61
4.6.2 用例建模中应注意的问题 61
4.7 实例讲解 62
4.7.1 班级信息管理系统 62
4.7.2 图书借阅管理系统 63
本章小结 65
习题4 65
第5章 对象图和类图 67
5.1 概述 67
5.2 对象类定义 67
5.2.1 类的名称 68
5.2.2 定义属性 68
5.2.3 定义操作 69
5.3 对象类的关联 70
5.3.1 关联的定义 70
5.3.2 关联类型 71
5.3.3 聚合和组合 72
5.3.4 泛化 72
5.3.5 依赖 73
5.4 对象图 73
5.5 接口 74
5.6 高级对象类 75
5.6.1 抽象类 75
5.6.2 模板对象类 76
5.7 对象类图建模 76
5.7.1 建立对象类图 76
5.7.2 类和对象建模中应注意的问题 77
5.8 实例讲解 79
5.8.1 图书借阅管理系统类图 79
5.8.2 旅游宾馆客房预订管理 79
本章小结 80
习题5 80
第6章 交互图 82
6.1 概述 82
6.2 序列图 82
6.2.1 序列图的组成 83
6.2.2 同步消息和异步消息 85
6.2.3 分支和条件 85
6.2.4 循环 86
6.2.5 时间约束 86
6.2.6 对象创建和销毁 87
6.2.7 自调用和回调 87
6.3 协作图 88
6.3.1 协作图的组成 88
6.3.2 对象的创建与销毁 89
6.3.3 同步消息和异步消息 90
6.3.4 自调用和回调 90
6.4 交互图建模 91
6.4.1 建立交互图 91
6.4.2 交互图建模的基本步骤 92
6.4.3 交互图建模中应注意的问题 92
6.5 实例讲解——图书借阅管理系统交互图 93
6.5.1 图书借阅管理系统序列图 93
6.5.2 图书管理系统协作图 95
本章小结 96
习题6 96
第7章 状态图 97
7.1 概述 97
7.2 状态及其分类 97
7.2.1 状态 97
7.2.2 状态的种类 99
7.3 状态机和状态图 103
7.3.1 状态机 103
7.3.2 状态图 103
7.4 消息、事件和状态迁移 105
7.4.1 消息 105
7.4.2 事件 106
7.4.3 守卫条件 108
7.4.4 动作表达式 109
7.4.5 状态迁移的种类 109
7.5 并发状态图 112
7.5.1 并发子状态 112
7.5.2 同步 113
7.6 状态图建模 114
7.6.1 建立状态图 114
7.6.2 状态图建模中应注意的问题 115
7.7 实例讲解 116
本章小结 116
习题7 117
第8章 活动图 118
8.1 活动图概述 118
8.2 活动图的组成 118
8.2.1 组成要素 119
8.2.2 动作流 120
8.2.3 泳道 121
8.2.4 对象流 122
8.3 活动分解 123
8.4 活动图的并发与同步 124
8.4.1 并发与同步 124
8.4.2 同步状态 125
8.4.3 动态并发 125
8.5 活动图建模 126
8.5.1 建立活动图 126
8.5.2 活动图建模中应注意的问题 127
8.6 实例讲解 127
本章小结 128
习题8 128
第9章 包图 129
9.1 概述 129
9.2 包的基本含义 129
9.2.1 包的语义和表示 129
9.2.2 包的嵌套 131
9.2.3 标准构造型 131
9.3 包的联系 132
9.3.1 依赖 132
9.3.2 泛化 134
9.4 包图 135
9.5 包图建模 135
9.5.1 建立包图 135
9.5.2 包图建模中应注意的问题 137
本章小结 138
习题9 138
第10章 物理图 139
10.1 概述 139
10.2 构件图 139
10.2.1 构件 139
10.2.2 构件的种类 142
10.2.3 构件的联系 143
10.2.4 建立构件图 144
10.3 配置图 148
10.3.1 节点 148
10.3.2 节点的联系 149
10.3.3 建立配置图 150
10.4 物理图建模 153
本章小结 154
习题10 154
第11章 RUP统一建模过程 155
11.1 软件过程概述 155
11.1.1 软件过程介绍 155
11.1.2 当前流行的软件开发过程 156
11.2 RUP简介 159
11.2.1 RUP过程 159
11.2.2 RUP过程的特点 167
11.3 RUP的核心工作流 168
11.3.1 业务建模 168
11.3.2 需求 169
11.3.3 分析和设计 171
11.3.4 实现 172
11.3.5 测试 173
11.3.6 部署 175
11.3.7 核心支持工作流 176
本章小结 178
习题11 179
第12章 应用系统案例 180
12.1 系统概述 180
12.2 系统需求 181
12.2.1 系统总体功能需求 181
12.2.2 各关键模块需求 181
12.3 系统用例模型 183
12.3.1 确定系统范围和系统边界 183
12.3.2 确定活动者 183
12.3.3 定义用例 184
12.3.4 建立用例图 184
12.3.5 用例描述 186
12.4 设计实体类模型 193
12.4.1 识别对象类 193
12.4.2 类图 194
12.4.3 类属性 195
12.5 设计接口和控制类模型 196
12.5.1 识别接口类 197
12.5.2 识别控制类 198
12.5.3 系统类模型 199
12.6 设计动态模型 199
12.6.1 数据访问类 199
12.6.2 建立序列图 199
12.7 系统部署 205
12.7.1 建立构件图 205
12.7.2 建立配置图 206
本章小结 206
习题12 206