《面向对象分析与设计 UML2.0版》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:(美)Mike ODocherty著;俞志翔译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2006
  • ISBN:7302125465
  • 页数:363 页
图书介绍:本书内容包括对象、继承、类型系统、软件开发的方法学、收集需求、设计系统体系结构。

第1章 入门 1

1.1 背景 1

1.2 编程简史 1

1.3 方法学 2

1.4 关于本书 2

1.4.1 内容概述 3

1.4.2 案例分析 3

1.4.3 导航 3

第Ⅰ部分 设置场景 7

第2章 对象的概念 7

2.1 引言 7

2.2 什么是对象 8

2.3 相同还是相等 10

2.4 描述对象 12

2.5 封装 13

2.6 关联和聚合 13

2.7 图和树 15

2.8 链接和可导航性 16

2.9 消息 17

2.10 启动操作 19

2.11 协作示例 19

2.12 面向对象程序的工作原理 21

2.13 垃圾收集 22

2.14 类 22

2.15 类定义的内容 24

2.16 共享数据和共享操作 26

2.17 类型 27

2.18 术语 27

2.19 重用代码 29

2.20 小结 32

2.21 课外阅读 32

2.22 复习题 32

2.23 练习1的答案 33

2.24 复习题答案 33

第3章 继承 34

3.1 引言 34

3.2 设计类层次结构 35

3.3 给类层次结构添加实现代码 36

3.4 抽象类 38

3.5 重定义方法 40

3.6 实现栈类 40

3.6.1 使用继承实现栈 41

3.6.2 使用复合实现栈 42

3.6.3 继承和复合 43

3.7 多重继承 44

3.8 使用继承的规则 47

3.9 小结 47

3.10 课外阅读 47

3.11 复习题 47

3.12 复习题答案 49

第4章 类型系统 50

4.1 引言 50

4.2 动态和静态类型系统 50

4.3 多态性 51

4.3.1 多态变量 52

4.3.2 多态消息 53

4.4 动态绑定 54

4.5 多态性规则 56

4.6 类型转换 56

4.7 显式类型转换 57

4.8 使用模板进行泛化 59

4.9 小结 60

4.10 课外阅读 60

4.11 复习题 60

4.12 练习2的答案 62

4.13 练习3的答案 62

4.14 复习题答案 62

第5章 软件开发的方法学 64

5.1 引言 64

5.2 软件开发中的经典阶段 65

5.2.1 需求 65

5.2.2 分析 66

5.2.3 设计 66

5.2.4 规范 66

5.2.5 实现 66

5.2.6 测试 66

5.2.7 部署 67

5.2.8 维护 67

5.2.9 关键问题 67

5.3 软件工程和瀑布方法学 68

5.4 新方法学 71

5.4.1 螺旋式方法学 71

5.4.2 迭代式方法学 72

5.4.3 递增式方法学 72

5.4.4 合并方法学 73

5.5 面向对象的方法学 74

5.5.1 UML、RUP和XP 74

5.5.2 开发工具的需求 75

5.6 Ripple概述 76

5.6.1 用例图 78

5.6.2 类图(分析级别) 79

5.6.3 通信图 79

5.6.4 部署图 80

5.6.5 类图(设计级别) 81

5.6.6 顺序图 81

5.7 小结 82

5.8 课外阅读 82

5.9 复习题 82

5.10 复习题答案 83

第Ⅱ部分 理解问题 87

第6章 收集需求 87

6.1 引言 87

6.2 系统的诞生 88

6.3 用例 89

6.4 业务说明 90

6.4.1 标识业务参与者 90

6.4.2 编写项目术语表 91

6.4.3 标识业务用例 92

6.4.4 在通信图中演示用例 93

6.4.5 在活动图中演示用例 94

6.5 开发人员的说明 95

6.5.1 使参与者特殊化 98

6.5.2 用例的关系 99

6.5.3 系统用例的细节 102

6.5.4 前提条件、后置条件和继承 104

6.5.5 辅助需求 104

6.5.6 用户界面草案 104

6.5.7 系统用例的优先级 105

6.6 小结 107

6.7 课外阅读 107

6.8 复习题 107

6.9 复习题答案 109

第7章 分析问题 110

7.1 引言 110

7.2 为什么要进行分析 110

7.3 分析过程概述 111

7.4 静态分析 112

7.4.1 确定类 112

7.4.2 标识类的关系 112

7.4.3 绘制类图和对象图 112

7.4.4 绘制关系 114

7.4.5 属性 117

7.4.6 关联类 120

7.4.7 有形对象和无形对象 120

7.4.8 好的对象 124

7.5 动态分析 124

7.5.1 绘制用例的实现过程 124

7.5.2 边界、控制器和实体 126

7.5.3 通信图中的元素 127

7.5.4 给类添加操作 128

7.5.5 职责 129

7.5.6 状态建模 129

7.6 小结 130

7.7 课外阅读 130

7.8 复习题 131

7.9 练习4的答案 133

7.10 复习题答案 133

第Ⅲ部分 设计解决方案 137

第8章 设计系统体系结构 137

8.1 引言 137

8.2 设计优先级 138

8.3 系统设计中的步骤 138

8.4 选择联网的系统拓扑 139

8.4.1 网络体系结构的简史 139

8.4.2 三层体系结构 140

8.4.3 个人计算机 142

8.4.4 网络计算机 142

8.4.5 互联网和万维网 143

8.4.6 内联网 143

8.4.7 外联网和虚拟私人网络 144

8.4.8 客户机—服务器与分布式体系结构 144

8.4.9 用UML描述网络拓扑 146

8.5 并发设计 147

8.6 安全设计 148

8.6.1 数字加密和解密 148

8.6.2 一般安全规则 149

8.7 分解软件 150

8.7.1 系统和子系统 150

8.7.2 层 151

8.7.3 Java层:应用小程序和RMI 153

8.7.4 层中的消息流 155

8.8 小结 158

8.9 课外阅读 158

8.10 复习题 158

8.11 复习题答案 159

第9章 选择技术 160

9.1 引言 160

9.2 客户层技术 160

9.3 客户层到中间层的协议 162

9.4 中间层技术 163

9.5 中间层到数据层的技术 164

9.6 其他技术 165

9.7 一般前端配置 166

9.7.1 HTML/CGI和脚本 166

9.7.2 HTML/CGI和服务小程序 167

9.7.3 RMI 168

9.7.4 CORBA 169

9.7.5 EJB 170

9.8 后端配置 171

9.9 Java电子商务配置 171

9.10 UML包 174

9.11 小结 177

9.12 课外阅读 177

9.13 复习题 178

9.14 复习题答案 178

第10章 设计子系统 179

10.1 引言 179

10.2 把分析的类模型映射为设计的类模型 180

10.2.1 映射操作 180

10.2.2 变量类型 180

10.2.3 字段的可见性 180

10.2.4 访问器 181

10.2.5 映射类、属性和复合 181

10.2.6 映射其他类型的关联 182

10.2.7 通用标识符 186

10.3 使用关系数据库实现存储 187

10.3.1 数据库管理系统 187

10.3.2 关系模型 188

10.3.3 映射实体类 190

10.3.4 映射关联 190

10.3.5 映射对象状态 193

10.4 最终确定用户界面 196

10.5 设计业务服务 200

10.5.1 使用代理和副本 201

10.5.2 给业务服务分类 203

10.5.3 会话标识符 204

10.5.4 业务服务的实现 204

10.6 使用模式、框架和库 206

10.7 事务 206

10.7.1 保守并发和开放并发 207

10.7.2 使用事务和对象的一般规则 207

10.7.3 上层中的事务 207

10.8 处理多个活动 208

10.8.1 控制多个任务 208

10.8.2 控制多个线程 208

10.8.3 线程安全 209

10.9 小结 212

10.10 课外阅读 212

10.11 复习题 212

10.12 复习题答案 213

第11章 可重用的设计模式 214

11.1 引言 214

11.1.1 模式简史 214

11.1.2 目前的软件模式 215

11.2 模式模板 215

11.3 常见的设计模式 216

11.3.1 观察器模式 216

11.3.2 单一模式 220

11.3.3 多重模式 223

11.3.4 迭代器模式 224

11.3.5 工厂方法和抽象工厂 226

11.3.6 状态模式 227

11.3.7 门面模式 231

11.3.8 适配器模式 231

11.3.9 策略模式和模板方法 233

11.3.10 次轻量级模式 235

11.3.11 复合模式 236

11.3.12 代理模式 239

11.4 使用模式 240

11.5 发现、合并和调整模式 241

11.6 小结 243

11.7 课外阅读 243

第12章 指定类的接口 244

12.1 引言 244

12.2 规范的定义 245

12.3 正式规范 245

12.4 非正式规范 247

12.5 动态检查 248

12.6 面向对象的规范 250

12.6.1 OCL中的正式规范 250

12.6.2 Eiffel中的非正式规范 251

12.7 按合同设计 252

12.7.1 合同和继承 255

12.7.2 减少错误检查代码 256

12.7.3 履行合同 258

12.7.4 应用程序防火墙 259

12.8 Java中的非正式规范 259

12.8.1 使用注释编写合同文档 259

12.8.2 动态检查条件 260

12.8.3 使用RuntimeException发出违反合同的信号 260

12.8.4 外部系统 261

12.8.5 启用和禁用动态检查 263

12.9 小结 264

12.10 课外阅读 264

12.11 复习题 265

12.12 复习题答案 265

第13章 不间断的测试 266

13.1 引言 266

13.2 测试术语 266

13.2.1 黑盒子测试 267

13.2.2 白盒子测试 268

13.3 测试的类型 268

13.3.1 单元测试 269

13.3.2 完整性测试 269

13.3.3 Alpha测试 269

13.3.4 beta测试 270

13.3.5 用例测试 270

13.3.6 组件测试 270

13.3.7 构建测试 271

13.3.8 负载测试 272

13.3.9 安装测试 273

13.3.10 接受测试 273

13.3.11 衰退测试 273

13.3.12 说明文档测试 274

13.3.13 安全测试 274

13.3.14 衡量标准 274

13.4 测试的自动化 275

13.5 准备测试 276

13.6 测试策略 277

13.6.1 开发过程中的测试 277

13.6.2 测试阶段中的测试 278

13.6.3 发布后的测试 278

13.7 测试的内容 278

13.8 测试驱动的开发 281

13.9 使用JUnit进行测试驱动的开发示例 282

13.9.1 测试Car类 283

13.9.2 实现Car类 284

13.9.3 重新安排测试 286

13.9.4 为衰退测试创建测试套件 288

13.9.5 测试Across方法 290

13.9.6 完成Store类 290

13.10 小结 292

13.11 课外阅读 293

附录A Ripple小结 294

附录B iCoot案例分析 297

B.1 业务需求 297

B.1.1 顾客的任务陈述 297

B.1.2 参与者列表 297

B.1.3 用例列表 298

B.1.4 用例的通信图 298

B.1.5 用例的活动图 298

B.1.6 用例的细节 299

B.2 系统需求 302

B.2.1 用户界面草图 302

B.2.2 参与者列表 303

B.2.3 用例列表 303

B.2.4 用例图 304

B.2.5 用例调查 304

B.2.6 用例细节 305

B.2.7 辅助需求 308

B.2.8 用例的优先级 308

B.3 分析 308

B.3.1 类图 308

B.3.2 属性 309

B.3.3 操作列表 309

B.3.4 预约的状态机 311

B.3.5 用例的实现 311

B.4 系统设计 316

B.4.1 选择技术 316

B.4.2 层图 317

B.4.3 层交互策略 318

B.4.4 包 318

B.4.5 部署图 319

B.4.6 安全策略 320

B.4.7 并发策略 320

B.5 子系统设计 320

B.5.1 业务服务 321

B.5.2 ServletsLayer类图 321

B.5.3 ServletsLayer的字段列表 321

B.5.4 ServletsLayer的消息列表 322

B.5.5 ServerLayer类图 322

B.5.6 ServerLayer的字段列表 323

B.5.7 ServerLayer的消息列表 323

B.5.8 BusinessLayer类图 324

B.5.9 BusinessLayer的字段列表 325

B.5.10 协议对象的类图 328

B.5.11 数据库模式 329

B.5.12 用户界面设计 330

B.5.13 业务服务的实现 330

B.6 类的规范 342

B.6.1 服务器类的规范 342

B.6.2 业务逻辑类的规范 344

B.7 测试计划概述 346

B.7.1 引言 346

B.7.2 螺旋式递增方式的作用 346

B.7.3 非代码制品的测试 347

B.7.4 代码的评估 347

B.7.5 测试驱动的开发 347

B.7.6 断言 347

B.7.7 测试阶段 347

B.7.8 说明文档的测试 348

B.7.9 构建测试 348

B.7.10 测试建档和记录日志 348

B.7.11 分阶段的测试活动 348

B.8 术语表 350

附录C UML表示法小结 356