第1章 项目的困境 1
1.1 目标 1
1.2 项目的困境 1
1.2.1 迭代和增量的软件开发 2
1.2.2 基于风险的开发 3
1.2.3 迭代软件过程模型 3
1.2.4 将迭代与增量结合起来:多维视图 6
1.3.1 推销软件过程的思想 7
1.3 Synergy过程模型 7
1.4 统一建模语言 8
1.4.1 UML和它在软件过程中的地位 9
1.4.2 建模的本质 9
1.4.3 UML图 10
1.4.4 统一建模语言和“4+1”结构视图 11
1.4.5 在上下文中使用UML图 12
1.5 检查点 12
1.5.1 我们讲了什么 12
1.5.2 我们将要讲什么 13
第2章 Visual Basic,面向对象和UML 14
2.1 目标 14
2.2 Visual Basic是一种有力的企业开发工具 14
2.3 Visual Basic和面向对象的概念 15
2.3.1 Visual Basic和类 16
2.3.2 Visual Basic和复合类型 18
2.3.3 Visual Basic和消息传递 19
2.3.4 Visual Basic和封装 19
2.3.5 Visual Basic和继承 21
2.3.6 Visual Basic和接口继承 23
2.3.7 Visual Basic中一种实现继承的替代方法 24
2.3.8 Visual Basic和多态 25
2.4 为什么选择UML和Visual Basic 26
2.4.1 类图 28
2.4.2 顺序图 28
2.5.1 我们讲了什么 29
2.5 检查点 29
2.4.5 可视化建模工具支持 29
2.4.3 组件图 29
2.4.4 部署图 29
2.5.2 找们将要讲什么 30
第3章 开始项目 31
3.1 目标 31
3.2 建立项目规划 31
3.2.1 过程模型 32
3.2.2 项目规划的工作模板 32
3.2.3 活动者 34
3.2.4 事件列表和事件表 35
3.2.5 项目规划:迭代一 37
3.2.6 “迭代一”结束 37
3.3 检查点 38
3.3.1 我们讲了什么 38
3.3.2 我们将要讲什么 38
4.1 目标 39
4.2 项目例子 39
第4章 用树 39
4.3 过程模型 40
4.3.1 用例 40
4.4 寻找用例中的路径 44
4.4.1 找到愉快路径 45
4.4.2 找到可选路径 45
4.4.3 找到例外路径 46
4.5 阴影中的用例 47
4.6 细化愉快路径 48
4.7 完成处理订单用例 49
4.8 准备初步的体系结构 49
4.9 项目规划:增量和估算 50
4.9.1 增量 50
4.9.2 估算 52
4.10 检查点 52
4.10.1 我们讲了什么 52
4.10.2 我们将要讲什么 53
5.2 细化阶段 55
5.1 目标 55
第5章 类 55
5.3 细化路径 56
5.4 识别和分类商业规则 56
5.5 挖掘类 58
5.5.1 迭代1:UML类图的作用 58
5.5.2 什么构成一个好的类 58
5.5.3 应用过滤规则 59
5.5.4 类的类型 60
5.5.5 实体类 61
5.5.6 接口类 62
5.5.7 控制类 62
5.6 关系 63
5.6.1 创建关联 64
5.6.2 创建角色 65
5.6.3 创建多重性 65
5.6.5 聚合和组合关联 66
5.6.4 高级关联 66
5.6.6 链关联(关联类) 67
5.6.7 自反关联 68
5.6.8 限定关联 68
5.6.9 泛化 69
5.7 创建类图 69
5.8 识别属性和操作 70
5.8.2 操作 71
5.8.1 属性 71
5.9 对象图 72
5.10 结束:分析模型 73
5.11 检查点 74
5.11.1 我们讲了什么 74
5.11.2 我们将要讲什么 74
第6章 创建一个早期原型 76
6.1 目标 76
6.2 创建一个早期原型 76
6.2.1 原型 76
6.3.1 用户接口原型 77
6.3 收集需求信息 77
6.3.2 活动者利用例边界 78
6.3.3 用户接口产品 79
6.3.4 用例耦合 80
6.4 迭代一 81
6.4.1 窗口结构图 81
6.4.2 创建原型 84
6.4.3 通过使用屏幕对话框获得用户反馈信息 93
6.4.4 从原型中获取信息 94
6.5 检查点 98
6.5.1 我们讲了什么 98
6.5.2 我们将要讲什么 99
第7章 应用程序中的动态元素 100
7.1 目标 100
7.2 细化阶段的下一步 100
7.3 动态建模 101
7.3.1 动态模型的类型 101
7.4 顺序图 102
7.4.1 顺序图和快乐路径 104
7.4.2 可选路径的顺序图 110
7.4.3 将获取知识反映到类图中 110
7.4.4 测览顺序图 111
7.5 协作图 111
7.6 状态图 113
7.6.1 为Remulak Productions订单类的状态图建模 114
7.6.2 另一个角度看状态图 115
7.7 活动图 116
7.8 选择正确的图表 117
7.9 设计过程中的非UML内容:应用矩阵 117
7.9.1 事件/频率矩阵 117
7.9.2 对象/位置矩阵 118
7.9.3 对象/容积矩阵 120
7.10 检查点 121
7.10.1 我们讲了什么 121
7.10.2 我们将要讲什么 121
8.2 细化阶段的下一个阶段 122
8.1 目标 122
第8章 技术概述 122
8.3 分离服务 123
8.4 逻辑和物理层 124
8.5 Micorosoft的分层策略 126
8.5.1 六层之间的通信 127
8.5.2 进程间通信结构 127
8.5.3 层间通信结构 128
8.5.4 COM内通信 128
8.5.5 基础结构所基于的五个选项 130
8.6 管理应用程序中的事务作用域和 Microsoft Transaction Server 131
8.7 将Internet包含到解决方案中 133
8.8 Remulak Productions执行结核 134
8.9 检查点 135
8.9.1 我们讲了什么 135
8.9.2 我们将要讲什么 136
9.2 构造阶段 137
9.1 目标 137
第9章 数据持久性:存储对象 137
9.3 面向对象的概念以及转化为物理设计 138
9.4 将类映射到表 138
9.5 映射简单关联 140
9.6 将继承映射到关系数据库 143
9.7 将聚会和组合映射到关系数据库 145
9.8 将自反关联映射到关系数据库 146
9.9 键码结构和正规化 147
9.10 使用可视化建模工具来生成数据定义语言 148
9.10.1 改进可视化建模工具 150
9.11 存储过程和触发器以及面向对象工程 155
9.12 数据敏感类的 Visual Basic支持 156
9.13 数据转化服务和数据访问服务层 157
9.14 检查点 159
9.14.1 我们讲了什么 159
9.14.2 我们将要讲什么 160
10.2.1 synergy过程 161
10.2 构造阶段 161
10.1 目标 161
第10章 应用基础结构 161
10.2.2 组件--基础结构和所有层的通信 162
10.2.3 组件--探讨表示服务层 162
10.2.4 组件--探讨商业上下文服务层 164
10.2.5 组件--探讨商业规则服务层 165
10.2.6 组件--合作类:接口、控制和实体 165
10.2.7 组件--层通信 168
10.2.8 组件--实现基础结构 168
10.2.9 组件--回顾UML类图来改进操作特征 170
10.3 检查点 171
10.3.1 我们讲了什么 171
10.3.2 我们将要讲什么 172
第11章 从UML类图生成代码(第1部分) 174
11.1 目标 174
11.2 构造阶段 174
11.2.1 Synergy过程 174
11.2.2 可视化建模--可视化建模工具在项目中的任务 175
11.2.4 回顾有关准备生成程序代码的安装问题 176
11.2.3 可视化建模--可视化建模工具在程序代码生成方面的任务 176
11.2.5 修改代码生成参数 177
11.2.6 为组件指定类 178
11.2.7 从可视化建模工具生成策一段代码 179
11.2.8 从可视化建模工具生成其余代码--数据转化服务 181
11.2.9 认可视化建模工具生成其余代码--商业规则服务 182
11.2.10 从可视化建模工具生成其余的代码--表示服务 184
11.2.11 回顾在代码生成完成之后需要注意的事项 184
11.2.12 探讨如何将程序代码逆向工程到可视化模块图中 184
11.3.1 要支持简单的从头到尾的事务所必须添加的代码 186
11.3 添加代码来实现一条用例路径 186
11.4 数据该问服务层:DASVC组件 187
11.4.1 连接到数据源并执行选择查询 187
11.4.2 关闭与数据源的连接 191
11.4.3 连接到数据源并执行插入、更新或删除查询 191
11.5 数据转化服务层:DTSVC组件 195
11.5.1 建立要由数据访问服务层执行的SQL 195
11.6.1 建立控制过程的规则 198
11.6 商业规则服务层: BRSVC组件 198
11.7.1 用户看到什么:将用户接口与商业规则服务层连结 202
11.7 表示服务层:UISVC组件 202
11.8 为将来创建代码块 205
11.9 检查点 206
11.9.1 我们讲了什么 206
11.9.2 我们将要讲什么 206
12.1 目标 207
12.2 构造阶段 207
第12章 由UML类图生成代码(第2部分) 207
12.2.1 增强顾客查询以及介绍浅对象和扩充对象的概念 208
12.2.2 对顾客关系查询所做的代码修改 209
12.2.3 为了支持扩展对象所做的代码修改 210
12.2.4 使用户接口更加简单:用户定义类型 215
12.2.5 客户端对象和非客户端对象 223
12.2.6 伴随分布式应用的出现而产生的干扰趋势 224
12.2.7 从用户接口获取信息时后端进行更新 225
12.2.8 保持对象 232
12.3.2 我们将要讲什么 236
12.3 检查点 236
12.3.1 我们讲了什么 236
第13章 创建一个分布式应用:DCOM和MTS 237
13.1 目标 237
13.2 构造阶段 237
13.2.1 Syneryy过程模型 237
13.2.2 构造--分布式应用程序:好还是坏 237
13.2.3 构造--Remulak Productions分布策略--偿付时间 239
13.3 远程解决方案--分布式组件对象模型 240
13.3.1 构造--为DCOM分布准备组件 240
13.3.2 构造--分布服务器组件 242
13.3.3 构造--在服务器上安装组件 247
13.3.4 构造--客户端准备测试DCOM安装 250
13.3.5 构造--创建客户端安装包 254
13.4 远程解决方案--Microsoft Transaction Server 257
13.4.1 构造--获得接口 257
13.4.3 构造--Remulak Productions事务类型 260
13.4.2 构造--事务类型 260
13.4.4 构造--MTS管理 262
13.4.5 构造--修改Remulak Productions来使用 MTS事务管理 268
13.4.6 构造--支持投票权力 271
13.4.7 构造--Remulak修改:给与取 272
13.4.8 MTS--第一轮修改 273
13.4.9 MTS--第二轮修改 275
13.4.10 MTS--第三轮修改 277
13.4.11 构造--事务管理 279
13.5 检查点 281
13.5.1 我们讲了什么 281
13.5.2 我们将要讲什么 281
第14章 可选接口:Internet 282
14.1 目标 282
14.2 构造阶段 282
14.2.1 Synergy过程模型 282
14.2.2 Web的角色 282
14.2.3 Web技术 283
14.2.4 组件重配置 284
14.2.5 完成Web组件 285
14.2.6 订单查询HTML表单 286
14.2.7 活动服务器网页(ASP) 287
14.2.8 使用JavaScript的更加动态的客户端 293
14.2.9 其他可能性 294
14.3 检查点 295
14.3.1 我们讲了什么 295
附录A 使用用倒来估算项目 296
附录 296
附录B 为Rational Rose数据定义语言添加补充功能 302
附录C 面向对象入门 310
附录D 组件对象棋型和COM+ 313
附录E 面向对象的项目计划 320
附录F 项目输出示例 326
参考书目 340
推荐读物 342