欢迎光临中图网 请 | 注册

面向对象软件工程

作者:David C.kung
出版社:清华大学出版社出版时间:2017-01-01
开本: 32开 页数: 548
中 图 价:¥53.9(5.5折) 定价  ¥98.0 登录后可看到会员价
暂时缺货 收藏
运费6元,满69元免运费
?快递不能达地区使用邮政小包,运费14元起
云南、广西、海南、新疆、青海、西藏六省,部分地区快递不可达
本类五星书更多>

面向对象软件工程 版权信息

面向对象软件工程 本书特色

第1部分引言与系统工程。这部分由前3章构成,它提供了观察软件生命周期行为的视角。尤其是,它覆盖了软件过程模型、方法学的概念、过程与方法的区别以及系统工程。 第2部分分析和体系结构设计。这部分介绍了计划阶段的行为,包括需求提取、领域建模和架构设计。 第3部分交互式系统的建模和设计。这部分主要处理建模与交互系统设计问题,共包括6章。这6章介绍了如何根据需求识别出用例、如何对参与者系统交互以及对象交互行为进行建模和设计、如何应用职责分配模式、如何得到作为设计蓝本的设计类框图,以及如何设计用户交互界面。 第4部分其他类型系统的建模和设计。这部分包括3章,每章介绍一种类型系统的建模与设计。具体来说,第13章介绍事件驱动系统的建模与设计;第14章介绍迁移系统的建模与设计;第15章介绍基于业务规则的系统的建模与设计。 第5部分应用情景特定模式。这部分由两章构成,主要介绍如何应用情景特定模式。其中使用了一个案例分析,即状态图编辑器的设计来帮助理解这个过程。 第6部分实现和质量保证。这部分包括3章,包括实现时要考虑的问题、软件质量保证的概念和行为以及软件测试。 第7部分维护和配置管理。这部分包括两章,内容覆盖了软件维护与软件配置管理。 第8部分项目管理和软件安全。本书的*后一部分由两章构成,一章介绍软件项目管理,另一章介绍软件安全,包括涉及安全软件系统的建模与设计的生命周期行为。

面向对象软件工程 内容简介

本书介绍了建模与设计、UML、模式、基于测试的软件开发、质量保证、配置管理、全生命周期的敏捷原理。作者讲述步骤清晰,深入浅出,在理论介绍过程中提供了大量实例,便于读者理解、实践。内容包含过去十年间软件工程发展的很多方面,既有在美国以及全球的大学和公司里讲授的课程,也有行业内外软件工程项目的应用素材。从面向对象方法学出发,对软件工程进行重新演绎,全面、系统、清晰地介绍了面向对象软件工程的基本概念、原理、方法和工具,通过实例说明了面向对象软件开发的整个过程,是一部值得推荐的经典之作。

面向对象软件工程 目录

目录 第1部分引言与系统工程 第1章引言3 1.1什么是软件工程3 1.2为什么要用软件工程4 1.3软件生命周期行为5 1.3.1软件开发过程5 1.3.2软件质量保证8 1.3.3软件项目管理9 1.4面向对象的软件工程10 1.4.1面向对象的建模和设计 语言10 1.4.2面向对象的开发 过程10 1.4.3面向对象的开发 方法11 1.4.4OO会取代传统的 方法吗11 1.5软件工程和计算机科学11 小结12 深入阅读12 章节复习问题13 练习13 第2章软件过程和方法14 2.1系统开发的挑战14 2.2软件过程15 2.3瀑布模型的优势和问题16 2.4软件开发是一个险恶问题16 2.5软件过程模型17 2.5.1原型过程18 2.5.2演化过程18 2.5.3螺旋模型18 2.5.4统一过程19 2.5.5个人软件过程20 2.5.6团队软件过程24 2.5.7敏捷过程26 2.6软件开发方法30 2.6.1过程和方法的区别30 2.6.2方法的好处31 2.6.3结构化方法32 2.6.4经典的面向对象 方法32 2.7敏捷方法32 2.7.1动态系统开发 方法(DSDM)34 2.7.2Scrum35 2.7.3特征驱动的开发35 2.7.4极限编程36 2.7.5敏捷还是计划驱动36 2.8本书中的过程和方法一览37 小结41 深入阅读41 章节复习问题42 练习42 第3章系统工程43 3.1什么是系统43 3.2什么是系统工程44 3.3系统需求定义47 3.3.1识别业务需求47 3.3.2定义系统需求48 3.4系统结构设计48 3.4.1系统分解49 3.4.2需求分配51 3.4.3结构设计图52 3.4.4子系统功能和接口规 格说明55 3.5子系统开发56 3.5.1面向对象的上下文图56 3.5.2面向对象的上下文图 的用途57 3.5.3工程团队的协作58 3.6系统集成、测试和部署58 3.7系统配置管理58 小结60 深入阅读60 章节复习问题60 练习60 第2部分分析和体系结构设计 第4章获取软件需求65 4.1什么是需求获取65 4.2获取需求的重要性67 4.3获取需求的挑战67 4.4需求的类型68 4.5获取需求的步骤69 4.5.1收集信息70 4.5.2构建分析模型73 4.5.3获取需求和约束74 4.5.4需求规格标准77 4.5.5进行可行性研究77 4.5.6审查需求规格说 明书77 4.6应用敏捷原则79 4.7需求管理和工具80 小结81 深入阅读81 章节复习问题81 练习82 第5章领域建模84 5.1什么是领域建模84 5.2为什么要进行领域建模85 5.3面向对象和类图85 5.3.1外延定义和意向 定义85 5.3.2类和对象86 5.3.3对象和属性87 5.3.4关联88 5.3.5多重性和角色89 5.3.6聚合90 5.3.7继承90 5.3.8继承和多态91 5.3.9关联类91 5.4领域建模的步骤93 5.4.1收集应用领域信息94 5.4.2头脑风暴94 5.4.3对头脑风暴结果 分类95 5.4.4领域模型可视化98 5.4.5领域建模审查 清单102 5.5综合103 5.6领域建模的方针105 5.7应用敏捷原则106 5.8领域建模的工具支持107 小结108 深入阅读109 章节复习问题109 练习109 第6章架构设计111 6.1什么是架构设计111 6.2架构设计的重要性112 6.3架构设计过程112 6.3.1确定架构设计 目标113 6.3.2确定系统类型114 6.3.3应用架构样式117 6.3.4进行定制的架构 设计124 6.3.5明确子系统功能和 接口124 6.3.6审查架构设计125 6.4架构样式和包图125 6.5应用软件设计准则126 6.5.1什么是软件设计 准则127 6.5.2为改变而设计127 6.5.3关注点分离128 6.5.4信息隐藏129 6.5.5高内聚129 6.5.6低耦合129 6.5.7保持简单和直接130 6.6架构设计的方针131 6.7架构设计和设计模式131 6.8应用敏捷原则132 小结132 深入阅读132 章节复习问题133 练习133 第3部分交互式系统的建模和设计 第7章从需求获取用例137 7.1什么是参与者137 7.2什么是用例138 7.3业务过程、操作和活动138 7.4从需求获取用例的步骤140 7.4.1识别用例140 7.4.2明确用例范围146 7.4.3用例上下文可 视化147 7.4.4检查用例规约151 7.4.5将用例分配给 迭代152 7.5导出用例的方针153 7.6应用敏捷原则155 7.7用例建模的工具支持155 小结157 深入阅读157 章节复习问题157 练习158 第8章参与者系统交互建模159 8.1什么是参与者系统交互 建模159 8.2参与者系统交互建模的 重要性160 8.3参与者系统交互建模的 步骤160 8.3.1初始化一个两列 的表161 8.3.2明确参与者系统交互 的步骤161 8.3.3检查参与者系统交互 规约161 8.4明确可替换的流162 8.5使用用户界面原型163 8.6不要显示异常处理166 8.7用例的先决条件和后置 条件166 8.8包含其他用例167 8.9用其他用例继续167 8.10常见问题168 8.11应用敏捷原则170 小结170 深入阅读171 章节复习问题171 练习171 第9章对象交互建模172 9.1什么是对象交互建模172 9.2UML顺序图173 9.2.1概念和表示法173 9.2.2展示类的实例173 9.2.3顺序图说明174 9.2.4顺序图用于分析和 设计176 9.2.5正确使用表示 方法178 9.3对象交互建模的步骤179 9.3.1收集业务过程的 信息180 9.3.2识别非普通步骤180 9.3.3为非普通步骤书写 场景181 9.3.4构建场景表183 9.3.5怎么写场景183 9.3.6从场景表得到顺 序图188 9.3.7对象交互建模检查 清单194 9.4应用敏捷原则195 9.5对象交互建模的工具支持197 小结197 深入阅读197 章节复习问题197 练习198 第10章应用职责分配模式199 10.1什么是设计模式199 10.2为什么要用设计模式200 10.3情景特定模式和职责分配 模式200 10.4模式规约201 10.5控制器模式202 10.5.1激励示例202 10.5.2什么是控制器204 10.5.3应用控制器 模式204 10.5.4控制器的类型206 10.5.5跟踪记录用例 状态 206 10.5.6臃肿的控制器207 10.5.7比较不同的 设计208 10.5.8何时应用控制器 模式209 10.5.9使用控制器的 方针210 10.6专家模式210 10.6.1信息专家210 10.6.2应用专家模式211 10.6.3包含不止一个对象 的专家模式212 10.6.4何时应用专家 模式213 10.6.5使用专家模式的 方针213 10.7创建者模式213 10.7.1什么是创建者213 10.7.2应用创建者 模式214 10.7.3创建者模式的 优势215 10.7.4何时应用创建者 模式215 小结216 深入阅读216 章节复习问题216 练习217 第11章获取设计类图219 11.1什么是设计类图220 11.2设计类图的用途220 11.3获取设计类图的步骤221 11.3.1识别类221 11.3.2识别方法222 11.3.3识别属性224 11.3.4类之间的关系226 11.3.5识别关系226 11.3.6设计类图检查 清单228 11.4用包图组织类228 11.5应用敏捷原则230 11.6设计类图的工具支持231 小结231 深入阅读231 章节复习问题231 练习231 第12章用户接口设计232 12.1什么是用户接口设计232 12.2用户接口设计为什么 重要233 12.3图形用户接口组件234 12.3.1容器组件235 12.3.2输入、输出和信息 展示组件235 12.3.3使用GUI组件的 方针237 12.4用户接口设计过程237 12.4.1案例研究: 为状态 图编辑器设计用户 接口238 12.4.2识别系统主要显示 方式238 12.4.3生成布局设计 草图240 12.4.4明确交互行为242 12.4.5构建原型242 12.4.6用户评估用户接口 设计243 12.4.7用户接口设计检查 清单244 12.5设计用户支持功能245 12.6用户接口设计的方针245 12.7应用敏捷原则247 12.8用户接口设计的工具 支持247 小结248 深入阅读248 章节复习问题248 练习249 第4部分其他类型系统的建模和设计 第13章事件驱动系统的对象状态 建模253 13.1什么是对象状态建模253 13.2为什么要进行对象状态 建模254 13.3基本定义254 13.4对象状态建模的步骤255 13.4.1收集和分类状态 行为信息256 13.4.2构建领域模型来 展示上下文258 13.4.3构建状态迁移表260 13.4.4状态迁移表的 用途261 13.4.5将状态迁移表转换 为分析状态图262 13.4.6将分析状态图转换 为设计状态图264 13.4.7状态建模检查 清单265 13.5状态模式265 13.5.1约定的方法265 13.5.2什么是状态 模式266 13.5.3应用状态模式266 13.6实时系统的建模与设计269 13.6.1转换图式270 13.6.2定时状态机271 13.6.3中断处理272 13.7应用敏捷原则273 13.8对象状态建模的工具 支持274 小结274 深入阅读275 章节复习问题275 练习275 第14章转换型系统的活动建模278 14.1什么是活动建模278 14.2为什么使用活动建模279 14.3活动建模: 技术背景279 14.3.1流程图280 14.3.2佩特里网280 14.3.3数据流图281 14.4UML活动图282 14.5活动建模的步骤283 14.5.1识别活动和工 作流284 14.5.2产生一个初步活 动图286 14.5.3引入条件分支、分叉 和连接287 14.5.4精炼复杂的活动287 14.5.5活动建模审核检 查表288 14.6与其他图之间的关系288 14.7应用敏捷原则289 14.8活动建模的工具支持289 小结289 深入阅读290 章节复习问题290 练习290 第15章基于规则的系统的建模与 设计291 15.1什么是决策表292 15.2决策表的用处293 15.3系统化的决策表构造293 15.4渐进式决策表构造294 15.5检查所需的属性295 15.6决策表合并296 15.7根据决策表生成代码296 15.8应用解释器模式297 15.8.1定义业务规则 语法297 15.8.2在类图中表示 规则298 15.8.3构建解析器和变量 查找上下文299 15.8.4解释业务规则299 15.8.5动态更新规则300 15.8.6解释方法的 优点300 15.9在测试驱动开发中使用 决策表300 15.10决策树301 15.11应用敏捷原则301 小结302 深入阅读302 章节复习问题302 练习303第5部分应用情景特定模式 第16章应用模式来设计状态图 编辑器307 16.1应用模型的过程308 16.2案例研究: 状态图编 辑器310 16.3处理复杂的结构311 16.3.1表示递归的整体 部分结构311 16.3.2使用策略提供布局 选择315 16.3.3用迭代器访问复杂 的结构316 16.3.4通过访问者分析复 杂的结构317 16.3.5通过备忘录存储和 恢复对象状态320 16.4创建和构造复杂的对象321 16.4.1创建系列产品321 16.4.2构建大型的复杂 对象324 16.4.3通过享元重用 对象326 16.5图形用户界面的设计和 显示327 16.5.1跟踪编辑状态327 16.5.2响应编辑事件328 16.5.3转换接口330 16.5.4提供上下文相关的 帮助333 16.5.5使用装饰增强显示 能力335 16.6应用敏捷原则338 小结338 深入阅读338 章节复习问题339 练习339第17章应用模式来设计持久性 框架340 17.1直接访问数据库会出现的 问题340 17.2通过桥隐藏持久存储341 17.3将数据库请求封装为 命令344 17.4用远程代理隐藏网络 访问348 17.5用模板方法共享通用 代码351 17.6通过工厂方法检索不同 的对象353 17.7用原型减少类的数量355 17.8应用敏捷原则358 小结358 深入阅读358 章节复习问题358 练习358 第6部分实现和质量保证 第18章实现方面的考虑363 18.1编码标准363 18.1.1什么是编码 标准363 18.1.2为什么要建立 编码标准367 18.1.3代码审查清单367 18.1.4编码标准实施 准则367 18.2组织实现部件369 18.3根据设计生成代码370 18.3.1实现类和接口370 18.3.2从顺序图到方法 代码骨架370 18.3.3实现关联关系371 18.4给团队成员分配任务372 18.5结对编程372 18.6测试驱动开发373 18.6.1测试驱动开发的 工作流程373 18.6.2测试驱动开发的 优点375 18.6.3潜在问题375 18.7应用敏捷原则376 18.8对实现的工具支持376 小结376 深入阅读377 章节复习问题377 练习377 第19章软件质量保证379 19.1软件质量保证的益处379 19.2软件质量属性379 19.3质量测量和度量381 19.3.1质量测量和度量的 实用性382 19.3.2常规质量度量382 19.3.3对面向对象软件 重用传统度量387 19.3.4面向对象质量 度量387 19.4软件验证与确认技术389 19.4.1审查389 19.4.2走查390 19.4.3同行审查391 19.5生命周期中的验证和 确认392 19.6软件质量保证功能393 19.6.1过程和标准的 定义394 19.6.2质量管理396 19.6.3过程改进397 19.7应用敏捷原则398 19.8SQA的工具支持399 小结399 深入阅读400 章节复习问题400 练习400 第20章软件测试401 20.1什么是软件测试402 20.2为什么进行软件测试402 20.3传统的黑盒测试403 20.3.1功能性测试: 一个 例子403 20.3.2等价类划分404 20.3.3边界值分析405 20.3.4因果分析407 20.4传统的白盒测试407 20.4.1基路径测试408 20.4.2圈复杂度409 20.4.3流图测试覆盖 准则409 20.4.4测试循环410 20.4.5数据流测试411 20.4.6数据流测试的覆盖 准则412 20.4.7过程间数据流 测试412 20.5测试覆盖率413 20.6一个通用的软件测试 过程413 20.7面向对象的软件测试415 20.7.1基于用例的 测试415 20.7.2用ClassBench进行 对象状态测试416 20.7.3测试类的层次 结构418 20.7.4测试异常处理 能力419 20.8测试Web应用程序420 20.8.1Web应用程序测试 的面向对象模型420 20.8.2使用面向对象模型进 行静态分析421 20.8.3使用面向对象模型生 成测试用例421 20.8.4用httpUnit进行Web 应用程序测试422 20.9非功能性需求的测试422 20.9.1性能和压力 测试422 20.9.2安全测试423 20.9.3测试用户界面423 20.10生命周期中的软件测试424 20.11回归测试426 20.12什么时候停止 测试426 20.13应用敏捷原则427 20.14测试的工具支持427 小结427 深入阅读428 章节复习问题428 练习428 第7部分维护和配置管理 第21章软件维护433 21.1什么是软件维护433 21.2软件变化的因素434 21.3系统演化的雷曼定律434 21.4软件维护的类型435 21.5软件维护过程和活动435 21.5.1维护过程模型436 21.5.2理解程序437 21.5.3变更识别和 分析437 21.5.4配置变更控制439 21.5.5变更实施、测试和 交付440 21.6逆向工程440 21.6.1逆向工程工作流 440 21.6.2逆向工程的用途 440 21.6.3逆向工程: 案例 研究441 21.7软件再工程441 21.7.1再工程的目标441 21.7.2软件再工程的 过程442 21.7.3软件再工程: 案例 研究443 21.8软件维护的模式444 21.8.1用外观模式简化 客户端接口444 21.8.2用中介者模式简化 组件交互445 21.8.3软件维护的 模式445 21.9应用敏捷原则449 21.10软件维护的工具支持449 小结450 深入阅读450 章节复习问题450 练习450 第22章软件配置管理452 22.1软件生命周期的基准452 22.2什么是软件配置管理453 22.3为什么需要软件配置 管理454 22.4软件配置管理的功能454 22.4.1软件配置识别455 22.4.2软件配置变更 控制456 22.4.3软件配置审核457 22.4.4软件配置状态的 审计458 22.5敏捷项目中的配置管理458 22.6软件配置管理工具458 小结460 深入阅读460 章节复习问题460 练习461 第8部分项目管理和软件安全 第23章软件项目管理465 23.1项目组织466 23.1.1项目形式466 23.1.2团队结构467 23.2工作量评估方法468 23.2.1功能点方法468 23.2.2COCOMO Ⅱ模型 469 23.2.3Delphi评估方法 474 23.2.4敏捷评估474 23.3项目计划和调度476 23.3.1PERT图476 23.3.2Gantt图和人员 分配477 23.3.3敏捷规划478 23.4风险管理479 23.4.1风险识别479 23.4.2风险分析和优先级 划分480 23.4.3风险管理规划482 23.4.4风险解决和监控 482 23.5过程改进482 23.6应用敏捷原则484 23.7项目管理的工具支持484 小结485 深入阅读485 章节复习问题486 练习486 第24章软件安全488 24.1什么是软件安全489 24.2安全要求489 24.3安全软件设计原则490 24.4安全软件设计模式491 24.5软件安全的7个*佳 实践493 24.6通过攻击树进行风险 分析494 24.7生命周期中的软件安 全性494 24.7.1规划阶段的安全 495 24.7.2迭代阶段的安全 501 24.8应用敏捷原则503 24.9软件安全的工具支持504 小结504 深入阅读505 章节复习问题505 练习506 附录A个人软件过程: 估计、规划和 质量保证507 A.1PSP中的工作量估计507 A.2PSP中的软件质量保证508 A.3设计和质量508 附录BJava技术510 B.1使用数据库连接510 B.1.1什么是数据库连接 510 B.1.2设置数据源510 B.1.3从程序中访问数据库 511 B.2使用Swing512 B.2.1用JFrame创建主 窗口512 B.2.2利用布局管理器 来布局组件513 B.2.3使用动作监听器 处理按钮事件515 B.2.4实现绘图功能515 B.3使用JSP517 B.3.1什么是JSP517 B.3.2JSP工作流517 B.3.3用JSP容器安装Web 服务器518 B.3.4使用JSP518 附录C软件工具521 C.1NetBeans521 C.2使用JUnit522 C.3在NetBeans中运行 JUnit525 C.4Emma覆盖工具525 C.5Cobertura覆盖工具526 C.6使用HttpUnit测试Web 应用程序527 C.6.1配置IDE以使用 HttpUnit527 C.6.2在HttpUnit中实现 测试用例528 C.7在NetBeans中使用cvs和 Subversion529 C.7.1创建CVS远程存 储库529 C.7.2在NetBeans中安装 Subversion530 C.7.3从存储库检出文件 531 C.7.4编辑源和查看变更 533 C.7.5查看文件状态533 C.7.6比较文件版本534 C.7.7合并存储库中的 更改534 C.7.8解决冲突534 C.7.9更新本地副本534 C.7.10提交本地文件到 存储库535 C.7.11导入文件到存储库 535 附录D项目概要536 D.1汽车租赁系统536 D.2国家贸易展览服务系统536 D.3海外留学管理系统537 D.4UML类图编辑器539 D.5无线电通信模拟器540 D.6对象状态测试环境541 参考文献543
展开全部
商品评论(0条)
暂无评论……
书友推荐
编辑推荐
返回顶部
中图网
在线客服