成功加入购物车
正版现货实拍,内页无字迹划线
温昱 著 / 电子工业出版社 / 2007-05 / 平装
售价 ¥ 30.00 6.7折
定价 ¥45.00
品相 九五品
优惠 满包邮
延迟发货说明
上书时间2020-09-16
卖家超过10天未登录
软件架构设计
本书紧紧围绕“软件架构设计”这一主题,立足实践解析了软件架构的概念,阐述了切实可行的软件架构设计方法,提供了可操作性极强的完整的架构设计过程。另外,本书从思维方式的突破、面向对象设计、IM,建模、过程与管理等关键过渡环节,为广大程序员的成长提供了切中肯綮的指导。本书可作为计算机软件专业本科生、研究生和软件工程硕士的软件架构设计教材,也可作为软件开发高级培训、软件开发管理培训的培训教材,更是第一线高级开发人员和开发管理人员的必备参考书。
温昱,资深咨询顾问,CSAI特聘高级顾问,软件架构专家,软件架构思想的传播者和积极推动者。十年系统规划、架构设计和研发管理经验,在金融、航空、多媒体、网络管理、中间件平台等领域负责和参与多个大型系统的规划、设计、开发与管理。在《程序员》杂志、IBMDeveloperWorks等媒体发表了《图论思想与UML应用》、《敏捷设计从理论到实践》、《随需而变的RUP》等文章数十篇。译著有《应用框架的设计与实现——NET平台》等。松耦合空间(www.ou-he.com)网站创办人。
目录第1章解析软件架构概念 31.1软件架构概念的分类 31.1.1组成派 41.1.2决策派 51.2软件架构概念大观 51.2.1Booch、Rumbaugh和Jacobson的定义 51.2.2Woods的观点 61.2.3Garlan和Shaw的定义 61.2.4Perry和Wolf的定义 61.2.5Boehm的定义 61.2.6IEEE的定义 61.2.7Bass的定义 61.3软件架构关注分割与交互 71.4软件架构是一系列有层次性的决策 81.5PMTool案例:领会软件架构概念 101.5.1案例故事 101.5.2软件架构概念的体现 131.5.3重要结论 141.6总结与强调 14第2章子系统、框架(Framework)与架构(Architecture) 152.1子系统和框架在架构设计中的地位 162.1.1关注点分离之道 162.1.2子系统和框架在架构设计中的地位 172.2子系统与软件架构 192.2.1不同粒度的软件单元 202.2.2子系统也有架构 212.2.3子系统不同,架构不同 21?2.2.4不同实践者眼中的粒度 232.3框架与软件架构 232.3.1框架的概念 232.3.2架构和框架的区别 242.3.3架构和框架的联系 252.3.4框架也有架构 262.4超越概念:立足实践理解架构 262.4.1理解架构 262.4.2回到实践 282.5专题:框架技术 292.5.1框架vs.类库 292.5.2框架的分类 302.5.3框架的开发过程 322.5.4如何实现框架中的扩展点 332.6总结与强调 36第3章软件架构的作用 373.1充分发挥软件架构的作用 373.2软件架构对新产品开发的作用 383.3软件架构对软件产品线开发的作用 403.4软件架构对软件维护的作用 423.5软件架构重构 423.6总结与强调 43第4章软件架构视图 474.1呼唤软件架构视图 474.1.1办公室里的争论 484.1.2呼唤软件架构视图 484.2软件架构为谁而设计 494.2.1为用户而设计 494.2.2为客户而设计 504.2.3为开发人员而设计 504.2.4为管理人员而设计 514.2.5总结 514.3引入软件架构视图 524.3.1生活中的“视图”运用 534.3.2什么是软件架构视图 544.3.3多组涉众,多个视图 544.4实践指南:逻辑架构与物理架构 554.4.1逻辑架构 564.4.2物理架构 574.4.3从逻辑架构和物理架构到设计实现 584.5设备调试系统案例:领会逻辑架构和物理架构 594.5.1设备调试系统案例简介 594.5.2逻辑架构设计 594.5.3物理架构设计 614.6总结与强调 62第5章架构设计的5视图法 635.1架构设计的5视图法 645.2实践中的5视图方法 665.3办公室里的争论:回顾与落实 675.4案例:再谈设备调试系统 675.4.1根据需求决定引入哪些架构视图 685.4.2开发架构设计 685.4.3运行架构设计 695.5总结与强调 71第6章从概念性架构到实际架构 736.1概念性架构 736.2实际架构 776.3从概念性架构到实际架构 786.4网络管理系统案例:从分层架构开始 786.4.1构思:概念性架构设计 786.4.2深入:实际架构设计 816.5总结与强调 82第7章如何进行成功的架构设计 837.1何谓成功的软件架构设计 837.2探究成功架构设计的关键要素 847.2.1是否遗漏了至关重要的非功能需求 847.2.2能否驯服数量巨大且频繁变化的需求 867.2.3能否从容设计软件架构的不同方面 867.2.4是否及早验证架构方案并做出了调整 877.3制定软件架构设计策略 877.3.1策略一:全面认识需求 887.3.2策略二:关键需求决定架构 897.3.3策略三:多视图探寻架构 897.3.4策略四:尽早验证架构 907.4总结与强调 90第8章软件架构要设计到什么程度 938.1软件架构要设计到什么程度 948.1.1分而治之的两种方式 948.1.2架构设计与详细设计 968.1.3软件架构是团队开发的基础 968.1.4架构设计要进行到什么程度 988.2高来高去式架构设计的症状 988.2.1缺失重要架构视图 998.2.2浅尝辄止、不够深入 1008.2.3名不副实的分层架构 1018.3如何克服高来高去症 1018.4网络管理系统案例:如何将架构设计落到实处 1028.4.1网管产品线的概念性架构 1028.4.2识别每一层中的功能模块 1028.4.3明确各层之间的交互接口 1038.4.4明确各层之间的交互机制 1048.4.5案例小结 1058.5总结与强调 105第9章软件架构设计过程 1079.1打造有效的架构设计过程 1079.1.1一般的软件过程 1079.1.2架构师自己的架构设计过程 1099.2软件架构设计过程解析 1119.2.1架构设计策略应成为一等公民 1119.2.2架构设计过程中的工作产品 1129.3总结与强调 114第10章需求分析 11510.1软件需求基础 11610.1.1什么是软件需求 11610.1.2需求捕获vs.需求分析vs.系统分析 11610.1.3需求捕获及其工作成果 11810.1.4需求分析及其工作成果 11810.1.5系统分析及其工作成果 11910.2需求分析在软件过程中所处的位置 12010.2.1概念化阶段所做的工作 12010.2.2需求分析所处的位置 12210.3架构师必须掌握的需求知识 12310.3.1软件需求的类型 12310.3.2各类需求对架构设计的不同影响 12710.3.3超市系统案例:领会需求类型的不同影响 12910.3.4各类需求的“易变更性”不同 13010.3.5质量属性需求与需求折衷 13210.4PMTool实战:需求分析 13510.4.1上游活动:确定项目愿景 13510.4.2第1步:从业务目标到特性列表 13510.4.3第2步:从特性列表到用例图 13610.4.4第3步:从用例图到用例规约 13810.4.5需求启发与需求验证 13910.4.6最终成果:《软件需求规格说明书》 14010.5总结与强调 141第11章专题:用例技术及应用 13311.1用例图vs.用例简述vs.用例规约vs.用例实现 13311.2储蓄系统案例:需求变化对用例的影响 13811.3用例技术应用指南 14011.4用例与需求捕获 14211.5用例与需求分析 14311.6用例与《软件需求规格说明书》 14411.7总结与强调 145第12章领域建模 14712.1领域模型基础知识 14712.1.1什么是领域模型 14812.1.2领域模型相关的UML图 14812.2领域建模在软件过程中所处的位置 14912.2.1领域建模的必要性:从需求分析的两个典型困难说起 14912.2.2领域建模与需求分析的关系 15112.2.3领域建模所处的位置 15212.3领域模型对软件架构的重要作用 15312.3.1配置管理工具案例:探索复杂问题、固化领域知识 15312.3.2人事管理系统案例:决定功能范围、影响可扩展性 15512.3.3在线拍卖系统案例:提供交流基础、促进有效沟通 15812.4领域模型vs.文字说明 16012.5PMTool实战:建立项目管理的领域模型 16112.5.1领域建模实录(1) 16112.5.2领域建模实录(2) 16412.6总结与强调 166第13章确定对软件架构关键的需求 16713.1虚拟高峰论坛:穷兵黩武还是择战而斗 16713.1.1需求是任何促成设计决策的因素 16813.1.2很少有开发者能奢侈地拥有一个稳定的需求集 16813.1.3关键性的第一步是缩小范围 16813.1.4要择战而斗 16813.1.5功能、质量和商业需求的某个集合塑造了构架 16913.2关键需求决定架构 16913.2.1实践中的常见问题 16913.2.2关键需求决定架构 17113.3确定关键需求在软件过程中所处的位置 17213.3.1对架构关键的需求vs.需求优先级 17213.3.2关键需求对后续活动的影响 17313.4什么是对软件架构关键的需求 17413.4.1关键的功能需求 17413.4.2关键的质量属性需求 17513.4.3关键的商业需求 17513.5如何确定对软件架构关键的需求 17613.5.1全面整理需求 17713.5.2分析约束性需求 17813.5.3确定关键功能需求 17813.5.4确定关键质量属性需求 17913.6PMTool实战:确定关键需求 18013.7总结与强调 180第14章概念性架构设计 18314.1概念性架构设计的步骤 18414.2鲁棒性分析 18514.2.1分析和设计之间的鸿沟 18514.2.2鲁棒图简介 18614.2.3从用例到鲁棒图 18714.3运用架构模式 18814.3.1架构模式简介 18814.3.2架构模式的经典分类 18914.3.3架构模式的现代分类 19014.3.4分层 19114.3.5MVC 19114.3.6微内核 19214.3.7基于元模型的架构 19314.3.8管道-过滤器 19414.4PMTool实战:概念性架构设计 19414.4.1进行鲁棒性分析 19414.4.2引入架构模式 19614.4.3质量属性分析 19614.4.4设计结果 19714.5总结与强调 198第15章质量属性分析 19915.1质量属性需求基础 20015.2质量属性分析的位置 20115.3利用“属性-场景-决策”表设计架构决策 20115.3.1概述 20115.3.2“属性-场景-决策”表方法 20215.3.3题外话:《需求文档》如何定义质量属性需求 20415.4PMTool实战:可扩展性设计 20415.5总结与强调 205第16章细化架构设计 20716.1架构细化在软件过程中所处的位置 20816.1.1我们走到哪了 20816.1.2运用基于5视图方法进行架构细化 20916.2设计逻辑架构 21016.2.1概述 21016.2.2识别通用机制 21016.3设计开发架构 21316.3.1概述 21316.3.2分层和分区 21316.4设计数据架构 21616.4.1概述 21616.4.2如何将OO模型映射为数据模型 21716.5设计运行架构 21916.5.1概述 21916.5.2运用主动类规划并发 22016.5.3应用协议的设计 22416.6设计物理架构 22416.6.1概述 22416.7注意满足所有约束性软件需求 22516.8PMTool实战:细化架构设计 22616.9总结与强调 229第17章实现并验证软件架构 23117.1基础知识 23217.1.1原型技术及分类 23217.1.2验证架构的两种方法 23517.2实现并验证软件架构的具体做法 23517.3总结与强调 237第18章MIME编码类案例:从面向过程到面向对象 23918.1设计目标 23918.2MIME编码基础知识 24018.3MIME编码类的设计过程 24018.3.1面向过程的设计方案 24018.3.2转向面向对象设计 24218.3.3面向对象设计方案的确定 24518.3.4TemplateMethod和Strategy模式的对比 248第19章突破OOP思维:继承在OOD中的应用 24919.1从一则禅师语录说起 24919.1.1见继承是继承——程序员境界 25019.1.2见继承不是继承——成长境界 25019.1.3见继承只是继承——设计师境界 25019.2从OOD层面认识继承 25019.3针对接口编程——隔离变化 25119.3.1相关理论 25119.3.2针对接口编程举例——用于架构设计 25119.3.3针对接口编程举例——用于类设计 25319.4混入类——更好的重用性 25419.4.1相关理论 25419.4.2混入类举例 25419.5基于角色的设计——使用角色组装协作 25519.5.1相关理论 25519.5.2基于角色的设计举例 256第20章细微见真章:耦合其实并不空洞 25720.1顺序耦合性简介 25720.2案例研究:顺序耦合性Bug一例 25720.2.1项目简介 25820.2.2新的需求 25820.2.3发现顺序耦合性Bug 25920.2.4跟踪调试 25920.2.5分析原因 26120.2.6解决策略 26120.2.7运用重构的“ExtractMethod”成例 26120.2.8运用重构的“HideMethod”成例 26220.2.9运用重构的“IntroduceParameterObject”成例 26220.2.10其它改进 262第21章敏捷设计:从理论到实践 26521.1换个角度考察依赖 26621.1.1依赖的概念 26621.1.2从会不会造成“实际危害”的角度考察依赖 26621.2良性依赖原则 26621.2.1依赖是不可避免的 26621.2.2重要的是如何务实地应付变化 26721.3案例:需求改变引起良性依赖变成恶性依赖 26721.4案例:隔离第三方SDK可能造成的冲击 26921.5案例:对具体类的良性依赖 27121.6总结:如何处理好依赖关系 273第22章基于角色的设计:从理论到实践 27522.1基于角色的设计理论 27622.2基于角色的设计与团队开发 27622.3基于角色的设计实践 27722.4基于角色的设计案例 27922.4.1项目简介 27922.4.2通过基于角色的设计组织子系统之间的协作 27922.4.3通过基于角色的设计组织同一子系统内不同模块之间的协作 28022.5基于角色的设计与面向对象分析 281第23章超越设计模式:理解和运用更多模式 28323.1关于模式的两个问题 28323.2模式的正交分类法 28423.2.1正交思维 28423.2.2正交思维用于模式分类 28523.3专攻性能:性能模式简介 28723.4模型驱动开发的方方面面:MDD模式简介 28923.5总结:拥抱模式 290第24章如此轻松:立足图论学UML 29124.1管窥UML中的OO思想 29224.1.1一道笔试题的故事 29224.1.2UML背后的思想 29324.2图的定义与UML应用 29424.2.1图的定义 29424.2.2图的定义的UML应用——UML的图论观点 29524.2.3图的定义的UML应用——关联类语法的理解 29624.2.4图的定义的UML应用——说说序列图 29724.3有向边与UML应用 29824.3.1有向边 29824.3.2有向边的UML应用——依赖关系 29824.3.3有向边的UML应用——泛化、实现和关联的依赖思想 30024.3.4有向边的UML应用——一个例子 30024.4着色顶点与UML应用 30124.4.1着色顶点 30124.4.2着色顶点的UML应用——通过颜色为图元分类 30224.4.3着色顶点的UML应用——UML彩色建模方法介绍 30324.5着色边与UML应用 30524.6图的同构与UML应用 30624.6.1图的同构 30624.6.2图的同构的UML应用——UML风格 306第25章理解软件过程:解析RUP核心概念 30925.1架构师必须了解软件过程 30925.1.1架构师的工作职责 30925.1.2架构师必须了解软件过程 31025.2RUP实践中的常见问题 31025.3RUP核心概念解析 31125.3.1一图胜千言 31125.3.2角色执行活动,活动生产工件 31125.3.3阶段和迭代:提供不同级别的决策时机 31225.3.4配置和变更管理支持迭代式的基于基线的开发 31425.3.5发布是什么,发布不是什么 315第26章海阔凭鱼跃:通盘理解软件工程 31726.1什么是软件工程概念模型 31726.2一个精简的软件工程概念模型 31726.3一个细化的软件工程概念模型 31826.3.1模型概述 31926.3.2方法论 31926.3.3过程 31926.3.4目标 32026.3.5项目 32026.3.6其他 32126.4软件工程概念模型的具体应用 32126.4.1搞清楚Agile是过程还是方法论 32126.4.2为CMM定位 32226.4.3理解RUP定制 32326.5总结:软件工程概念模型的启示 32326.5.1软件工程,一门实践的科学 32326.5.2软件过程,合适的才是最好的 32426.5.3对个人的启示 32426.5.4呼唤高层次人才 324
展开全部
配送说明
...
相似商品
为你推荐
开播时间:09月02日 10:30