软件架构设计
¥
10
2.2折
¥
45
九五品
仅1件
作者温昱 著
出版社电子工业出版社
出版时间2007-05
版次1
装帧平装
货号8148
上书时间2024-09-19
商品详情
- 品相描述:九五品
图书标准信息
-
作者
温昱 著
-
出版社
电子工业出版社
-
出版时间
2007-05
-
版次
1
-
ISBN
9787121039461
-
定价
45.00元
-
装帧
平装
-
开本
其他
-
纸张
胶版纸
-
页数
340页
-
字数
460千字
- 【内容简介】
-
本书紧紧围绕“软件架构设计”这一主题,立足实践解析了软件架构的概念,阐述了切实可行的软件架构设计方法,提供了可操作性极强的完整的架构设计过程。另外,本书从思维方式的突破、面向对象设计、IM,建模、过程与管理等关键过渡环节,为广大程序员的成长提供了切中肯綮的指导。本书可作为计算机软件专业本科生、研究生和软件工程硕士的软件架构设计教材,也可作为软件开发高级培训、软件开发管理培训的培训教材,更是第一线高级开发人员和开发管理人员的必备参考书。
- 【作者简介】
-
温昱,资深咨询顾问,CSAI特聘高级顾问,软件架构专家,软件架构思想的传播者和积极推动者。十年系统规划、架构设计和研发管理经验,在金融、航空、多媒体、网络管理、中间件平台等领域负责和参与多个大型系统的规划、设计、开发与管理。在《程序员》杂志、IBMDeveloperWorks等媒体发表了《图论思想与UML应用》、《敏捷设计从理论到实践》、《随需而变的RUP》等文章数十篇。译著有《应用框架的设计与实现——NET平台》等。松耦合空间(www.ou-he.com)网站创办人。
- 【目录】
-
目录
第1章解析软件架构概念3
1.1软件架构概念的分类3
1.1.1组成派4
1.1.2决策派5
1.2软件架构概念大观5
1.2.1Booch、Rumbaugh和Jacobson的定义5
1.2.2Woods的观点6
1.2.3Garlan和Shaw的定义6
1.2.4Perry和Wolf的定义6
1.2.5Boehm的定义6
1.2.6IEEE的定义6
1.2.7Bass的定义6
1.3软件架构关注分割与交互7
1.4软件架构是一系列有层次性的决策8
1.5PMTool案例:领会软件架构概念10
1.5.1案例故事10
1.5.2软件架构概念的体现13
1.5.3重要结论14
1.6总结与强调14
第2章子系统、框架(Framework)与架构(Architecture)15
2.1子系统和框架在架构设计中的地位16
2.1.1关注点分离之道16
2.1.2子系统和框架在架构设计中的地位17
2.2子系统与软件架构19
2.2.1不同粒度的软件单元20
2.2.2子系统也有架构21
2.2.3子系统不同,架构不同21
?2.2.4不同实践者眼中的粒度23
2.3框架与软件架构23
2.3.1框架的概念23
2.3.2架构和框架的区别24
2.3.3架构和框架的联系25
2.3.4框架也有架构26
2.4超越概念:立足实践理解架构26
2.4.1理解架构26
2.4.2回到实践28
2.5专题:框架技术29
2.5.1框架vs.类库29
2.5.2框架的分类30
2.5.3框架的开发过程32
2.5.4如何实现框架中的扩展点33
2.6总结与强调36
第3章软件架构的作用37
3.1充分发挥软件架构的作用37
3.2软件架构对新产品开发的作用38
3.3软件架构对软件产品线开发的作用40
3.4软件架构对软件维护的作用42
3.5软件架构重构42
3.6总结与强调43
第4章软件架构视图47
4.1呼唤软件架构视图47
4.1.1办公室里的争论48
4.1.2呼唤软件架构视图48
4.2软件架构为谁而设计49
4.2.1为用户而设计49
4.2.2为客户而设计50
4.2.3为开发人员而设计50
4.2.4为管理人员而设计51
4.2.5总结51
4.3引入软件架构视图52
4.3.1生活中的“视图”运用53
4.3.2什么是软件架构视图54
4.3.3多组涉众,多个视图54
4.4实践指南:逻辑架构与物理架构55
4.4.1逻辑架构56
4.4.2物理架构57
4.4.3从逻辑架构和物理架构到设计实现58
4.5设备调试系统案例:领会逻辑架构和物理架构59
4.5.1设备调试系统案例简介59
4.5.2逻辑架构设计59
4.5.3物理架构设计61
4.6总结与强调62
第5章架构设计的5视图法63
5.1架构设计的5视图法64
5.2实践中的5视图方法66
5.3办公室里的争论:回顾与落实67
5.4案例:再谈设备调试系统67
5.4.1根据需求决定引入哪些架构视图68
5.4.2开发架构设计68
5.4.3运行架构设计69
5.5总结与强调71
第6章从概念性架构到实际架构73
6.1概念性架构73
6.2实际架构77
6.3从概念性架构到实际架构78
6.4网络管理系统案例:从分层架构开始78
6.4.1构思:概念性架构设计78
6.4.2深入:实际架构设计81
6.5总结与强调82
第7章如何进行成功的架构设计83
7.1何谓成功的软件架构设计83
7.2探究成功架构设计的关键要素84
7.2.1是否遗漏了至关重要的非功能需求84
7.2.2能否驯服数量巨大且频繁变化的需求86
7.2.3能否从容设计软件架构的不同方面86
7.2.4是否及早验证架构方案并做出了调整87
7.3制定软件架构设计策略87
7.3.1策略一:全面认识需求88
7.3.2策略二:关键需求决定架构89
7.3.3策略三:多视图探寻架构89
7.3.4策略四:尽早验证架构90
7.4总结与强调90
第8章软件架构要设计到什么程度93
8.1软件架构要设计到什么程度94
8.1.1分而治之的两种方式94
8.1.2架构设计与详细设计96
8.1.3软件架构是团队开发的基础96
8.1.4架构设计要进行到什么程度98
8.2高来高去式架构设计的症状98
8.2.1缺失重要架构视图99
8.2.2浅尝辄止、不够深入100
8.2.3名不副实的分层架构101
8.3如何克服高来高去症101
8.4网络管理系统案例:如何将架构设计落到实处102
8.4.1网管产品线的概念性架构102
8.4.2识别每一层中的功能模块102
8.4.3明确各层之间的交互接口103
8.4.4明确各层之间的交互机制104
8.4.5案例小结105
8.5总结与强调105
第9章软件架构设计过程107
9.1打造有效的架构设计过程107
9.1.1一般的软件过程107
9.1.2架构师自己的架构设计过程109
9.2软件架构设计过程解析111
9.2.1架构设计策略应成为一等公民111
9.2.2架构设计过程中的工作产品112
9.3总结与强调114
第10章需求分析115
10.1软件需求基础116
10.1.1什么是软件需求116
10.1.2需求捕获vs.需求分析vs.系统分析116
10.1.3需求捕获及其工作成果118
10.1.4需求分析及其工作成果118
10.1.5系统分析及其工作成果119
10.2需求分析在软件过程中所处的位置120
10.2.1概念化阶段所做的工作120
10.2.2需求分析所处的位置122
10.3架构师必须掌握的需求知识123
10.3.1软件需求的类型123
10.3.2各类需求对架构设计的不同影响127
10.3.3超市系统案例:领会需求类型的不同影响129
10.3.4各类需求的“易变更性”不同130
10.3.5质量属性需求与需求折衷132
10.4PMTool实战:需求分析135
10.4.1上游活动:确定项目愿景135
10.4.2第1步:从业务目标到特性列表135
10.4.3第2步:从特性列表到用例图136
10.4.4第3步:从用例图到用例规约138
10.4.5需求启发与需求验证139
10.4.6最终成果:《软件需求规格说明书》140
10.5总结与强调141
第11章专题:用例技术及应用133
11.1用例图vs.用例简述vs.用例规约vs.用例实现133
11.2储蓄系统案例:需求变化对用例的影响138
11.3用例技术应用指南140
11.4用例与需求捕获142
11.5用例与需求分析143
11.6用例与《软件需求规格说明书》144
11.7总结与强调145
第12章领域建模147
12.1领域模型基础知识147
12.1.1什么是领域模型148
12.1.2领域模型相关的UML图148
12.2领域建模在软件过程中所处的位置149
12.2.1领域建模的必要性:从需求分析的两个典型困难说起149
12.2.2领域建模与需求分析的关系151
12.2.3领域建模所处的位置152
12.3领域模型对软件架构的重要作用153
12.3.1配置管理工具案例:探索复杂问题、固化领域知识153
12.3.2人事管理系统案例:决定功能范围、影响可扩展性155
12.3.3在线拍卖系统案例:提供交流基础、促进有效沟通158
12.4领域模型vs.文字说明160
12.5PMTool实战:建立项目管理的领域模型161
12.5.1领域建模实录(1)161
12.5.2领域建模实录(2)164
12.6总结与强调166
第13章确定对软件架构关键的需求167
13.1虚拟高峰论坛:穷兵黩武还是择战而斗167
13.1.1需求是任何促成设计决策的因素168
13.1.2很少有开发者能奢侈地拥有一个稳定的需求集168
13.1.3关键性的第一步是缩小范围168
13.1.4要择战而斗168
13.1.5功能、质量和商业需求的某个集合塑造了构架169
13.2关键需求决定架构169
13.2.1实践中的常见问题169
13.2.2关键需求决定架构171
13.3确定关键需求在软件过程中所处的位置172
13.3.1对架构关键的需求vs.需求优先级172
13.3.2关键需求对后续活动的影响173
13.4什么是对软件架构关键的需求174
13.4.1关键的功能需求174
13.4.2关键的质量属性需求175
13.4.3关键的商业需求175
13.5如何确定对软件架构关键的需求176
13.5.1全面整理需求177
13.5.2分析约束性需求178
13.5.3确定关键功能需求178
13.5.4确定关键质量属性需求179
13.6PMTool实战:确定关键需求180
13.7总结与强调180
第14章概念性架构设计183
14.1概念性架构设计的步骤184
14.2鲁棒性分析185
14.2.1分析和设计之间的鸿沟185
14.2.2鲁棒图简介186
14.2.3从用例到鲁棒图187
14.3运用架构模式188
14.3.1架构模式简介188
14.3.2架构模式的经典分类189
14.3.3架构模式的现代分类190
14.3.4分层191
14.3.5MVC191
14.3.6微内核192
14.3.7基于元模型的架构193
14.3.8管道-过滤器194
14.4PMTool实战:概念性架构设计194
14.4.1进行鲁棒性分析194
14.4.2引入架构模式196
14.4.3质量属性分析196
14.4.4设计结果197
14.5总结与强调198
第15章质量属性分析199
15.1质量属性需求基础200
15.2质量属性分析的位置201
15.3利用“属性-场景-决策”表设计架构决策201
15.3.1概述201
15.3.2“属性-场景-决策”表方法202
15.3.3题外话:《需求文档》如何定义质量属性需求204
15.4PMTool实战:可扩展性设计204
15.5总结与强调205
第16章细化架构设计207
16.1架构细化在软件过程中所处的位置208
16.1.1我们走到哪了208
16.1.2运用基于5视图方法进行架构细化209
16.2设计逻辑架构210
16.2.1概述210
16.2.2识别通用机制210
16.3设计开发架构213
16.3.1概述213
16.3.2分层和分区213
16.4设计数据架构216
16.4.1概述216
16.4.2如何将OO模型映射为数据模型217
16.5设计运行架构219
16.5.1概述219
16.5.2运用主动类规划并发220
16.5.3应用协议的设计224
16.6设计物理架构224
16.6.1概述224
16.7注意满足所有约束性软件需求225
16.8PMTool实战:细化架构设计226
16.9总结与强调229
第17章实现并验证软件架构231
17.1基础知识232
17.1.1原型技术及分类232
17.1.2验证架构的两种方法235
17.2实现并验证软件架构的具体做法235
17.3总结与强调237
第18章MIME编码类案例:从面向过程到面向对象239
18.1设计目标239
18.2MIME编码基础知识240
18.3MIME编码类的设计过程240
18.3.1面向过程的设计方案240
18.3.2转向面向对象设计242
18.3.3面向对象设计方案的确定245
18.3.4TemplateMethod和Strategy模式的对比248
第19章突破OOP思维:继承在OOD中的应用249
19.1从一则禅师语录说起249
19.1.1见继承是继承——程序员境界250
19.1.2见继承不是继承——成长境界250
19.1.3见继承只是继承——设计师境界250
19.2从OOD层面认识继承250
19.3针对接口编程——隔离变化251
19.3.1相关理论251
19.3.2针对接口编程举例——用于架构设计251
19.3.3针对接口编程举例——用于类设计253
19.4混入类——更好的重用性254
19.4.1相关理论254
19.4.2混入类举例254
19.5基于角色的设计——使用角色组装协作255
19.5.1相关理论255
19.5.2基于角色的设计举例256
第20章细微见真章:耦合其实并不空洞257
20.1顺序耦合性简介257
20.2案例研究:顺序耦合性Bug一例257
20.2.1项目简介258
20.2.2新的需求258
20.2.3发现顺序耦合性Bug259
20.2.4跟踪调试259
20.2.5分析原因261
20.2.6解决策略261
20.2.7运用重构的“ExtractMethod”成例261
20.2.8运用重构的“HideMethod”成例262
20.2.9运用重构的“IntroduceParameterObject”成例262
20.2.10其它改进262
第21章敏捷设计:从理论到实践265
21.1换个角度考察依赖266
21.1.1依赖的概念266
21.1.2从会不会造成“实际危害”的角度考察依赖266
21.2良性依赖原则266
21.2.1依赖是不可避免的266
21.2.2重要的是如何务实地应付变化267
21.3案例:需求改变引起良性依赖变成恶性依赖267
21.4案例:隔离第三方SDK可能造成的冲击269
21.5案例:对具体类的良性依赖271
21.6总结:如何处理好依赖关系273
第22章基于角色的设计:从理论到实践275
22.1基于角色的设计理论276
22.2基于角色的设计与团队开发276
22.3基于角色的设计实践277
22.4基于角色的设计案例279
22.4.1项目简介279
22.4.2通过基于角色的设计组织子系统之间的协作279
22.4.3通过基于角色的设计组织同一子系统内不同模块之间的协作280
22.5基于角色的设计与面向对象分析281
第23章超越设计模式:理解和运用更多模式283
23.1关于模式的两个问题283
23.2模式的正交分类法284
23.2.1正交思维284
23.2.2正交思维用于模式分类285
23.3专攻性能:性能模式简介287
23.4模型驱动开发的方方面面:MDD模式简介289
23.5总结:拥抱模式290
第24章如此轻松:立足图论学UML291
24.1管窥UML中的OO思想292
24.1.1一道笔试题的故事292
24.1.2UML背后的思想293
24.2图的定义与UML应用294
24.2.1图的定义294
24.2.2图的定义的UML应用——UML的图论观点295
24.2.3图的定义的UML应用——关联类语法的理解296
24.2.4图的定义的UML应用——说说序列图297
24.3有向边与UML应用298
24.3.1有向边298
24.3.2有向边的UML应用——依赖关系298
24.3.3有向边的UML应用——泛化、实现和关联的依赖思想300
24.3.4有向边的UML应用——一个例子300
24.4着色顶点与UML应用301
24.4.1着色顶点301
24.4.2着色顶点的UML应用——通过颜色为图元分类302
24.4.3着色顶点的UML应用——UML彩色建模方法介绍303
24.5着色边与UML应用305
24.6图的同构与UML应用306
24.6.1图的同构306
24.6.2图的同构的UML应用——UML风格306
第25章理解软件过程:解析RUP核心概念309
25.1架构师必须了解软件过程309
25.1.1架构师的工作职责309
25.1.2架构师必须了解软件过程310
25.2RUP实践中的常见问题310
25.3RUP核心概念解析311
25.3.1一图胜千言311
25.3.2角色执行活动,活动生产工件311
25.3.3阶段和迭代:提供不同级别的决策时机312
25.3.4配置和变更管理支持迭代式的基于基线的开发314
25.3.5发布是什么,发布不是什么315
第26章海阔凭鱼跃:通盘理解软件工程317
26.1什么是软件工程概念模型317
26.2一个精简的软件工程概念模型317
26.3一个细化的软件工程概念模型318
26.3.1模型概述319
26.3.2方法论319
26.3.3过程319
26.3.4目标320
26.3.5项目320
26.3.6其他321
26.4软件工程概念模型的具体应用321
26.4.1搞清楚Agile是过程还是方法论321
26.4.2为CMM定位322
26.4.3理解RUP定制323
26.5总结:软件工程概念模型的启示323
26.5.1软件工程,一门实践的科学323
26.5.2软件过程,合适的才是最好的324
26.5.3对个人的启示324
26.5.4呼唤高层次人才324
点击展开
点击收起
— 没有更多了 —
以下为对购买帮助不大的评价