UML面向对象分析与设计(高等学校计算机专业系列教材)9787302581451
正版图书,可开发票,请放心购买。
¥
29.08
4.9折
¥
59
全新
库存30件
作者董东编著
出版社清华大学出版社
ISBN9787302581451
出版时间2021-08
装帧平装
开本16开
定价59元
货号11246308
上书时间2024-11-25
商品详情
- 品相描述:全新
- 商品描述
-
作者简介
董东,主讲课程本科生课程2门:Java面向对象程序设计(河北师范大学双语示范课程)、编译原理;主讲研究生课程2门:面向对象技术 高级软件工程。
目录
目录
第1章面向对象方法与过程/1
1.1控制软件复杂性1
1.2面向对象范型4
1.2.1面向对象语言的发展4
1.2.2面向对象范型的基本概念6
1.2.3面向对象程序设计语言Java8
1.2.4面向对象程序设计的特点13
1.2.5面向对象程序设计的原则17
1.3面向对象的软件开发方法23
1.4软件开发过程24
1.4.1软件开发过程概述24
1.4.2统一软件开发过程26
1.4.3RUP 4+1视图26
1.4.4RUP主要概念28
1.4.5RUP软件生命周期31
思考题32
第2章面向对象分析/33
2.1分析技术34
2.1.1名词动词分析34
2.1.2基于对象关系的分析38
2.1.3角色分析38
2.1.4基于场景的分析39
2.1.5类职责协作者分析40
2.2质量需求分析42
思考题45
第3章面向对象设计/46
3.1软件体系结构风格48
3.1.1Layer风格49
3.1.2Tier风格50
3.1.3模型视图控制器54
3.1.4面向服务的架构56
3.1.5微服务架构57
3.2组消息通信模式58
3.2.1消息队列58
3.2.2发布/订阅58
3.3设计模式59
3.3.1单例模式60
3.3.2抽象工厂模式61
3.3.3工厂方法模式62
3.3.4原型模式64
3.3.5建造者模式65
3.3.6适配器67
3.3.7外观模式68
3.3.8代理模式70
3.3.9策略模式72
3.3.10观察者模式74
3.3.11迭代器模式78
3.3.12访问者模式79
3.3.13命令模式81
3.4模块设计83
3.4.1内容耦合84
3.4.2公用耦合85
3.4.3控制耦合85
3.4.4标记耦合87
3.4.5数据耦合87
3.4.6例程调用耦合87
3.4.7类型使用耦合88
3.4.8导入耦合88
3.4.9外部耦合88
思考题89
第4章实现与维护/90
4.1代码习惯用语90
4.1.1对象相等equals()方法的实现90
4.1.2生成某区间内的随机整数91
4.1.3tryfinally块91
4.1.4验证实在参数92
4.1.5遍历时删除92
4.2代码异味93
4.3代码规范95
4.4可维护性101
4.5重构103
思考题106
第5章UML概述/109
5.1UML的作用109
5.2UML的发展111
5.3UML的特点113
5.4UML建模工具113
5.4.1StarUML114
5.4.2Enterprise Architect114
5.4.3Rational Software Architect115
思考题116
第6章UML基本概念/117
6.1类型和多重性117
6.2名字空间118
6.3特征集119
6.4关联124
6.5依赖126
6.6约束128
6.7类129
6.8模型和图130
6.9概要图132
思考题133
第7章用例模型与用例图/134
7.1用例模型134
7.2用例图136
7.3用例的规格说明139
7.4建立用例模型141
7.4.1寻找参与者的方法142
7.4.2识别用例142
7.4.3识别用例关系142
7.5案例研究145
思考题147
第8章类模型与类图/150
8.1类模型150
8.1.1定义类的属性150
8.1.2类的操作151
8.1.3类之间的关系153
8.2类图160
8.2.1类的记号160
8.2.2实体类、控制类和边界类161
8.2.3类之间的关系162
8.3建立类模型166
8.3.1识别类167
8.3.2识别关系167
8.3.3识别属性168
8.3.4识别操作168
8.4对象关系映射168
8.4.1关系模型168
8.4.2把类映射到关系169
8.5对象图172
8.6案例研究173
思考题176
第9章状态机与状态机图/179
9.1状态机179
9.1.1状态180
9.1.2转移180
9.1.3事件181
9.2状态机图181
9.2.1状态的记号182
9.2.2转移183
9.2.3区域184
9.2.4状态的内部行为184
9.2.5伪状态185
9.3建立状态机图188
9.4案例研究189
思考题191
第10章活动图/193
10.1模型元素193
10.1.1令牌194
10.1.2可执行节点的执行194
10.1.3控制节点的执行195
10.1.4对象节点与对象令牌195
10.1.5异常196
10.1.6活动组196
10.2活动图196
10.2.1动作节点和对象节点197
10.2.2边199
10.2.3控制节点200
10.2.4分区202
10.3绘制活动图204
10.4案例研究205
思考题207
第11章交互图/208
11.1顺序图208
11.1.1生命线208
11.1.2消息210
11.1.3交互片段213
11.1.4顺序图的绘制方法222
11.2协作图222
11.3交互概览图224
11.4时序图225
11.5案例研究227
思考题233
第12章物理模型/235
12.1包图235
12.1.1包与包之间的关系236
12.1.2包的归并238
12.1.3案例研究240
12.1.4设计包的原则2431
2.2组件图245
12.2.1组件245
12.2.2案例研究248
12.3部署图249
12.3.1部署图的组成249
12.3.2案例研究251
思考题251
第13章面向对象的学生选课系统开发/254
13.1引言254
13.2用例模型254
13.3类模型255
13.3.1名词短语分析255
13.3.2确定关联类256
13.3.3识别属性256
13.3.4识别方法258
13.4把类模型映射到代码259
13.5控制台应用269
13.5.1创建接口269
13.5.2创建实现类272
13.5.3运行一个业务场景279
13.6使用文件作为持久化设置282
13.6.1从文件记录创建对象282
13.6.2封装持久化细节284
13.6.3运行同一个业务场景292
13.7使用MySQL作为持久化设施293
13.7.1准备数据库和建表294
13.7.2创建数据库访问实用类296
13.7.3运行业务场景306
13.8图形用户界面307
13.8.1界面需求分析308
13.8.2开发工具准备308
13.8.3设计309
13.9Web应用313
`13.9.1准备开发环境313
13.9.2设计基于Web的学生选课系统314
思考题323
附录AStarUML/325
附录BUML标准版型/329
附录C中英文术语对照/331
参考文献/335
内容摘要
1.1控制软件复杂性John Ousterhout 在A Philosophy of Sofrware Design(《软件设计的哲学》)一书中谈到,软件设计的最大目标,就是降低复杂性(Complexity)。源代码令人费解和依赖关系是造成复杂性的两个原因。降低复杂性的基本方法是把复杂性隔离。他说:“如果能把复杂性隔离在一个模块,几乎不与其他模块互动,就达到了消除复杂性的目的。”复杂性是软件固有的性质。首先,软件受计算机体系结构限制。在冯·诺依曼体系结构中,计算模块和存储单元是分离的,不停地“取指一执行”是计算机运行的基本模式。软件不仅要理解真实世界中的问题,还要在冯·诺依曼体系结构的限制下进行问题求解。问题本身的复杂性、硬件计算模型的简单性是造成软件复杂性的先天因素。其次,软件是一种知识产品。概念、定律、公理、规则、模式、规律等都需要在软件中表达,知识本身具有复杂性,也很难设计一门计算机语言简洁地、无二义地表达知识。第三,从理论上说,事物是广泛联系的和运动变化的。现实世界和软件系统都在变化,软件系统中各个元素都存在联系,而且,随着元素数目增加,元素之间的联系呈非线性递增趋势。现实世界的变化促使软件不断演化,而演化又增加了新的元素和联系。自计算机诞生以来,软件在两个方向上演化:纵向上不断升级,不断更新版本,增加新的功能,适应技术发展,例如,从基于单机的信息管理系统演化为基于局域网的信息管理系统,再演化为面向互联网的信息管理系统;横向上不断催生新的软件解决老问题,如为了解决异构数据库访问问题,提出了中间件ODBC、JDBC;为了解决复用问题提出了各种框架;为了解决信息孤岛问题,又引入新的系统。这类现象可统称为软件衍生现象。衍生现象增加了软件的复杂性。软件系统复杂到一定程度,人往往就束手无策了,或者解决成本激增。修改一行代码因为层层审核而需要程序员一个星期的时间已经不是什么新鲜事儿了。由于软件复杂性是固有的,人们无法消除,只能采取控制的办法,尽量减少软件复杂性对软件质量的影响。分而治之、抽象、模块化、信息隐藏是控制软件复杂性的有效方法。分而治之,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,直到最后子问题可以简单地直接求解,原问题的解即子问题的解的综合。例如,从最终的软件产品开始,一层一层往下,把一个大型交付件划分为小型、具体的交付件。划分的结果往往是一树状功能结构。折半查找算法就是典型的采用分治策略的查找算法。该算法将原来的问题递归地拆成两个一半规模的子问题。通过分解,使得软件复杂性在特定的层次和范围内不会超出人的理解能力。分而治之的思想衍生了很多重要的设计概念,例如,关注点分离、接口分离、模块化等。一个关注点是一个特征,被指定为软件需求模型的一部分。接口分离指采用多个与特定客户类有关的接口优于采用一个通用的接口。模块是软件中被划分为独立命名的、可处理的部件,把这些部件集成到一起就可以满足问题的需求。模块化是关注点分离的结果。抽象是从许多事物中,舍弃个别的、非本质的属性,抽出共同的、本质的属性的过程。抽象使得人们能够先将注意力集中在某一层次上考虑主要问题,而忽略低层次的细节。一般地,抽象分为数据抽象和过程抽象。通过数据抽象,得到不同的数据模型和数据结构,如关系模型、树状结构等;通过过程抽象可以形成不同的顺序、分支和循环,还可以进行逐层细化。抽象的结果取决于使用者的目的,并没有唯一的答案。信息隐藏指的是模块中的信息(算法和数据结构)不能被不需要这些信息的模块访问。把模块的接口和实现分离,客户程序通过接口了解和使用该模型而无须关心实现细节,不能直接访问模块的内部信息;模块的实现通过限制对数据结构和算法的访问权限进行信息隐藏,从而使得本模块的一些变更不会影响其使用者。在Java语言程序中,通过设置类成员的可访问性实现了对其客户隐藏属性和方法体,仅对外公开方法签名,以达到信息隐藏的目的。方法名字和方法形式参数类型序列合起来称为方法签名(MethodSignature),签名唯一标识了同一类中的方法。
……
主编推荐
主讲课程本科生课程2门:Java面向对象程序设计(河北师范大学双语示范课程)、编译原理;主讲研究生课程2门:面向对象技术 高级软件工程。
(1)以“控制复杂性”作为软件设计哲学理念,从依赖关系和可理解性两个角度组织内容。
(2)强调“从模型到代码的映射”,方便读者根据程序设计语言的语义理解图形元素的语义。
(3)区分建立UML模型和编辑UML图的工程过程,分离UML模型元素和图形元素。
精彩内容
本书主要介绍统一建模语言及其应用。首先介绍面向对象方法与软件过程、面向对象分析、面向对象设计、面向对象程序设计等与面向对象软件工程相关的内容,然后基于UML 2.5.1 规范,介绍UML的基本概念、用例模型与用例图、类模型与类图、状态机与状态机图、活动图、交互图、包图、组件图和部署图等常用的模型和图,最后以一个学生选课系统的案例研究综合展示了几个模型。每章后面都附有思考题。本书以面向对象程序设计语言Java作为模型的实现语言,使用StarUML作为建模工具,不仅阐述UML图的语法,还强调模型与代码的映射。书后有三个附录: StarUML、UML标准版型和中英文术语对照。
本书可作为计算机专业高年级本科生和电子信息专业硕士学位研究生学习UML与面向对象建模的教材,也可作为软件开发人员自学UML与面向对象软件工程的参考书。
媒体评论
(1)以“控制复杂性”作为软件设计哲学理念,从依赖关系和可理解性两个角度组织内容。
(2)强调“从模型到代码的映射”,方便读者根据程序设计语言的语义理解图形元素的语义。
(3)区分建立UML模型和编辑UML图的工程过程,分离UML模型元素和图形元素。
详细讲解了UML建模所涉及的图形的语法和语义,配以案例分析,简单易懂;阐述了面向对象分析方法和设计方法及其模型表达,易于掌握与应用;结合“面向对象软件工程”的课程教学经验,提供了分析和设计案例以及课后思考题,便于自学。
— 没有更多了 —
以下为对购买帮助不大的评价