新書推薦:
《
汽车传感器结构·原理·检测·维修
》
售價:NT$
500.0
《
怪谈百物语:不能开的门(“日本文学史上的奇迹”宫部美雪重要代表作!日本妖怪物语集大成之作,系列累销突破200万册!)
》
售價:NT$
296.0
《
罗马政治观念中的自由
》
售價:NT$
230.0
《
中国王朝内争实录:宠位厮杀
》
售價:NT$
281.0
《
凡事发生皆有利于我(这是一本读了之后会让人运气变好的书”治愈无数读者的心理自助经典)
》
售價:NT$
203.0
《
未来特工局
》
售價:NT$
254.0
《
高术莫用(十周年纪念版 逝去的武林续篇 薛颠传世之作 武学尊师李仲轩家世 凸显京津地区一支世家的百年沉浮)
》
售價:NT$
250.0
《
英国简史(刘金源教授作品)
》
售價:NT$
449.0
編輯推薦:
本书有出了配套的PPT外,还有题库,全部章节的习题类型中,填空题142题,选择题214题,判断题110题,简答题123题,简单分析题66题。合计655题。
內容簡介:
本书在系统介绍面向对象技术的基本概念、方法和语言的基础上,全面介绍UML(统一建模语言)的发展历史、UML的构成、UML中的视图、模型元素、图以及公共机制等基本知识,并重点介绍UML的各种图模型的建模技术、方法与应用。此外,还详细介绍了软件设计模式、Rational统一过程、数据建模的相关知识与应用。本书通过大量的实例来解释或说明有关的概念、方法和技巧,以便于读者理解,帮助他们学以致用,达到立竿见影的效果。 全书共分4篇: 第1篇(第1、2章)为概述篇,概述面向对象技术和UML,包括面向对象技术的一些经典方法和UML的构成,后以一个具体应用项目的UML建模结束第1篇的内容介绍;第2篇(第3~9章)为建模篇,重点介绍UML在软件系统分析与设计各阶段的建模和体系结构建模,并介绍从UML对象模型到关系数据库的数据模型的映射等实现细节,全篇以一个实际项目贯穿始终;第3篇(第10、11章)为架构篇,重点介绍软件设计模式和Rational统一过程的基本概念、方法和应用;第4篇(第12章)为应用篇,基于UML的软件建模实例,介绍UML在Web应用系统建模方面的应用。全书提供了大量应用实例,每章后均附有习题。 本书适合作为高等院校计算机、软件工程专业高年级本科生、研究生的教材,也可供对UML比较熟悉并且对软件建模有所了解的开发人员、广大科技工作者和研究人员参考。
關於作者:
侯爱民,男,汉,江西南昌人,东莞理工学院计算机学院副教授,1989年天津大学硕士研究生毕业,2013年华南理工大学博士研究生毕业。教学方面主要从事软件系统开发方向的教学,基于.NET或JAVA EE技术。发表教学教改论文7篇,其中包括基于建构主义教学理论改革UML课程\\XML课程的教学。刊物包括《教育探索》、《西北师范大学学报(社会科学版)》、《教学研究》。科研方面主要从事人工智能方向的研究。发表科技论文21篇,SCI检索1篇,EI检索8篇。刊物包括《Artificial Intelligence》、《Journal of Computers》、《Advanced Materials Research》、《Lecture Notes in Engineering and Computer Science》、《Lecture Notes in Electrical Engineering》、《华南理工大学学报(自然科学版)》。曾在事业单位和软件公司从事软件系统开发13年,主要产品中小学学生信息管理系统遍及广东省和全国8000所学校。
目錄 :
第1篇概述篇
第1章面向对象技术概述3
1.1结构化方法和面向对象方法3
1.2面向对象方法的由来6
1.3面向对象的基本概念与术语7
1.4面向对象的软件开发9
1.5面向对象方法的优缺点10
1.6面向对象程序设计语言12
1.6.1Simula和Smalltalk语言12
1.6.2C扩展语言13
1.6.3Eiffel语言14
1.6.4Java语言14
1.6.5其他面向对象语言15
1.7面向对象的分析与设计15
1.8典型的面向对象方法20
1.8.1Coad & Yourdon方法20
1.8.2Rumbaugh方法20
1.8.3Booch方法22
1.8.4Jacobson方法23
1.8.5RDD方法25
1.9本章小结26
1.10习题27
第2章统一建模语言UML概述31
2.1UML概述31
2.1.1为什么要建模31
2.1.2什么是UML34
2.1.3UML的发展历史35
2.1.4UML的特点37
2.2UML的构成38
2.2.1UML的概念模型38
2.2.2UML中的视图42
2.2.3UML 1.5版的规范44
2.3UML 2.0简介45
2.3.1底层结构46
2.3.2上层结构47
2.3.3活动图48
2.3.4结构化类元49
2.3.5组合50
2.3.6异常51
2.3.7交互概观图52
2.3.8用例图53
2.3.9UML一致性53
2.3.10小结54
2.4一个UML的例子55
2.4.1需求分析55
2.4.2用例图56
2.4.3活动图57
2.4.4顺序图57
2.4.5协作图59
2.4.6类图59
2.4.7状态图60
2.4.8组件图60
2.4.9部署图61
2.5本章小结62
2.6习题63
第2篇建模篇
第3章用例图69
3.1参与者69
3.1.1参与者的概念69
3.1.2参与者之间的关系70
3.1.3参与者和用例之间的关系71
3.2用例71
3.2.1用例的概念71
3.2.2用例的特征72
3.2.3用例之间的关系73
3.2.4用例之间的泛化、包含、扩展关系的比较76
3.2.5用例的实现78
3.3用例描述78
3.4用例建模81
3.4.1用例建模的步骤82
3.4.2确定系统的边界82
3.4.3确定参与者83
3.4.4确定用例84
3.4.5区分用例的优先次序84
3.4.6细化每个用例84
3.4.7编写每个用例的用例描述85
3.4.8绘制用例图85
3.4.9编写项目词汇表85
3.5用例建模中常见的问题分析86
3.5.1用例的设计原则86
3.5.2用例模型的复杂度87
3.5.3用例模型的调整88
3.5.4用例模型的检查88
3.5.5系统的三层结构89
3.5.6用例描述89
3.5.7不同层次的用例模型之间的一致性91
3.6一个用例建模的例子93
3.6.1需求陈述93
3.6.2识别参与者94
3.6.3识别用例94
3.6.4确定系统边界95
3.6.5调整用例图96
3.6.6编写用例描述97
3.7本章小结108
3.8习题109
第4章类图与对象图120
4.1类与对象120
4.1.1类与对象的概念120
4.1.2类的属性121
4.1.3类的操作123
4.1.4类的职责125
4.2类与对象的识别126
4.2.1识别类与对象126
4.2.2识别类的属性130
4.2.3定义类的操作133
4.3类之间的关系134
4.3.1关联关系134
4.3.2聚合关系和组成关系144
4.3.3泛化关系145
4.3.4依赖关系146
4.4类之间关系的识别148
4.4.1识别关联关系148
4.4.2识别聚合关系148
4.4.3识别泛化关系149
4.4.4识别依赖关系152
4.5派生属性和派生关联153
4.6抽象类和接口153
4.6.1抽象类153
4.6.2接口153
4.6.3实现关系155
4.7类版型156
4.7.1实体类156
4.7.2边界类156
4.7.3控制类157
4.7.4用户自定义版型157
4.8类图158
4.8.1类图的抽象层次158
4.8.2构造类图159
4.9对象图160
4.9.1对象的表示161
4.9.2链的表示162
4.10一个结构建模的例子162
4.10.1需求陈述162
4.10.2识别对象163
4.10.3识别属性164
4.10.4识别关系164
4.11本章小结166
4.12习题167
第5章顺序图与协作图179
5.1交互模型概述179
5.2顺序图180
5.2.1对象180
5.2.2生命线180
5.2.3控制焦点181
5.2.4消息182
5.2.5分支182
5.2.6从属流182
5.3顺序图中的消息183
5.3.1调用消息183
5.3.2异步消息183
5.3.3返回消息183
5.3.4阻止消息184
5.3.5超时消息184
5.3.6消息的语法格式184
5.3.7调用消息和异步消息的比较186
5.4建立顺序图概述187
5.4.1建立顺序图187
5.4.2顺序图与用例描述的关系188
5.4.3顺序图与类图的区别188
5.5协作图189
5.5.1对象189
5.5.2链190
5.5.3消息190
5.5.4对象生命周期190
5.6建立协作图概述192
5.6.1建立协作图192
5.6.2协作图与顺序图的比较192
5.6.3协作图与用例描述的关系193
5.6.4协作图与类图的区别193
5.7交互建模中常见的问题分析194
5.7.1在顺序图中表示方法的普通嵌套和递归嵌套194
5.7.2在协作图中表示消息的发送顺序和嵌套顺序194
5.7.3条件消息和循环消息的表示196
5.7.4在顺序图中使用交互架构196
5.7.5调用消息和事件(信号)消息的区别197
5.7.6在顺序图中表示时间约束198
5.7.7顺序图的两种形式198
5.7.8协作图的两种形式198
5.7.9用例实现的类图与协作图199
5.7.10协作图中的多对象201
5.7.11协作图中的主动对象202
5.8一个交互建模的例子203
5.8.1需求陈述204
5.8.2识别对象类204
5.8.3识别消息205
5.8.4确定消息的形式和内容205
5.8.5“新增学习计划”用例实现的顺序图206
5.8.6其他用例实现的顺序图或协作图207
5.9本章小结209
5.10习题210
第6章状态图与活动图221
6.1行为模型概述221
6.2状态图222
6.2.1状态223
6.2.2组合状态/子状态225
6.2.3转移226
6.2.4事件229
6.2.5信号230
6.3建立状态图233
6.3.1识别需要绘制状态图的实体234
6.3.2识别状态空间234
6.3.3识别状态转移234
6.3.4绘制并审查状态图235
6.4状态图的工具支持235
6.5活动图237
6.5.1活动237
6.5.2分支237
6.5.3分叉和汇合237
6.5.4泳道238
6.5.5对象流238
6.5.6信号239
6.6活动图的用途240
6.6.1对业务过程建模240
6.6.2对具体操作建模241
6.7建立活动图241
6.7.1定义活动图的范围241
6.7.2添加起始点和结束点241
6.7.3添加活动242
6.7.4添加活动间的变迁和决策点242
6.7.5找出可并行活动之处242
6.8活动图的工具支持243
6.9状态图和活动图的比较243
6.10一个行为建模的例子244
6.10.1需求陈述244
6.10.2分析活动244
6.10.3分析对象状态245
6.11本章小结246
6.12习题248
第7章组件图与部署图259
7.1组件图259
7.1.1组件259
7.1.2组件的类型260
7.1.3组件之间的关系261
7.1.4组件和类的关系261
7.1.5组件和接口的关系262
7.2组件图的用途262
7.2.1对源代码文件之间的关系建模262
7.2.2对可执行文件之间的关系建模262
7.2.3对物理数据库中各个具体对象之间的关系建模263
7.2.4对自适应系统建模263
7.3组件图的工具支持263
7.3.1正向工程263
7.3.2逆向工程267
7.4组件图的例子274
7.5部署图277
7.5.1结点277
7.5.2连接277
7.5.3部署图介绍278
7.5.4分布式系统的物理建模278
7.6部署图的例子279
7.7一个体系结构建模的例子281
7.7.1需求陈述281
7.7.2分析类和接口281
7.7.3确定组件282
7.7.4确定组件之间的依赖关系282
7.7.5确定硬件结点283
7.7.6确定硬件结点之间的通信关系283
7.8本章小结284
7.9习题284
第8章包图288
8.1包图概述288
8.1.1包中的元素288
8.1.2包的命名288
8.1.3包中元素的可见性289
8.1.4包的层次性289
8.1.5包之间的关系289
8.2设计包的原则291
8.2.1重用等价原则291
8.2.2共同闭包原则291
8.2.3共同重用原则291
8.2.4非循环依赖原则292
8.2.5高内聚和低耦合原则292
8.3包的应用293
8.4一个分组机制建模的例子293
8.4.1需求陈述293
8.4.2分析类和接口293
8.4.3确定包293
8.4.4确定包之间的依赖关系294
8.5本章小结294
8.6习题295
第9章数据建模297
9.1数据建模概述297
9.2数据库设计的基本过程297
9.3数据库设计的步骤298
9.3.1Rational Rose中的设计步骤298
9.3.2Rational Rose中的具体操作过程300
9.3.3在Rational Rose中表之间的关系304
9.4对象模型和数据模型的相互转换307
9.4.1对象模型转换为数据模型307
9.4.2数据模型转换为对象模型310
9.5关联关系的多重性在数据模型中的映射311
9.5.1多对多的关联的映射312
9.5.2一对多的关联的映射312
9.5.3零或一对一的关联的映射312
9.6本章小结314
9.7习题314
第3篇架构篇
第10章软件设计模式及应用319
10.1设计模式概述319
10.1.1设计模式的历史319
10.1.2设计模式的组成元素320
10.1.3设计模式的作用和研究意义321
10.1.4为什么要使用设计模式322
10.1.5设计模式的分类323
10.1.6设计模式遵循的原则325
10.1.7设计模式的使用策略326
10.2经典设计模式328
10.2.1工厂模式328
10.2.2适配器模式331
10.2.3命令模式332
10.2.4解释器模式334
10.2.5迭代器模式335
10.2.6观察者模式336
10.2.7代理模式338
10.2.8单例模式339
10.2.9状态模式340
10.2.10策略模式341
10.2.11访问者模式343
10.3设计模式实例345
10.3.1Facade模式345
10.3.2Adapter模式348
10.3.3Abstract Factory模式352
10.3.4Observer模式355
10.4在Rose中使用设计模式359
10.5基于UML建模方法中的设计模式的运用364
10.5.1Struts 2框架364
10.5.2用户需求364
10.5.3UML建模的用例图365
10.5.4UML建模的类图365
10.5.5设计模式优化类图366
10.5.6顺序图367
10.5.7融合UML建模和设计模式的开发模式367
10.6本章小结369
10.7习题369
第11章Rational统一过程379
11.1软件开发过程和统一过程379
11.2Rational统一过程的概述380
11.2.1Rational统一过程的发展历史380
11.2.2Rational统一过程的宏观与微观381
11.2.3Rational统一过程中的核心概念382
11.3Rational统一过程的软件开发生命周期384
11.3.1Rational统一过程的生命周期384
11.3.2Rational统一过程的核心工作流385
11.3.3Rational统一过程的阶段388
11.4Rational统一过程的模型与文档393
11.4.1Rational统一过程的模型393
11.4.2Rational统一过程产生的模型与文档394
11.5Rational统一过程的特点395
11.6Rational统一过程的6个实践400
11.7Rational统一过程的配置和实现403
11.7.1配置Rational统一过程403
11.7.2实现Rational统一过程404
11.8RUP裁剪405
11.9RUP Builder405
11.10基于RUP的Cycle过程的迭代开发模式409
11.10.1RUP的生命周期409
11.10.2RUP的循环409
11.10.3RUP的模型410
11.10.4开发模式410
11.10.5项目需求411
11.10.6课程网站运行效果415
11.10.7与其他开发方法的比较417
11.11本章小结418
11.12习题419
第4篇应用篇
第12章基于Struts 2的个人信息管理系统应用实例425
12.1系统概述425
12.2需求分析425
12.2.1用户需求425
12.2.2系统功能模块结构图426
12.2.3系统运行效果426
12.3用例建模432
12.3.1确定系统边界432
12.3.2识别参与者433
12.3.3识别用例433
12.3.4绘制用例图433
12.3.5用例描述434
12.4静态建模440
12.4.1识别对象类440
12.4.2识别属性441
12.4.3绘制类图441
12.4.4绘制数据模型441
12.4.5设计数据表442
12.5动态建模444
12.5.1绘制顺序图444
12.5.2绘制协作图449
12.5.3绘制活动图450
12.5.4绘制状态图452
12.6架构建模453
12.6.1绘制包图454
12.6.2绘制组件图455
12.6.3绘制部署图457
12.7本章小结458
12.8习题458
附录A部分习题参考答案459
参考文献502
內容試閱 :
第2版前言
本书自2015年8月出版以来,得到了国内许多高校的大力支持,并提出了许多宝贵的意见和建议。在此,作者表示衷心的感谢!
统一建模语言(Unified Modeling Language,UML)集经典的面向对象方法之大成。自1997年11月被对象管理组织(Object Management Group,OMG)正式接纳为建模语言标准以来,在各行各业用之进行建模的推动下得到了广泛的应用,成为面向对象方法的主流技术之一。
UML仅仅作为一种建模语言,它定义了一系列的图形符号来描述软件系统,提供了严谨的词汇表以及组合词汇的规则。这些图形符号及词汇有严格的语义和清晰的语法,这些语义和语法组成了一个语言标准。至于如何运用这些图形符号及词汇进行建模,是建模者创造性劳动的智慧结晶。
UML与基于UML的建模之间的辩证关系,类似于英语语法与英语写作之间的辩证关系。众所周知,正确掌握了英语语法只是能够写出规范的英文文章的前提条件,要想写出一篇有内涵、影响广泛的文章,还需要作者在文章中体现出深邃的思想体系及娴熟的写作技巧。正是从这个角度出发,本书专注于如何运用UML进行软件系统的建模过程,阐述容易被广大读者学习、掌握及运用的UML建模技巧。
与市面上所出版的UML相关书籍不同,本教材积累了丰富的UML建模过程中的宝贵经验,重点突出了实例解释概念、易犯错误之注意事项、不同方法/方案的对比分析、大量习题巩固所学的建模技巧。为了将各章节的知识有机结合起来,安排了一个统一的实际项目贯穿始终。为了体现运用UML建模技术分析与设计软件系统的工程性,分别以正向工程的方式和逆向工程的方式解剖软件系统。
以上是本教材第1版的特色与精华。
本书作者在进行高等教育教学改革的过程中,结合实际项目,带领学生完成了“在UML建模方法中运用设计模式进行优化”的课题和“基于RUP的Cycle过程的迭代开发模式”的课题。个课题阐述了针对一个具体的用户需求,使用UML建模技术设计类图,再综合考虑23种设计模式对类图进行优化处理。第二个课题阐述了在对软件系统进行分析、设计、实现的过程中,灵活运用RUP(Rational Unified Process,Rational统一过程)的Cycle过程思想,进行多Cycle的RUP的二维生命周期模型的运作。前者将UML和设计模式融会贯通,形成一个有机整体。后者将RUP的Cycle过程融汇到软件系统的分析、设计、实现中,再现了敏捷软件开发模式和小组软件过程开发模式的核心特点。这是完成本教材第2版的原始动力,也是第2版有别于其他同类书籍的突出之特色所在。
具体新增内容如下。
第10章新增10.5节。以一个实际系统为例,采用正向工程方式,阐述根据用户需求,运用UML建模技术设计类图;然后,对于需求可变化的部分,出于代码复用及易更新性考虑,使用外观模式对UML建模技术获得的类图进行优化处理,后获得了融合UML建模技术和设计模式两者优点的综合方案,完成了两种不同的建模技术的“融会贯通”。
第11章新增11.10节。以一个实际系统为例,采用正向工程方式,阐述了根据RUP的Cycle过程,将软件系统的分析、设计、实现全过程分4个Cycle进行。每个Cycle执行完整的RUP二维生命周期模型,其中横轴上的4个阶段含多次迭代操作,每个Cycle结束后获得一个独立的可运行的软件产品版本。前3个Cycle,各个小组独立完成自己负责的功能部分。第4个Cycle,所有小组的代码集成,完成软件系统的整个产品的整合。这种模式不仅实践了RUP的Cycle过程,而且再现了敏捷软件开发模式和小组软件过程开发模式的核心特点,完成了3种不同的开发模式的“殊途同归”。
自从2020年1月新冠肺炎疫情暴发以来,全国高校积极有序地开展了网络教学,在网络直播平台上讲课、练习、答疑、考试,几乎完整地将线下教学全过程、等效地搬到网络上进行。时值这个历史契机,清华大学出版社重点打造数字教学平台,鼓励并协助教材作者将习题及答案导入作业练习系统中,方便教材合法使用者在作业练习系统平台上做题和测验。为了响应清华大学出版社这个义举,也为了满足使用本教材第1版的读者希望获悉全部习题答案的心愿,本书作者在给出了原来所有习题的答案之基础上,新增了很多习题及答案,尤其是提供了各章节的判断题,设计模式优化UML建模类图的分析题,以及基于RUP的迭代开发模式的分析题。这些汇编一处的新老习题及答案,构成了第2版教材的另一大亮点。据统计,全部章节的习题类型中,填空题142题,选择题214题,判断题110题,简答题123题,简单分析题66题,合计655题。
第2版的全部更新内容,由侯爱民编写完成。在编写期间,得到了课题组的成员周鹏、胡传福、赵慧3位同志的大力支持,在此表示诚挚的谢意!课题组成员的积极参与,是本教材及配套的课程教学能够取得不断进步的原动力。同时,本次编写工作也参阅了大量的资料,尤其是参考文献列出的资料。在此对所有资料的编著者表示衷心的感谢!
由于本书内容涉及面广,加之我们的水平限制,疏漏、欠妥、谬误之处在所难免,敬请广大读者和同行批评指正!
侯爱民2021年夏于松山湖第1版前言
面向对象技术以其显著的优势成为计算机软件领域的主流技术。产业界需要大量掌握面向对象方法和技术的人才。这些人才不仅能够使用面向对象语言进行编程,更重要的是能运用面向对象方法进行系统建模。融合众家面向对象方法之长,被学术界和产业界不断完善的统一建模语言UML,是一种定义良好、易于表达、功能强大、随时代发展且适用于各种应用领域的面向对象的建模语言,已经被OMG采纳为标准。目前UML已经成为面向对象技术领域内占主导地位的标准建模语言。掌握UML语言,不仅有助于理解面向对象的分析与设计方法,也有助于对软件开发全过程的理解。
软件工程大师James Rumbaugh认为: “UML的贡献是在设计与建模上。有了UML这个标准,的好处是大家愿意在建模上发挥自己的能力,把软件开发从原来的写程序‘拉’到结构良好的建模上来,这是软件应该发展的方向,这是UML意义的所在。”这位大师还对如何学习UML(统一建模语言)提出很好的想法: “UML就像一本很厚的书一样,一下子要把每个章节、每一页都看完相对来讲是不容易的,学习UML的好方式是从基础、根本的方式来学习,尤其是从图像化的东西开始学起,把握一个要点,当你有这个需求要扩展更多功能的时候再从原来的基础往那个方向扩展学习的内容。不要想把所有的书一次都念完,这样会让你在学习时产生困扰。”本书试图在这个方向上努力,力求深入浅出、逐步展开,通过大量的例子或案例来解释或说明有关的概念、方法和技巧,以便于读者理解,帮助他们学以致用,达到立竿见影的效果。
本书在系统地介绍面向对象技术的基本概念和方法的基础上,重点介绍UML及其建模技术、方法与应用,以及得到业界广泛认同的软件设计模式、软件开发的过程、规程与实践。本书是作者多年来进行软件系统开发实践和教学的一次经验总结。教材中的诸多实际问题和应用案例,都取材于软件系统开发的实践,并按照教学的要求进行了模型简化与规范。显然,这些源于实践的工程问题,对提高软件系统分析与设计的教学的实践性和实用性,将具有很好的示范效应。
我们希望本书不仅可以作为高等院校计算机或软件工程专业的高年级本科生或硕士研究生的教学参考读物,而且可以作为从事软件系统的研制、开发、管理和维护的软件人员的参考书。
版本的统一建模语言(UML 2.0)的推出,引起了软件界的广泛关注和兴趣。为此,本书在介绍UML的图示法和概念时,也对与UML 2.0的新特征有关的部分做了必要的说明和补充,使读者在全面、系统地了解UML 1.x版本内容的同时,能及时地注意到今后可能的变动和改进之处。
本书由12章组成。
第1章为面向对象技术概述,介绍面向对象的概念和编程语言、面向对象的分析和设计、典型的面向对象开发方法。通过对Booch方法、Jacobson方法和Rumbaugh方法的介绍,有助于理解UML的思想源泉。
第2章介绍UML的发展历史、UML的构成、UML中的视图、模型元素、图以及公共机制等基本知识,还简要地介绍UML 2.0的主要特点。通过一个实际案例,将UML的各类知识有机地联系在一起。
第3章介绍需求建模的基础知识、方法和技巧。重点介绍从需求分析到用例建模,通过用例建模的步骤(绘制用例图)与实际案例应用的遥相呼应,帮助读者体会理论知识如何应用到实际问题中。此外,还较为全面详细地讨论了用例建模中常见的问题及应对策略,重点强调用例描述在需求分析中的重要作用。
第4章介绍静态建模的基础知识、方法和技巧。重点介绍从用例建模到对象结构建模,通过对象结构建模的步骤(绘制类图和对象图)与实际案例应用的遥相呼应,帮助读者体会理论知识如何应用到实际问题中。此外,还较为全面详细地讨论对象结构建模中关系的识别与区分策略,讨论类图与对象图的辩证关系,重点强调类版型在系统分析与设计中的重要作用。
第5章介绍与对象间交互相关的动态建模的基础知识、方法和技巧。重点介绍从用例建模 对象结构建模到交互建模,通过交互建模的步骤(绘制顺序图、协作图)与实际案例应用的遥相呼应,帮助读者体会理论知识如何应用到实际问题中。此外,较为全面详细地讨论交互建模中消息的识别与区分策略,特别是信号消息的识别,较为全面详细地讨论交互建模中常见的问题及应对策略,讨论顺序图与协作图的辩证关系。
第6章介绍与对象行为相关的动态建模的基础知识、方法和技巧。重点介绍从用例建模 对象结构建模到行为建模,通过行为建模的步骤(绘制状态图、活动图)与实际案例应用的遥相呼应,帮助读者体会理论知识如何应用到实际问题中。此外,较为全面详细地讨论行为建模中状态和活动的识别与区分策略,特别是状态图建模的场合,讨论状态图与活动图的辩证关系,重点强调泳道概念在用例实现的细化中的重要作用。
第7章介绍与体系结构相关的架构建模的基础知识、方法和技巧。重点介绍从用例实现到架构建模,通过架构建模的步骤(绘制组件图、部署图)与实际案例应用的遥相呼应,帮助读者体会理论知识如何应用到实际问题中。此外,较为全面详细地讨论架构建模中组件的识别与区分策略,特别是组件图在正向工程和逆向工程中的作用。
第8章介绍与分组机制相关的架构建模的基础知识、方法和技巧。重点介绍从对象结构模型到分组机制建模,通过分组机制建模的步骤(绘制包图)与实际案例应用的遥相呼应,帮助读者体会理论知识如何应用到实际问题中。此外,介绍包的设计原则,特别地重点介绍包的嵌套层次结构和包的依赖关系与程序代码存放的目录之间的映射。
第9章介绍与数据库设计相关的数据建模的基础知识、方法和技巧。重点介绍从对象结构模型到数据建模的相互转换,给出在Rational Rose 2003工具中实现对象模型与数据模型相互转换的操作细节。此外,重点介绍实体类之间的关联关系的多重性在数据模型中的映射法则。
第10章介绍得到软件工程学术界和产业界广泛关注的软件设计模式。重点介绍经典设计模式和4个具体的设计模式实例(Facade模式、Adapter模式、Abstract Factory模式和Observer模式)。这是面向对象分析技术在软件系统设计方面的又一次成功的应用。通过设计模式的UML,读者能够获取在实际项目中反复使用的一些解决方案的精髓。
第11章介绍得到软件工程学术界和产业界广泛认可的、行之有效的面向对象的软件开发过程、规程和实践,即RUP(Rational统一过程)和RUP工具。重点介绍RUP的生命周期模型、核心概念、鲜明特点和6个实践。
第12章为案例分析。目的是希望单独列出一章,再一次通过一个较为完整的实际案例的剖析,展示使用UML建模语言、对软件系统进行面向对象的分析与设计的具体过程,帮助读者把前面学过的一整套抽象的概念、方法和过程贯穿起来,更好地理解和掌握使用UML进行面向对象的建模。
本书的第1章由欧阳骥编写,第10章和第11章由胡传福编写,其余各章由侯爱民编写。全书由侯爱民统一筹划和统稿。
在本书的编写过程中,参阅了大量的资料,尤其是参考文献列出的资料。在此对所有资料的编著者表示衷心的感谢!另外,张宏峰、王浩彬、姚鹏、曾伟铨、杨楚豪、黄本豪、谢少蓉、刘科余为本书提供了许多习题及答案以及他们的学习体会,在此一并表示感谢!由于本书内容涉及面广,加之作者的水平限制,疏漏、欠妥、谬误之处在所难免,敬请广大读者和同行批评指正。
侯爱民乙未年春于松山湖