第1章 项目的困境 1
1.1 令人沮丧的现实 1
1.2 项目的困境 3
1.2.1 迭代与增量式软件开发 3
1.2.2 基于风险机制的软件开发 5
1.2.3 迭代式软件过程模型 5
1.2.4 迭代与增量式开发的结合:多维视图 7
1.3 协同过程 8
1.4 统一过程 9
1.5 其他过程:XP 12
1.6 统一建模语言 14
1.6.1 UML在软件过程中的地位 15
1.6.2 建模的实质 15
1.6.3 UML图 16
1.7 回顾与前瞻 19
第2章 Java、面向对象分析与设计、UML 20
2.1 Java是工业级开发语言 20
2.2 Java与面向对象程序设计 21
2.2.1 Java和类 21
2.2.2 Java与复杂类型(Java引用类型) 25
2.2.3 Java与消息传递 25
2.2.4 Java与封装 26
2.2.5 Java与继承 27
2.2.6 Java与多态 31
2.3 为什么选用UML和Java 33
2.3.1 类图 34
2.3.2 序列图 35
2.3.3 组件图 35
2.3.4 部署图 35
2.4 回顾与前瞻 36
2.3.5 可视化建模工具的支持 36
第3章 启动项目 37
3.1 建立项目视界 37
3.1.1 过程模型 38
3.1.2 项目视界的工作模板 39
3.1.3 参与者 41
3.1.4 事件清单和事件表 42
3.1.5 业务规则的识别和分类 43
3.1.6 事件捕获格式 43
3.1.7 项目视界 45
3.2 回顾与前瞻 46
第4章 用例 47
4.1 示例项目 47
4.2 过程模型 48
4.3 在用例中找到路径 52
4.3.1 用例模板:第一节 53
4.3.2 用例模板:第二节 54
4.3.3 用例模板:第三节 54
4.3.4 用例模板:第四节 56
4.3.5 找到主路径 57
4.3.6 找到备用路径 57
4.3.7 找到异常路径 58
4.3.8 常见的用例缺陷 59
4.4 影子用例 60
4.5 主路径的详细描述 61
4.6 完成后的处理订单用例模板 62
4.7 制定初步体系结构 66
4.8 项目规划:增量和对增量的评估 67
4.8.1 增量 67
4.8.2 评估:问题 68
4.8.3 评估:过程 69
4.9 回顾与前瞻 73
第5章 类 74
5.1 细化阶段 75
5.2 描述路径的细节 76
5.3 类的识别 76
5.3.1 UML类图的作用 76
5.3.2 怎样建立一个好的类 76
5.3.3 应用筛选规则 77
5.3.4 类的类型 78
5.4 关系 82
5.4.1 建立关联 83
5.4.2 创建角色 84
5.4.3 确定重数 84
5.4.4 高级关联 86
5.4.5 泛化 88
5.5 创建类图 89
5.6 识别属性和操作 91
5.6.1 属性 91
5.6.2 操作 92
5.7 接口 93
5.8 对象图 94
5.9 完成:分析模型 95
5.10 回顾与前瞻 96
第6章 建立用户界面原型 97
6.1 建立早期原型 97
6.2 收集需求 99
6.2.1 用户界面原型 99
6.2.2 参与者和用例边界 99
6.2.3 用户界面构成 101
6.2.4 用例的耦合 102
6.3 第一次迭代 103
6.3.1 屏幕结构图 103
6.3.2 创建原型 106
6.3.3 窗口组件 107
6.3.4 使用屏幕对话框来获取用户反馈信息 111
6.3.5 通过原型获取信息 112
6.4 回顾与前瞻 115
第7章 应用程序的动态元素 117
7.1 细化阶段的下一步 117
7.2 动态建模 118
7.3 序列图 120
7.3.1 主路径的序列图 122
7.3.2 用例模板 123
7.3.3 类的耦合与内聚 128
7.3.4 备用路径的序列图 129
7.3.5 将相关知识转移到类图中 131
7.3.6 序列图预演 132
7.4 协作图 133
7.5 状态图 134
7.5.1 Remulak-Order类的状态图建模 135
7.5.2 状态图的另一种视角 137
7.6 活动图 138
7.7 选择正确的图 139
7.8 设计中的非UML扩展:使用情况矩阵 139
7.8.1 事件/频率矩阵 140
7.8.2 对象/位置矩阵 141
7.8.3 对象/容量矩阵 142
7.9 回顾与前瞻 144
8.1 细化阶段的下一步 145
第8章 技术层面的问题 145
8.2 分离服务 147
8.3 逻辑层与物理层 148
8.4 分层策略 150
8.4.1 六层之间的通信 151
8.4.2 进程间通信体系结构 151
8.4.3 层间通信体系结构 151
8.5 事务作用域的管理 151
8.6 将Intemet包容到解决方案之中 154
8.7 有关Wed接口的更多问题 155
8.8 Remulak Productions的执行体系结构 157
8.9 回顾与前瞻 158
第9章 数据持久性:对象的存储 159
9.1 细化阶段的下一步 159
9.3 将类映射到表 161
9.2 面向对象概念与向物理设计的转换 161
9.3.1 简单关联的映射 163
9.3.2 将继承映射到关系数据库 167
9.3.3 将聚合和复合映射到关系数据库 169
9.3.4 将自反关联映射到关系数据库 170
9.4 码结构与规范化 170
9.5 使用可视化建模工具来生成DDL 172
9.6 存储过程和触发器与面向对象项目 178
9.7 数据转换服务层与数据访问服务层 179
9.7.1 Javabean和本地JDBC支持 180
9.7.2 JavaBean与本地JDBC数据管理 180
9.7.3 EJB与数据管理 187
9.8 商业性持久化服务层 193
9.9 回顾与前瞻 193
10.1 细化阶段的下一步 195
第10章 基础设施与体系结构回顾 195
10.2 基础设施问题与层间通信 196
10.2.1 表示服务层 198
10.2.2 业务环境服务层 200
10.2.3 业务规则服务层 201
10.2.4 协作的类:边界类、控制类和实体类 201
10.3 体系结构的部署视图 203
10.4 回顾与前瞻 204
第11章 构建解决方案:Servlet,JSP和JavaBean 206
11.1 细化阶段的下一步 206
11.2 建立体系结构原型:第一部分 207
11.2.1 初始化环境 207
11.2.2 环境的设置 208
11.2.3 调用Servlet 209
11.2.4 用于Remulak的Servlet:代理服务 212
11.2.5 用于Remulak的Servlet:响应操作请求 214
11.2.6 用于Remulak的JSP 220
11.3 建立体系结构原型:第二部分 226
11.3.1 Remulak控制器与初始操作 226
11.3.2 Remulak事务管理:由程序员进行 228
11.3.3 Remulak控制器与后续操作 232
11.4 建立体系结构原型:第三部分 236
11.4.1 实体组件 236
11.4.2 数据访问对象 242
11.4.3 各个组件之间的相似性 249
11.5 回顾与前瞻 250
第12章 构建解决方案:Servlet,JSP和EJB 251
12.1 细化阶段的下一步 251
12.2 建立体系结构原型:第一部分 252
12.2.2 可视化建模:在项目中的任务 253
12.2.1 初始化环境 253
12.2.3 可视化建模:在程序代码生成中的任务 254
12.2.4 回顾体系结构的构建 254
12.2.5 修改代码生成参数 255
12.2.6 最后一遍检查属性与操作 256
12.2.7 将类转换为EJB 257
12.3 生成代码 259
12.4 建立体系结构原型:第二部分 263
12.4.1 EJB入门 263
12.4.2 EJB回调机制 264
12.4.3 使用EJB进行工作 265
12.4.4 EJB序列图 265
12.4.5 EJB事务管理 266
12.5.1 向生成的代码添加逻辑 270
12.5 建立体系结构原型:第三部分 270
12.5.2 标记的魔力 275
12.5.3 编译EJB代码 275
12.5.4 建立一个简单的客户端来测试组件 276
12.6 CMP实现的增强 281
12.6.1 添加更多的用例路径 281
12.6.2 对JSP的修改 281
12.6.3 添加表示地址的JSP页面 290
12.6.4 对Servlet的修改 294
12.6.5 对用例控制器的修改 296
12.7 创建BMP实现 300
12.8 必由之路 305
12.8.1 技术选择 305
12.8.2 项目的开发过程 306
12.9 回顾与前瞻 306
附录A 使用统一过程的项目规划 307
A.1 计划 308
附录B 使用协同过程的项目规划 325
附录C 根据用例对项目进行评估 331
C.1 对参与者赋予权重 331
C.2 对用例赋予权重 332
C.3 衡量技术因素的权重 334
C.4 衡量项目参加者的权重 335
C.5 用例点数 336
C.6 项目评估 336
附录D 示例项目的输出 337
D.1 用例的定义 337
D.1.1 处理订单用例 337
D.1.2 维护订单用例 338
D.1.3 维护商品目录用例 339
D.1.4 产品配送用例 340
D.1.5 开发票用例 341
D.1.6 维护联系用例 342
D.1.7 决策支持用例 343
D.2 主路径的任务步骤 343
D.2.1 处理订单的主路径 344
D.2.2 维护订单的主路径 344
D.2.3 维护商品目录的主路径 345
D.2.4 货物配送的主要路径 345
D.2.5 开发票的主路径 345
D.2.6 维护联系的主路径 345
D.2.7 决策支持的主路径 346
D.3 数据库支持 346
附录E BEA WebLogic应用服务器 358
参考书目 361