文件名称:面向对象分析与设计(UML.2.0版)
文件大小:28.14MB
文件格式:PDF
更新时间:2014-12-29 13:21:36
面向对象分析与设计(UML.2.0版)WORD版
目 录 第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 第ⅰ部分 设 置 场 景 第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 第ⅱ部分 理 解 问 题 第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 第ⅲ部分 设计解决方案 第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...