面向对象分析与设计(第3版)(修订版)

出版日期:2016-5
ISBN:9787121286661
作者:【美】Grady Booch(格雷迪.布奇),【美】Robert A. Maksimchuk(罗伯特.A.马克西)
页数:608页

作者简介

Jolt 大奖素有“软件业之奥斯卡”的美称,Jolt大奖精选丛书精选自Jolt 历届获奖图书,以植根于开发实践中的独到工程思想与杰出方法论为主要甄选方向。本书第1 版和第2 版分别于1991 年和1993 年荣获Jolt 震撼奖。
《面向对象分析与设计(第3版)(修订版)》是UML 创始人Grady Booch 的代表作之一。
《面向对象分析与设计(第3版)(修订版)》分为理论和应用两部分。理论部分深刻剖析了面向对象分析与设计(OOAD)的概念和方法。应用部分连续列出了5 个不同类型、不同领域的应用,描述如何从初始阶段到交付阶段,将OOAD 理论和方法应用到项目中。应用部分所涉及的领域包括系统架构、数据获取、密码分析、控制系统和Web 开发,还给出了一些关于重要问题的有效建议,包括分类、实现策略和高性价比的项目管理。《面向对象分析与设计(第3版)(修订版)》中介绍的概念都基于牢固的理论基础。同时,作者十分注重实效,基于其丰富的经验,面向软件工程实践者的实际需要,提出了改进的对象开发方法,用于解决系统和软件开发者面临的复杂问题;运用大量例子说明了基本概念,解释了方法,并展示了在不同领域的成功应用。
《面向对象分析与设计(第3版)(修订版)》的表示法采用最新的UML 2.0,因此本书是学习UML 2.0 不可多得的参考书。本书非常适合实际系统和软件的开发者、系统分析师或架构师、项目经理阅读,也可以作为高等院校软件工程和高级编程课程的教材使用。

书籍目录

第 1 篇 概念
第 1 章 复杂性 ....................................................................................... 2
1.1 复杂系统的结构 ....................................................................................... 3
1.1.1 个人计算机的结构 ....................................................................... 3
1.1.2 植物和动物的结构 ....................................................................... 4
1.1.3 物质的结构 ................................................................................... 5
1.1.4 社会机构的结构 ........................................................................... 5
1.2 软件固有的复杂性 ................................................................................... 6
1.2.1 定义软件复杂性 ........................................................................... 6
1.2.2 为什么软件在本质上是复杂的 ................................................... 7
1.3 复杂系统的 5 个属性 ............................................................................. 11
1.3.1 层次结构 ..................................................................................... 11
1.3.2 相对本原 ..................................................................................... 12
1.3.3 关注点分离 ................................................................................. 12
1.3.4 共同模式 ..................................................................................... 12
1.3.5 稳定的中间形式 ......................................................................... 13
1.4 有组织和无组织的复杂性 ..................................................................... 13
1.4.1 复杂系统的规范形式 ................................................................. 13
1.4.2 人在处理复杂性时的能力局限 ................................................. 16
1.5 从混沌到有序 ......................................................................................... 17
1.5.1 分解的作用 ................................................................................. 17
1.5.2 抽象的作用 ................................................................................. 21
1.5.3 层次结构的作用 ......................................................................... 22
1.6 复杂系统的设计 ..................................................................................... 23
1.6.1 作为科学和艺术的工程 ............................................................. 23
1.6.2 设计的含义 ................................................................................. 23
1.7 小结 ......................................................................................................... 26
第 2 章 对象模型 ................................................................................. 27
2.1 对象模型的演进 ..................................................................................... 27
2.1.1 程序设计语言的换代 ................................................................. 28
2.1.2 第一代和第二代早期程序设计语言的拓扑结构 ..................... 30
2.1.3 第二代后期和第三代早期程序设计语言的结构 ..................... 31
2.1.4 第三代后期程序设计语言的结构 ............................................. 32
2.1.5 基于对象和面向对象的程序设计语言的结构 ......................... 33
2.2 对象模型基础 ......................................................................................... 35
2.2.1 面向对象编程 ............................................................................. 38
2.2.2 面向对象设计 ............................................................................. 39
2.2.3 面向对象分析 ............................................................................. 40
2.3 对象模型要素 ......................................................................................... 40
2.3.1 抽象的意义 ................................................................................. 42
2.3.2 封装的意义 ................................................................................. 48
2.3.3 模块化的意义 ............................................................................. 51
2.3.4 层次结构的意义 ......................................................................... 55
2.3.5 类型的意义 ................................................................................. 61
2.3.6 并发的意义 ................................................................................. 64
2.3.7 持久的意义 ................................................................................. 66
2.4 应用对象模型 ......................................................................................... 68
2.4.1 对象模型的好处 ......................................................................... 69
2.4.2 开放式问题 ................................................................................. 70
2.5 小结 ......................................................................................................... 70
第 3 章 类与对象 ................................................................................. 71
3.1 对象的本质 ............................................................................................. 71
3.1.1 什么是对象,什么不是对象 ..................................................... 72
3.1.2 状态 ............................................................................................. 74
3.1.3 行为 ............................................................................................. 77
3.1.4 标识符 ......................................................................................... 81
3.2 对象之间的关系 ..................................................................................... 83
3.2.1 链接 ............................................................................................. 84
3.2.2 聚合 ............................................................................................. 87
3.3 类的本质 ................................................................................................. 88
3.3.1 什么是类,什么不是类 ............................................................. 88
3.3.2 接口和实现 ................................................................................. 90
3.3.3 类的生命周期 ............................................................................. 91
3.4 类之间的关系 ......................................................................................... 92
3.4.1 关联 ............................................................................................. 92
3.4.2 继承 ............................................................................................. 94
3.4.3 聚合 ........................................................................................... 105
3.4.4 依赖关系 ................................................................................... 106
3.5 类与对象的互动 ................................................................................... 106
3.5.1 类与对象的关系 ....................................................................... 107
3.5.2 类与对象在分析和设计中的角色 ........................................... 107
3.6 创建高品质的类与对象 ....................................................................... 107
3.6.1 评判一种抽象的品质 ............................................................... 108
3.6.2 选择操作 ................................................................................... 109
3.6.3 选择关系 ................................................................................... 111
3.6.4 选择实现 ................................................................................... 113
3.7 小结 ....................................................................................................... 114
第 4 章 分类........................................................................................115
4.1 正确分类的重要性 ............................................................................... 115
4.1.1 分类的困难 ............................................................................... 116
4.1.2 分类的增量和迭代本质 ........................................................... 118
4.2 确定类和对象 ....................................................................................... 120
4.2.1 经典方法和现代方法 ............................................................... 120
4.2.2 面向对象分析 ........................................................................... 124
4.3 关键抽象与机制 ................................................................................... 132
4.3.1 确定关键抽象 ........................................................................... 132
4.3.2 识别机制 ................................................................................... 134
4.4 小结 ....................................................................................................... 137
第 2 篇 方法
第 5 章 表示法 ................................................................................... 140
5.1 统一建模语言 ....................................................................................... 140
5.1.1 简单历史回顾 ........................................................................... 141
5.1.2 模型与多重视图 ....................................................................... 141
5.1.3 图分类 ....................................................................................... 142
5.1.4 在实践中使用图 ....................................................................... 144
5.1.5 概念模型、逻辑模型和物理模型 ........................................... 145
5.1.6 工具的角色 ............................................................................... 145
5.1.7 面向对象开发的产品 ............................................................... 146
5.1.8 规模上的伸缩 ........................................................................... 147
5.1.9 UML 的语法和语义 ................................................................. 147
5.1.10 UML 2.0 信息资源 ................................................................. 148
5.2 包图 ....................................................................................................... 148
5.2.1 基本概念:包表示法 ............................................................... 149
5.2.2 基本概念:元素的可见性 ....................................................... 150
5.2.3 基本概念:依赖关系 ............................................................... 151
5.2.4 基本概念:包图 ....................................................................... 152
5.2.5 高级概念:导入和访问 ........................................................... 154
5.3 组件图 ................................................................................................... 156
5.3.1 基本概念:组件表示法 ........................................................... 157
5.3.2 基本概念:组件图 ................................................................... 158
5.3.3 基本概念:组件接口 ............................................................... 160
5.3.4 基本概念:组件实现 ............................................................... 161
5.3.5 高级概念:组件的内部结构 ................................................... 163
5.4 部署图 ................................................................................................... 164
5.4.1 基本概念:工件表示法 ........................................................... 165
5.4.2 基本概念:节点表示法 ........................................................... 165
5.4.3 基本概念:部署图 ................................................................... 166
5.5 用例图 ................................................................................................... 168
5.5.1 基本概念:执行者 ................................................................... 169
5.5.2 基本概念:用例 ....................................................................... 169
5.5.3 基本概念:用例图 ................................................................... 169
5.5.4 高级概念: ?include?和?extend?关系..................................... 172
5.5.5 高级概念:泛化 ....................................................................... 176
5.6 活动图 ................................................................................................... 177
5.6.1 基本概念:动作 ....................................................................... 178
5.6.2 基本概念:开始和停止 ........................................................... 178
5.6.3 基本概念:判断节点和合并节点 ........................................... 179
5.6.4 基本概念:分区 ....................................................................... 179
5.6.5 高级概念:分叉、结合和并发 ............................................... 180
5.6.6 高级概念:对象流 ................................................................... 182
5.6.7 高级概念:其他元素 ............................................................... 182
5.7 类图 ....................................................................................................... 182
5.7.1 基本概念:类表示法 ............................................................... 184
5.7.2 基本概念:类关系 ................................................................... 186
5.7.3 高级概念:模板(参数化)类 ............................................... 189
5.7.4 高级概念:可见性 ................................................................... 190
5.7.5 高级概念:关联端名称和限定符 ........................................... 191
5.7.6 高级概念:约束 ....................................................................... 192
5.7.7 高级概念:关联类和注解 ....................................................... 196
5.8 序列图 ................................................................................................... 197
5.8.1 基本概念:对象与交互 ........................................................... 197
5.8.2 基本概念:生命线与消息 ....................................................... 198
5.8.3 高级概念:销毁事件 ............................................................... 199
5.8.4 高级概念:执行说明 ............................................................... 200
5.8.5 高级概念:交互使用 ............................................................... 201
5.8.6 高级概念:控制结构 ............................................................... 201
5.9 交互概述图 ........................................................................................... 204
5.9.1 基本概念:框 ........................................................................... 204
5.9.2 基本概念:控制流元素 ........................................................... 204
5.9.3 基本概念:交互图元素 ........................................................... 206
5.10 组合结构图 ......................................................................................... 206
5.10.1 基本概念:组合结构的部分 ................................................. 206
5.10.2 基本概念:组合结构的部分与接口 ..................................... 207
5.10.3 基本概念:组合结构连接器 ................................................. 208
5.10.4 高级概念:协作 ..................................................................... 208
5.11 状态机图 .............................................................................................. 209
5.11.1 基本概念:初始状态、最终状态和简单状态 ..................... 210
5.11.2 基本概念:转换与事件 ......................................................... 211
5.11.3 高级概念:状态活动——入口活动、 ................................. 213
执行活动和出口活动 ............................................................. 213
5.11.4 高级概念:控制转换 ............................................................. 213
5.11.5 高级概念:复合状态与嵌套状态 ......................................... 215
5.11.6 高级概念:并发与控制 ......................................................... 216
5.11.7 高级概念:子状态机状态 ..................................................... 221
5.11.8 高级概念:其他状态机图元素 ............................................. 222
5.12 时间图 ................................................................................................. 222
5.12.1 基本概念:更多相同之处 ..................................................... 223
5.12.2 基本概念:布局 ..................................................................... 223
5.12.3 基本概念:事件 ..................................................................... 224
5.12.4 基本概念:约束 ..................................................................... 224
5.12.5 高级概念:另一种表示形式 ................................................. 225
5.12.6 高级概念:事件与消息 ......................................................... 226
5.13 对象图 ................................................................................................. 226
5.13.1 基本概念:对象 ..................................................................... 227
5.13.2 基本概念:对象关系 ............................................................. 228
5.13.3 高级概念:端点名称和限定符 ............................................. 229
5.14 通信图 ................................................................................................. 230
5.14.1 基本概念:对象、链接和消息 ............................................. 230
5.14.2 基本概念:顺序表达式 ......................................................... 230
5.14.3 高级概念:消息与同步 ......................................................... 233
5.14.4 高级概念:迭代子句和约束条件 ......................................... 233
5.15 小结 ..................................................................................................... 234
第 6 章 过程....................................................................................... 236
6.1 首要原则 ............................................................................................... 236
6.1.1 成功项目的特征 ....................................................................... 236
6.1.2 追求理性的开发过程 ............................................................... 240
6.2 宏观过程:软件开发生命周期 ........................................................... 244
6.2.1 概述 ........................................................................................... 244
6.2.2 宏观过程的内容维:科目 ....................................................... 246
6.2.3 宏观过程的时间维:里程碑和阶段 ....................................... 249
6.2.4 宏观过程的时间维:迭代 ....................................................... 255
6.2.5 发行计划 ................................................................................... 257
6.3 微观过程:分析与设计过程 ............................................................... 260
6.3.1 概述 ........................................................................................... 260
6.3.2 抽象层次 ................................................................................... 261
6.3.3 活动 ........................................................................................... 262
6.3.4 产品 ........................................................................................... 263
6.3.5 微观过程与抽象层次 ............................................................... 267
6.3.6 识别元素 ................................................................................... 270
6.3.7 确定元素间的协作 ................................................................... 274
6.3.8 确定元素间的关系 ................................................................... 278
6.3.9 详细确定元素的语义 ............................................................... 281
6.4 小结 ....................................................................................................... 285
第 7 章 实战....................................................................................... 287
7.1 管理和计划 ........................................................................................... 288
7.1.1 风险管理 ................................................................................... 288
7.1.2 任务计划 ................................................................................... 289
7.1.3 开发复查 ................................................................................... 290
7.2 人员配备 ............................................................................................... 292
7.2.1 资源配置 ................................................................................... 292
7.2.2 开发团队角色 ........................................................................... 293
7.3 发布版本管理 ....................................................................................... 296
7.3.1 配置管理和版本控制 ............................................................... 296
7.3.2 集成 ........................................................................................... 297
7.3.3 测试 ........................................................................................... 298
7.4 复用 ....................................................................................................... 298
7.4.1 复用的元素 ............................................................................... 298
7.4.2 建立复用制度 ........................................................................... 299
7.5 质量保证和测量指标 ........................................................................... 299
7.5.1 软件质量 ................................................................................... 300
7.5.2 面向对象测量指标 ................................................................... 301
7.6 文档化 ................................................................................................... 304
7.6.1 开发遗产 ................................................................................... 304
7.6.2 文档化的内容 ........................................................................... 305
7.7 工具 ....................................................................................................... 306
7.7.1 工具种类 ................................................................................... 306
7.7.2 组织上的意义 ........................................................................... 307
7.8 特殊主题 ............................................................................................... 308
7.8.1 领域特定问题 ........................................................................... 308
7.8.2 采纳面向对象技术 ................................................................... 309
7.9 面向对象开发的好处和风险 ............................................................... 310
7.9.1 面向对象开发的好处 ............................................................... 310
7.9.2 面向对象开发的风险 ............................................................... 311
7.10 小结 ..................................................................................................... 313
第 3 篇 应用
第 8 章 系统架构——基于卫星的导航 ............................................... 316
8.1 初始 ....................................................................................................... 317
8.1.1 卫星导航系统的需求 ............................................................... 318
8.1.2 定义问题的边界 ....................................................................... 319
8.1.3 确定任务用例 ........................................................................... 322
8.1.4 确定系统用例 ........................................................................... 325
8.2 细化 ....................................................................................................... 329
8.2.1 开发一个好的架构 ................................................................... 329
8.2.2 定义架构开发活动 ................................................................... 330
8.2.3 验证所建议的系统架构 ........................................................... 331
8.2.4 分配非功能需求和确定接口 ................................................... 339
8.2.5 规定系统架构及其部署 ........................................................... 341
8.2.6 分解系统架构 ........................................................................... 344
8.3 构造 ....................................................................................................... 350
8.4 交付之后 ............................................................................................... 350
8.4.1 添加新的功能 ........................................................................... 351
8.4.2 改变目标硬件 ........................................................................... 352
第 9 章 控制系统——交通管理 .......................................................... 353
9.1 初始 ....................................................................................................... 354
9.1.1 列车交通管理系统的需求 ....................................................... 354
9.1.2 决定系统用例 ........................................................................... 357
9.2 细化 ....................................................................................................... 362
9.2.1 分析系统功能 ........................................................................... 362
9.2.2 定义 TTMS 架构 ...................................................................... 366
9.2.3 从系统工程到硬件和软件工程 ............................................... 368
9.2.4 关键抽象和机制 ....................................................................... 371
9.3 构造 ....................................................................................................... 373
9.3.1 消息传送 ................................................................................... 374
9.3.2 列车时刻表计划 ....................................................................... 377
9.3.3 显示信息 ................................................................................... 381
9.3.4 传感器数据采集 ....................................................................... 382
9.3.5 发布版本管理 ........................................................................... 383
9.3.6 系统架构 ................................................................................... 384
9.3.7 子系统规格说明 ....................................................................... 385
9.4 交付之后 ............................................................................................... 387
第 10 章 人工智能——密码分析 ........................................................ 389
10.1 初始 ..................................................................................................... 390
10.1.1 密码分析需求 ......................................................................... 390
10.1.2 定义问题的边界 ..................................................................... 391
10.1.3 黑板框架的架构 ..................................................................... 394
10.1.4 知识源的分析 ......................................................................... 396
10.2 细化 ..................................................................................................... 397
10.2.1 黑板对象 ................................................................................. 397
10.2.2 依赖和认定 ............................................................................. 399
10.3 构造 ..................................................................................................... 401
10.3.1 设计黑板对象 ......................................................................... 402
10.3.2 设计知识源 ............................................................................. 407
10.3.3 设计控制器 ............................................................................. 414
10.3.4 集成黑板框架 ......................................................................... 416
10.3.5 添加新的知识源 ..................................................................... 419
10.4 交付之后 ............................................................................................. 421
10.4.1 系统增强 ................................................................................. 421
10.4.2 改变需求 ................................................................................. 423
第 11 章 数据采集——气象监测站 .................................................... 424
11.1 初始 ...................................................................................................... 424
11.1.1 气象监测站需求 ..................................................................... 425
11.1.2 定义问题的边界 ..................................................................... 425
11.1.3 场景 ......................................................................................... 437
11.2 细化 ...................................................................................................... 438
11.2.1 气象监测系统用例 ................................................................. 438
11.2.2 架构框架 ................................................................................. 448
11.3 构造 ...................................................................................................... 450
11.3.1 帧机制 ..................................................................................... 450
11.3.2 发布计划 ................................................................................. 454
11.3.3 传感器机制 ............................................................................. 455
11.3.4 显示机制 ................................................................................. 457
11.3.5 用户界面机制 ......................................................................... 458
11.4 交付之后 .............................................................................................. 461
第 12 章 Web 应用——休假跟踪系统 ............................................... 463
12.1 初始 ..................................................................................................... 464
12.1.1 需求 ......................................................................................... 464
12.1.2 用例模型 ................................................................................. 466
12.2 细化 ..................................................................................................... 467
12.2.1 部署视图 ................................................................................. 468
12.2.2 逻辑视图 ................................................................................. 470
12.2.3 进程视图 ................................................................................. 472
12.2.4 实现视图 ................................................................................. 475
12.2.5 用例视图 ................................................................................. 475
12.3 构造 ..................................................................................................... 480
12.3.1 用户体验模型 ......................................................................... 480
12.3.2 分析和设计模型 ..................................................................... 482
12.3.3 实体 ......................................................................................... 493
12.3.4 控制器 ..................................................................................... 502
12.3.5 Web 页面和用户界面 ............................................................. 503
12.4 交付和交付之后 ................................................................................. 508
附录 A 面向对象编程语言 ................................................................. 510
附录 B 进一步阅读 ............................................................................ 530
注解 ..................................................................................................... 539
术语表 .................................................................................................. 566

内容概要

Grady Booch在软件架构、软件工程和建模领域的创新工作是世界知名的。从1981年Rational公司创建开始,他就一直担任该公司的首席科学家。Grady于2003年3月成为了IBM院士(IBM Fellow)。
Grady是统一建模语言(UML)最早的开发者之一,也是几个Rational产品的最早开发者之一。Grady曾担任世界各地一些复杂的软件密集型项目的架构师和架构指导者。
Grady是6本畅销书的作者,包括UML Users Guide和Object-Oriented Analysis with Applications。Grady发表了几百篇有关软件工程的技术文章,其中包括在20世纪80年代早期发表的文章,这些文章最先提出了面向对象设计的术语和实践。他曾在世界各地演讲和咨询。
Grady是美国计算机协会(ACM)、美国电气电子工程师学会(IEEE)、美国科学促进会(AAAS)、有社会责任的计算机专家协会(CPSR)的成员。他是IBM院士、ACM院士、世界技术网络院士,也是软件开发论坛梦想家。Grady是敏捷联盟、Hillside集团和软件架构师世界学院的创始委员会成员,也是Northface大学的顾问委员会成员。
Grady于1977年从美国空军学院获得学士学位,于1979年从加州大学圣巴巴拉分校获得电子工程科学硕士学位。
Grady与他的妻子和他的猫生活在科罗拉多。他的兴趣包括阅读、旅行、唱歌和弹奏竖琴。
Robert A. Maksimchuk是Unisys Chief Technology Office的一名研究主管。他关注新出现的建模技术,目的是提升Unisys 3D可视企业建模框架的战略方向。Bob为这项任务带来了不同行业的大量系统工程、建模、面向对象分析与设计的专业知识。他是UML for Mere Mortals和UML for Database Design的合著者,也写了许多文章。他曾经周游世界各地,在各种技术论坛上作为重要演讲者发言,举办关于UML和面向对象开发的研讨会和培训。Bob是电气电子工程师学会(IEEE)和国际系统工程学会(INCOSE)的成员。
Michael W. Engle是洛克希德马丁公司的首席工程师。他有超过26年的技术和管理经验——从项目启动到运营支持,涵盖了完整的系统开发生命周期。利用系统工程师、软件工程师和系统架构师的背景,Mike运用了面向对象技术,为复杂的系统开发提供创新的开发方式。
Bobbi J. Young,Ph.D.,是Unisys Chief Technology Office的一名研究主管。她有着多年的IT行业从业经验,与商业公司和国防部合同供应商一同工作。Young博士是一名咨询师,她在项目管理、企业架构、系统工程和面向对象分析与设计方面提供现场指导。在她的职业生涯中,她关注于系统生命周期过程和方法学,同时也关注企业架构。Young博士拥有生物学、计算机科学和人工智能学位,她获得了管理信息系统的博士学位,也曾是美国海军预备役的一名指挥官(已退伍)。
Jim Conallen是IBM Rational的模型驱动开发战略小组的一名软件工程师。在这个小组中,他积极参与,将对象管理集团(OMG)的模型驱动架构(MDA)计划应用于IBM Rational的模型工具中。Jim在基于资产的开发和可复用资产规范(RAS)领域也很活跃。Jim经常在会议上演讲,也经常写文章。他的专业领域是Web应用开发。
他开发了UML的Web应用扩展(WAE)。这是对UML的一种扩展,让开发者能够利用UML在合适的抽象和细节层面上对Web应用的架构进行建模。这项工作是IBM Rational Rose和Rational XDE Web Modeling功能的基础。
Jim与人合著了两个版本的Building Web Applications with UML,第一个版本采用微软公司的ASP技术,后一个版本采用J2EE技术。
Jim的经验也来自于加入Rational之前的工作,那时他曾是独立的咨询师、Peace Corps的志愿者和大学讲师。他还是3个孩子的父亲。Jim从Widener大学获得了计算机和软件工程的学士学位和硕士学位。
Kelli Houston是IBM Rational的IT咨询专家。她是IBM内部方法的方法架构师,负责编写方法并集成IBM的方法。除了方法架构师的角色,Kelli还在IBM内部领导Rational Method Composer(RMC)特别兴趣小组(SIG)工作,为客户和IBM内部咨询师提供有效使用RMC方面的咨询和现场指导服务。


 面向对象分析与设计(第3版)(修订版)下载



发布书评

 
 


 

农业基础科学,时尚,美术/书法,绘画,软件工程/开发项目管理,研究生/本专科,爱情/情感,动漫学堂PDF下载,。 PDF下载网 

PDF下载网 @ 2024