本书是作为软件工程项目的课程教材和专业参考书编写的。作者通过使用UML与面向对象方法,让读者了解成功构建系统所需的建模技术、人与人之间的沟通技巧以及如何管理变化等软件工程的各个方面。全书循序渐进地介绍了一个真实、复杂的系统构建过程,为读者在真实场景下运用工具创造了实际动手的机会。
本书适合作为具有一定C、C++、C#或Java编程能力的本科生和研究生的软件工程教材,也可作为面向技术人员和管理人员的软件工程短期培训课程。
网站首页 软件下载 游戏下载 翻译软件 电子书下载 电影下载 电视剧下载 教程攻略
书名 | 面向对象软件工程(使用UML模式与Java第2版)/世界著名计算机教材精选 |
分类 | |
作者 | (美)布吕格//迪图瓦 |
出版社 | 清华大学出版社 |
下载 | |
简介 | 编辑推荐 本书是作为软件工程项目的课程教材和专业参考书编写的。作者通过使用UML与面向对象方法,让读者了解成功构建系统所需的建模技术、人与人之间的沟通技巧以及如何管理变化等软件工程的各个方面。全书循序渐进地介绍了一个真实、复杂的系统构建过程,为读者在真实场景下运用工具创造了实际动手的机会。 本书适合作为具有一定C、C++、C#或Java编程能力的本科生和研究生的软件工程教材,也可作为面向技术人员和管理人员的软件工程短期培训课程。 内容推荐 在本书的第2版本中,两位作者循序渐进地给出了案例,并将这些案例作为统一线索,贯穿全书,为学生在真实世界的场景下运用工具进行实践,创造了机会。能够使用一个实例贯穿全书,这是很多国内外教材很难做到的。 本书不仅介绍了开发人员应用软件工程技术所需的基本技能,还关注到使开发复杂系统,所需要具备的方法和技术,书中展示了如何支持和处理贯穿软件生命周期过程中的系统变化。全面展示了面向对象软件工程技术发展的水平,涉及内容:UML、Java、分布式开发、基本原理和配置管理。给出了如何将UML模型映射到Java源代码的步骤。 重视软件质量和软件维护,重视软件项目关联。既讲述了统一过程的软件开发,也说明了敏捷软件过程。这些材料为学生展示了系统开发中的典型变化。生动的、具有启发式的隐喻和实例,这些内容能够给读者很大的启发。 一本UML记号系统的典型使用大全,一本UML语言手册和实例汇编。 目录 译者的话 I 前言 III 序言 V 致谢 XIII 第1部分 开 始 第1章 软件工程导论 2 1.1 导言:软件工程的失误 2 1.2 什么是软件工程 3 1.2.1 建模 4 1.2.2 问题解决 5 1.2.3 知识获取 6 1.2.4 基本原理 6 1.3 软件工程概念 7 1.3.1 参与者和角色 8 1.3.2 系统和模型 8 1.3.3 工作产品 9 1.3.4 活动、任务和资源 9 1.3.5 功能性需求和非功能性需求 10 1.3.6 符号、方法和方法学 10 1.4 软件工程开发活动 11 1.4.1 需求获取 11 1.4.2 分析 11 1.4.3 系统设计 13 1.4.4 对象设计 13 1.4.5 实现 14 1.4.6 测试 14 1.5 管理软件开发 14 1.5.1 沟通 15 1.5.2 基本原理管理 15 1.5.3 软件配置管理 16 1.5.4 项目管理 16 1.5.5 软件生命周期 16 1.5.6 总结 16 1.6 竞技场实例分析 17 1.7 推荐读物 18 1.8 练习 18 参考文献 19 第2章 使用UML建模 21 2.1 导言 21 2.2 UML综述 22 2.2.1 用例图 22 2.2.2 类图 23 2.2.3 交互图 24 2.2.4 状态图 24 2.2.5 活动图 25 2.3 建模活动中的概述 26 2.3.1 系统、模型和视图 26 2.3.2 数据类型、抽象数据类型和 实例 28 2.3.3 类、抽象类和对象 28 2.3.4 事件类、事件和消息 30 2.3.5 面向对象建模过程 31 2.3.6 伪证和原型构造 32 2.4 UML的深入透视 33 2.4.1 用例图 33 2.4.2 类图 39 2.4.3 交互图 46 2.4.4 状态图 48 2.4.5 活动图 50 2.4.6 图的组织 52 2.4.7 图的扩展 54 2.5 推荐读物 55 2.6 练习 55 参考文献 57 第3章 项目组织和沟通 58 3.1 引言:一个关于火箭的例子 58 3.2 项目综述 59 3.3 项目组织的综述 62 3.3.1 项目组织 62 3.3.2 角色 64 3.3.3 任务和工作产品 66 3.3.4 进度表 68 3.4 项目沟通综述 69 3.4.1 计划内的沟通 69 3.4.2 计划外的沟通 74 3.4.3 沟通机制 76 3.5 组织活动 81 3.5.1 加入一个项目组 82 3.5.2 加入沟通基层组织 82 3.5.3 参加项目组情况通气会议 83 3.5.4 组织客户和项目总结 85 3.6 推荐读物 86 3.7 练习 86 参考文献 88 第2部分 处理复杂性 第4章 需求获取 90 4.1 导言:可用性实例 90 4.2 需求获取综述 91 4.3 需求获取概念 92 4.3.1 功能性需求 93 4.3.2 非功能性需求 93 4.3.3 完整性、一致性、清晰性和 正确性 95 4.3.4 现实性、确认性和可追踪性 95 4.3.5 绿地工程、再工程和界面工程 96 4.4 需求获取活动 96 4.4.1 标识参与者 97 4.4.2 标识场景 98 4.4.3 标识用例 100 4.4.4 求精用例 102 4.4.5 标识参与者和用例之间的 关系 104 4.4.6 标识初始分析对象 107 4.4.7 标识非功能性需求 108 4.5 需求获取管理 110 4.5.1 与客户协商规格说明:联合 应用设计 110 4.5.2 追踪性维护 112 4.5.3 需求获取的文档化 112 4.6 竞技场实例分析 114 4.6.1 初始问题描述 114 4.6.2 标识参与者和场景 115 4.6.3 标识用例 119 4.6.4 求精用例与标识关系 121 4.6.5 标识非功能性需求 125 4.6.6 获得的教训 126 4.7 推荐读物 126 4.8 练习 127 参考文献 128 第5章 分析 130 5.1 导言:光幻影 130 5.2 分析概述 131 5.3 分析的概念 132 5.3.1 分析对象模型和动态模型 132 5.3.2 实体、边界和控制对象 133 5.3.3 泛化和特化 134 5.4 分析活动:从用例到对象 135 5.4.1 标识实体对象 135 5.4.2 标识边界对象 137 5.4.3 标识控制对象 139 5.4.4 使用顺序图将用例映射成对象 139 5.4.5 使用CRC卡建模的对象之间 的交互 143 5.4.6 标识关联 143 5.4.7 标识聚集 145 5.4.8 标识属性 146 5.4.9 建模单一对象状态相关的行为 147 5.4.10 建模对象之间的继承关系 148 5.4.11 分析模型回顾 148 5.4.12 分析小结 150 5.5 分析管理 151 5.5.1 将分析文档化 151 5.5.2 分配责任 152 5.5.3 对分析的沟通 153 5.5.4 分析模型的迭代 154 5.5.5 客户发出的结束信息 155 5.6 竞技场实例分析 156 5.6.1 标识实体对象 157 5.6.2 标识边界对象 160 5.6.3 标识控制对象 161 5.6.4 对象之间交互的建模 161 5.6.5 评价和加固分析模型 164 5.6.6 获得的教训 166 5.7 推荐读物 166 5.8 练习 167 参考文献 168 第6章 系统设计:分解系统 170 6.1 导言:一个平面规划的例子 170 6.2 系统设计概述 172 6.3 系统设计概念 172 6.3.1 子系统与类 173 6.3.2 服务与子系统接口 174 6.3.3 耦合与内聚 174 6.3.4 分层与划分 177 6.3.5 体系结构风格 180 6.4 系统设计活动:从对象到子系统 186 6.4.1 出发点:线路规划系统的分析 模型 186 6.4.2 明确设计目标 188 6.4.3 明确子系统 190 6.5 推荐读物 192 6.6 练习 193 参考文献 194 第7章 系统设计:贯彻设计目标 195 7.1 介绍:一个冗余系统的例子 195 7.2 系统设计活动概述 196 7.3 概念:UML部署图 197 7.4 系统设计活动:贯彻设计目标 198 7.4.1 将子系统映射到处理器和 构件 199 7.4.2 标识并存储持久性数据 201 7.4.3 提供访问控制 203 7.4.4 设计全局控制流 208 7.4.5 标识边界条件 210 7.4.6 评审系统设计 212 7.5 系统设计管理 214 7.5.1 系统设计文档化 214 7.5.2 分配责任 215 7.5.3 系统设计交流 216 7.5.4 系统设计迭代 217 7.6 竞技场实例分析 218 7.6.1 标识设计目标 218 7.6.2 标识子系统 219 7.6.3 将子系统映射到处理器和构件 221 7.6.4 标识并存储持久性数据 222 7.6.5 提供访问控制 223 7.6.6 设计全局控制流 224 7.6.7 标识边界条件 225 7.6.8 课程小结 227 7.7 推荐读物 227 7.8 练习 228 参考文献 229 第8章 对象设计:重用模式解决 方法 230 8.1 导言:挫折 230 8.2 对象设计概述 232 8.3 重用的概念:解决方案对象、继承和 设计模式 234 8.3.1 应用对象和解决方案对象 235 8.3.2 说明继承和实现继承 235 8.3.3 授权 237 8.3.4 Liskov替换准则 238 8.3.5 设计模式中的授权和继承 238 8.4 重用活动:选择设计模式和构件 240 8.4.1 使用桥梁模式封装数据存储 242 8.4.2 使用适配器模式封装可继承 构件 243 8.4.3 使用策略模式封装上下文 245 8.4.4 使用抽象工厂模式封装平台 247 8.4.5 使用命令模式封装控制流 249 8.4.6 使用合成设计模式封装层次 249 8.4.7 选择设计模式的启发式准则 251 8.4.8 标识和调整应用框架 252 8.5 管理重用 255 8.5.1 对重用进行文档编辑 257 8.5.2 分配责任 258 8.6 竞技场实例分析 258 8.6.1 使用抽象工厂设计模式 259 8.6.2 使用命令设计模式 260 8.6.3 使用观察者设计模式 261 8.6.4 课程回顾 262 8.7 推荐读物 262 8.8 练习 263 参考文献 264 第9章 对象设计:接口规格说明 266 9.1 导言:一个铁路的例子 266 9.2 接口规格说明概述 268 9.3 接口规格说明概念 269 9.3.1 类实现者、类扩展者和类 使用者 269 9.3.2 类型、签名和可见性 270 9.3.3 契约:不变式、前置条件和 后置条件 271 9.3.4 对象约束语言 273 9.3.5 OCL收集:集合、包和序列 276 9.3.6 OCL量词:全称量词forAll和 存在量词exists 279 9.4 接口规格说明活动 280 9.4.1 标识遗漏的属性和操作 280 9.4.2 说明类型、签名和可见性 282 9.4.3 说明前置条件和后置条件 283 9.4.4 说明不变式 285 9.4.5 继承契约 286 9.5 管理对象设计 288 9.5.1 对象设计文档化 289 9.5.2 分配责任 293 9.5.3 在需求分析中使用契约 294 9.6 竞技场实例分析 294 9.6.1 标识在联赛方式(TournamentStyle)和回合(Round)中遗漏的 操作 295 9.6.2 定义说明联赛方式(Tournament- Style)和回合(Round) 中的契约 296 9.6.3 定义说明淘汰赛方式(KnockOut- Style)和淘汰回合(KnockOut- Round)契约 298 9.6.4 课程回顾 300 9.7 推荐读物 300 9.8 练习 301 参考文献 302 第10章 将模型映射到代码 304 10.1 导言:一个关于书的例子 304 10.2 映射的概述 306 10.3 映射的概念 306 10.3.1 模型转换 307 10.3.2 重构 308 10.3.3 正向工程 309 10.3.4 逆向工程 310 10.3.5 转换准则 311 10.4 映射活动 311 10.4.1 优化对象设计模型 312 10.4.2 将关联映射到集合 314 10.4.3 将契约映射到异常 320 10.4.4 将对象模型映射到持久存 储模式 323 10.5 管理实现 328 10.5.1 编写转换文档 328 10.5.2 分配责任 329 10.6 竞技场实例分析 329 10.6.1 竞技场中的统计类 (Statistics) 330 10.6.2 将关联映射到集合 332 10.6.3 将契约映射到异常 333 10.6.4 将对象模型映射到数据库 模式 335 10.6.5 课程回顾 336 10.7 推荐读物 336 10.8 练习 337 参考文献 338 第11章 测试 339 11.1 导言:测试航天飞机 339 11.2 测试概述 341 11.3 测试概念 344 11.3.1 故障、错误状态和失败 345 11.3.2 测试用例 347 11.3.3 测试桩和测试驱动 348 11.3.4 更正 349 11.4 测试活动 350 11.4.1 构件检查 350 11.4.2 可用性测试 351 11.4.3 单元测试 352 11.4.4 集成测试 359 11.4.5 系统测试 364 11.5 管理测试 369 11.5.1 制定测试计划 369 11.5.2 编写测试文档 370 11.5.3 分配责任 372 11.5.4 回归测试 373 11.5.5 使测试自动化 374 11.6 推荐读物 375 11.7 练习 375 参考文献 377 第3部分 管 理 更 改 第12章 基本原理管理 380 12.1 导言:将火腿切成薄片 380 12.2 基本原理概述 381 12.3 基本原理概念 383 12.3.1 集中式的交通控制 384 12.3.2 定义问题:问题 385 12.3.3 探索求解空间:提议 386 12.3.4 评价求解空间:标准和 讨论 387 12.3.5 使求解空间崩溃:解决方案 389 12.3.6 执行解决方案:活动项 390 12.3.7 基于问题的模型和系统 实例 390 12.4 基本原理的活动:从问题到决策 394 12.4.1 CTC系统设计 394 12.4.2 在会议中获取基本原理 395 12.4.3 异步获取基本原理 401 12.4.4 在讨论变化的时候获取 基本原理 402 12.4.5 重新构造基本原理 405 12.5 管理基本原理 406 12.5.1 将基本原理文档化 407 12.5.2 分配责任 408 12.5.3 关于基本原理交流的 启发式规则 409 12.5.4 问题的建模和协商 409 12.5.5 冲突解决策略 411 12.6 推荐读物 412 12.7 练习 412 参考文献 413 第13章 配置管理 415 13.1 导言:一个飞机的实例 415 13.2 配置管理概述 417 13.3 配置管理概念 418 13.3.1 配置项和CM聚集 419 13.3.2 版本和配置 419 13.3.3 变化请求 420 13.3.4 升级和发布 421 13.3.5 仓库和工作空间 421 13.3.6 版本标识方案 421 13.3.7 变化和变化集 423 13.3.8 配置管理工具 425 13.4 配置管理活动 425 13.4.1 配置项和CM聚集标识 427 13.4.2 升级管理 429 13.4.3 发布管理 430 13.4.4 分支管理 432 13.4.5 不同版本管理 435 13.4.6 变更管理 437 13.5 对配置管理的管理 438 13.5.1 配置管理的文档化 439 13.5.2 分配配置管理任务 439 13.5.3 计划配置管理活动 440 13.6 推荐读物 440 13.7 练习 441 参考文献 442 第14章 项目管理 443 14.1 介绍:STS-51L发射决定 443 14.2 项目管理概述 445 14.3 项目管理概念 449 14.3.1 任务和活动 450 14.3.2 工作产品、工作包和角色 451 14.3.3 工作分解结构 451 14.3.4 任务模型 452 14.3.5 技能矩阵 453 14.3.6 组织 454 14.3.7 可视组织结构 455 14.3.8 组织结构图谱 456 14.3.9 软件项目管理计划 457 14.4 项目管理活动 459 14.4.1 计划项目 460 14.4.2 组织项目 463 14.4.3 控制项目 467 14.4.4 终结项目 472 14.5 推荐读物 472 14.6 练习 473 参考文献 474 第15章 软件生命周期 476 15.1 导言:玻利尼西亚航行 476 15.2 IEEE 1074:开发软件生命周期 过程的标准 479 15.2.1 过程与活动 479 15.2.2 软件生命周期建模 481 15.2.3 项目管理 481 15.2.4 前期开发 482 15.2.5 开发过程 482 15.2.6 后期开发 483 15.2.7 整体过程(交叉开发 过程) 483 15.3 评价软件生命周期模型的成熟度 484 15.4 生命周期模型 486 15.4.1 以顺序活动为中心的模型 487 15.4.2 以迭代活动为中心的模型 488 15.4.3 以实体为中心的模型 492 15.5 推荐读物 495 15.6 练习 495 参考文献 496 第16章 方法学:综合考虑各种 因素 497 16.1 导言:首次攀登乔戈里峰(K2峰) 497 16.2 项目环境 500 16.3 方法学问题 501 16.3.1 做多少计划 502 16.3.2 多大程度上的重用 502 16.3.3 构建多少模型 503 16.3.4 过程分为几步 504 16.3.5 多大程度上的控制和监控 505 16.3.6 什么时候重定义项目目标 505 16.4 方法学领域 506 16.4.1 Royce方法学 506 16.4.2 极限编程 511 16.5 案例分析 514 16.5.1 XP项目:ATRACT 515 16.5.2 局部主客户:FRIEND 517 16.5.3 分布式项目:JAMES 523 16.5.4 案例分析总结 528 16.6 推荐读物 531 16.7 练习 532 参考文献 532 第4部分 附 录 附录A 设计模式 536 A.1 抽象工厂(Abstract Factory): 封装平台 536 A.2 适配器(Adapter):对遗留代码的 包装 537 A.3 桥梁(Bridge):允许选择性实现 538 A.4 命令(Command):封装控制流 538 A.5 组合(Composite):表示递归的 层次结构 539 A.6 层面(Facade):层面子系统 540 A.7 观察器(Observer):将实体从 视图中分离出来 541 A.8 代理(Proxy):封装开销大的对象 542 A.9 策略(Strategy):封装算法 543 A.10 选择设计模式的启发式准则 544 参考文献 545 附录B 术语表 546 参考文献 570 |
随便看 |
|
霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。