第1章 概述 1
1.1 关于本书 1
1.2 面向对象系统开发 2
1.3 统一建模语言(UML) 2
1.4 统一过程(UP) 3
1.5 当前进度 5
1.6 思考题 5
第2章 业务建模 6
2.1 业务建模概述 6
2.2 系统概要视图 8
2.3 业务用例 10
2.3.1 业务参与者与业务工作者 11
2.3.2 自动化的机遇 12
2.4 业务活动图 14
2.4.1 基本元素 14
2.4.2 控制流节点 16
2.5 业务状态依赖 18
2.6 其他说明 21
2.7 当前进度 22
2.8 思考题 22
第3章 高级别需求 23
3.1 高级别需求概述 23
3.2 系统参与者 24
3.3 系统用例 24
3.3.1 独立会话 26
3.3.2 交互 27
3.3.3 一致性结果 28
3.3.4 基本用例 29
3.3.5 简要用例 29
3.3.6 系统边界 29
3.4 如何在业务模型中发现系统用例 30
3.5 需求 32
3.5.1 需求获取 33
3.5.2 需求获取不是需求设计 34
3.5.3 需求挑战 35
3.5.4 显性和隐性的功能需求 35
3.5.5 非功能性需求 36
3.5.6 非功能性需求的持久性和短暂性 36
3.5.7 强制性需求和希望性需求 37
3.5.8 补充需求 38
3.6 初步概念模型 41
3.7 当前进度 45
3.8 思考题 45
第4章 基于用例的项目规划 46
4.1 软件项目中的工作量估算和风险分析 46
4.1.1 Ad hoc方法 46
4.1.2 参数法 47
4.1.3 风险分析 49
4.2 用例点分析 51
4.2.1 UAW(未调整参与者权重) 52
4.2.2 UUCW(未调整用例权重) 53
4.2.3 UUCP(未调整用例点) 54
4.2.4 TCF(技术复杂度因子) 54
4.2.5 EF(环境因子) 60
4.2.6 UCP(已调整用例点) 63
4.2.7 工作量 63
4.2.8 日历时间与团队平均规模 64
4.2.9 详细用例的计数方法 66
4.3 规划迭代项目 66
4.3.1 估算迭代周期 67
4.3.2 迭代数量 67
4.3.3 每用例点的工作量 68
4.3.4 团队负载能力 68
4.3.5 定义用例优先级 69
4.3.6 规划阶段和迭代 70
4.4 当前进度 72
4.5 思考题 72
第5章 扩展用例 73
5.1 扩展用例概况 73
5.2 主要流 74
5.3 替代流 76
5.3.1 场景 76
5.3.2 变体 77
5.3.3 异常处理 78
5.4 书写规范 82
5.4.1 基本用例及实际用例 83
5.4.2 明确的信息 84
5.4.3 身份验证与选择 84
5.4.4 强制性步骤 84
5.4.5 补充步骤 87
5.4.6 不恰当步骤 87
5.5 包含用例与片段 88
5.6 版型化用例的扩展 89
5.6.1 报表扩展 90
5.6.2 CRUD扩展 90
5.7 扩展用例的其他内容 94
5.7.1 利益相关者 94
5.7.2 先验条件 94
5.7.3 成功的后验条件 95
5.7.4 已知问题 95
5.8 系统时序图 95
5.8.1 时序图元素 95
5.8.2 将用例扩展为系统时序图 97
5.8.3 将接口连接到fa?ade控制器 99
5.8.4 无状态机制 102
5.8.5 有状态机制 103
5.8.6 系统时序图中的替代流 104
5.9 当前进度 108
5.10 思考题 108
第6章 概念建模:基础篇 109
6.1 概念建模概述 109
6.2 属性 111
6.2.1 属性类型 111
6.2.2 初始值 112
6.2.3 派生属性 112
6.2.4 枚举 113
6.2.5 基本类型 114
6.3 概念 115
6.3.1 唯一属性 115
6.3.2 系统控制类 116
6.4 关联 116
6.4.1 规则重数 118
6.4.2 关联方向 119
6.4.3 派生关联 120
6.4.4 聚合与组合 122
6.4.5 n元关联 123
6.5 集合 125
6.5.1 集 125
6.5.2 有序集 126
6.5.3 Bag 126
6.5.4 序列 126
6.5.5 映射 127
6.5.6 分区 128
6.5.7 关系 129
6.6 概念模型组织 129
6.6.1 泛化、特化与继承 130
6.6.2 关联类 132
6.6.3 模态类 135
6.7 常量 138
6.8 概念模型的迭代架构 141
6.8.1 如何发现概念和属性 141
6.8.2 依赖和独立概念 144
6.8.3 如何发现关联 146
6.8.4 概念模型迭代结构的示例 147
6.9 当前进度 149
6.10 思考题 150
第7章 概念建模:模式 151
7.1 概念模型模式概述 151
7.2 高内聚 151
7.3 规约类 154
7.4 数量 155
7.5 测量 156
7.6 策略 156
7.7 组合 158
7.8 组织层级 159
7.9 对象连接 159
7.9.1 复制并替换 160
7.9.2 替代 160
7.9.3 本质/现象 161
7.9.4 解除连接 162
7.10 账户/交易 162
7.11 范围 166
7.12 时态模式 167
7.12.1 有效性 167
7.12.2 历史记录 167
7.12.3 时态 168
7.12.4 双时态 169
7.13 讨论 170
7.14 当前进度 170
7.15 思考题 171
第8章 功能建模与OCL契约 172
8.1 功能建模介绍 172
8.2 先验条件 175
8.2.1 参数保证 176
8.2.2 互补约束 176
8.2.3 先验条件保证 177
8.2.4 先验条件、异常与常量 178
8.3 瞬态关联 178
8.4 查询返回 179
8.5 后验条件 181
8.5.1 改变属性值 182
8.5.2 创建实例 183
8.5.3 添加链接 184
8.5.4 删除实例 185
8.5.5 删除链接 186
8.5.6 标准格式后验条件 187
8.5.7 后验条件组合 187
8.5.8 前值 188
8.5.9 覆盖对象集合的后验条件 189
8.5.10 后验条件与真实事件 190
8.6 异常 190
8.7 CRUD的模式契约 192
8.7.1 创建契约 192
8.7.2 更新契约 193
8.7.3 删除契约 194
8.7.4 检索契约 197
8.8 对象列表模式契约 197
8.9 用例相关契约 198
8.10 当前进度 199
8.11 思考题 200
第9章 域层设计 201
9.1 域层设计概述 201
9.2 对象职责分配 202
9.3 可见性 205
9.3.1 关联可见性 205
9.3.2 参数可见性 211
9.3.3 本地声明可见性 214
9.3.4 全局可见性 215
9.4 基于后验条件的动态建模 215
9.4.1 实例创建 216
9.4.2 链接添加 218
9.4.3 属性值修改 220
9.4.4 实例销毁 220
9.4.5 移除与替换链接 221
9.4.6 条件式后验条件 222
9.4.7 异常 223
9.4.8 与集合有关的后验条件 224
9.5 系统查询 225
9.6 委托与低耦合 227
9.7 设计类图 230
9.8 当前进度 232
9.9 思考题 233
第10章 代码生成 235
10.1 代码生成简介 235
10.2 类与属性 235
10.3 单向关联 238
10.3.1 单向关联(一对一) 240
10.3.2 单向关联(一对多) 243
10.3.3 单向限定关联 243
10.3.4 有关联类的单向关联 246
10.4 双向关联 248
10.4.1 合作伙伴 248
10.4.2 单向实现 253
10.4.3 带有中间对象的实现 254
10.5 委托方法及系统操作 255
10.6 过滤查询模式 257
10.7 当前进度 259
10.8 思考题 260
第11章 测试 261
11.1 测试简介 261
11.2 功能测试 262
11.2.1 等价类划分 262
11.2.2 限值分析 263
11.3 存根和驱动程序 264
11.4 测试驱动开发 265
11.5 单元测试 265
11.6 系统操作测试 269
11.7 用例测试(系统、验收和业务循环测试) 271
11.8 当前进度 273
11.9 思考题 275
第12章 接口层设计与IFML 276
12.1 接口层设计简介 276
12.2 交互流建模语言(IFML) 276
12.3 视图组件 277
12.3.1 Details 278
12.3.2 Multiple details 279
12.3.3 Simple List 280
12.3.4 List 280
12.3.5 Checkable List 281
12.3.6 Form 282
12.3.7 Hierarchy 283
12.4 Page 284
12.5 Flow 285
12.5.1 通用导航流 285
12.5.2 数据流 287
12.5.3 参数绑定 287
12.5.4 多值参数绑定 289
12.6 超文本组织 290
12.6.1 站点视图 291
12.6.2 区域 291
12.6.3 主页面、地标页面和默认页面 291
12.7 Web接口模式 292
12.7.1 级联索引 292
12.7.2 过滤索引 293
12.7.3 导览 294
12.7.4 视角 295
12.7.5 概览加描述 295
12.7.6 顶层导航 296
12.8 接口中的建模操作 298
12.8.1 创建操作 298
12.8.2 删除操作 299
12.8.3 更新操作 300
12.8.4 链接、断开和重新链接操作 301
12.9 CRUD操作的IFML模型 303
12.10 使用IFML的用例接口建模 306
12.11 当前进度 308
12.12 思考题 310
第13章 数据持久性 311
13.1 数据持久性简介 311
13.2 对象关系映射(ORM) 312
13.2.1 类与属性 312
13.2.2 关联 315
13.2.3 继承 324
13.3 保存及加载对象 326
13.3.1 虚拟代理 326
13.3.2 代理器与物化 329
13.3.3 缓存 330
13.4 整体过程回顾 332
13.5 思考题 334
后记 335
参考文献 336