书籍详情

恰如其分的软件架(软件架构设计新经典)

恰如其分的软件架(软件架构设计新经典)

作者:George Fairbanks 著

出版社:华中科技大学出版社

出版时间:2013-09-01

ISBN:9787560990750

定价:¥88.00

购买这本书可以去
内容简介
  本书描述了一种恰如其分的架构设计方法。作者建议根据项目面临的风险来调整架构设计的成本,并从多个视角阐述了软件架构的建模过程和方法,包括用例模型、概念模型、域模型、设计模型和代码模型等。本书不仅介绍方法,而且还对方法和概念进行了归类和阐述,将软件架构设计融入开发实践中,与敏捷开发方法有机地结合在一起,适合普通程序员阅读。
作者简介
  George Fairbanks在卡内基·梅隆大学获得软件工程专业博士学位,现任RhinoResearch公司董事长。RhinoResearch是一家专门提供软件开发培训及咨询的公司,总部设在美国科罗拉多州博尔德市。张逸是ThoughtWorks高级咨询师,程序员。InfoQ中文站编辑。著译作包括《软件设计精要与模式》《WCF服务编程》《Java设计模式》以及评注版《重构:改善既有代码的设计》。目前居住于成都。倪健是eBaoTech应用架构师,程序员。著作包括《简单之美:软件开发实践者的思考》《IT项目管理那些事儿》(与人合著)。目前居住于上海。
目录
第1章  概述 1<br>1.1  分治、知识与抽象 2<br>1.2  软件架构的三个案例 3<br>1.3  反思 5<br>1.4  视角转换 6<br>1.5  架构师构建架构 7<br>1.6  风险驱动的软件架构 8<br>1.7  敏捷开发者的架构 9<br>1.8  关于本书 10<br>第2章  软件架构 15<br>2.1  何为软件架构? 16<br>2.2  软件架构为何重要 18<br>2.3  架构何时重要? 22<br>2.4  推定架构 23<br>2.5  如何运用软件架构? 24<br>2.6  架构无关的设计 25<br>2.7  专注架构的设计 26<br>2.8  提升架构的设计 27<br>2.9  大型组织中的架构 30<br>2.10  结论 31<br>2.11  延伸阅读 32<br>第3章  风险驱动模型 35<br>3.1  风险驱动模型是什么? 37<br>3.2  你现在采用风险驱动了吗? 38<br>3.3  风险 39<br>3.4  技术 42<br>3.5  选择技术的指导原则 44<br>3.6  何时停止 47<br>3.7  计划式设计与演进式设计 48<br>3.8  软件开发过程 51<br>3.9  理解过程变化 53<br>3.10  风险驱动模型与软件开发过程 55<br>3.11  应用于敏捷过程 56<br>3.12  风险与架构重构 58<br>3.13  风险驱动模型的替代方案 58<br>3.14  结论 60<br>3.15  延伸阅读 61<br>第4章  实例:家庭媒体播放器 65<br>4.1  团队沟通 67<br>4.2  COTS组件的集成 75<br>4.3  元数据一致性 81<br>4.4  结论 86<br>第5章  建模建议 89<br>5.1  专注于风险 89<br>5.2  理解你的架构 90<br>5.3  传播架构技能 91<br>5.4  作出合理的架构决策 92<br>5.5  避免预先大量设计 93<br>5.6  避免自顶向下设计 95<br>5.7  余下的挑战 95<br>5.8  特性和风险:一个故事 97<br>第6章  工程师使用模型 103<br>6.1  规模与复杂度需要抽象 104<br>6.2  抽象提供洞察力和解决手段 105<br>6.3  分析系统质量 105<br>6.4  模型忽略细节 106<br>6.5  模型能够增强推理 107<br>6.6  提问在前,建模在后 108<br>6.7  小结 108<br>6.8  延伸阅读 109<br>第7章  软件架构的概念模型 111<br>7.1  规范化模型结构 114<br>7.2  领域模型、设计模型和代码模型 115<br>7.3  指定与细化关系 116<br>7.4  主模型的视图 118<br>7.5  组织模型的其他方式 121<br>7.6  业务建模 121<br>7.7  UML的用法 122<br>7.8  小结 123<br>7.9  延伸阅读 123<br>第8章  领域模型 127<br>8.1  领域与架构的关系 128<br>8.2  信息模型 131<br>8.3  导航和不变量 133<br>8.4  快照 134<br>8.5  功能场景 135<br>8.6  小结 136<br>8.7  延伸阅读 137<br>第9章  设计模型 139<br>9.1  设计模型 140<br>9.2  边界模型 141<br>9.3  内部模型 141<br>9.4  质量属性 142<br>9.5  Yinzer系统的设计之旅 143<br>9.6  视图类型 157<br>9.7  动态架构模型 161<br>9.8  架构描述语言 162<br>9.9  小结 163<br>9.10  深入阅读 164<br> <br>第10章  代码模型 167<br>10.1  模型-代码差异 167<br>10.2  一致性管理 171<br>10.3  架构明显的编码风格 174<br>10.4  在代码中表达设计意图 175<br>10.5  模型嵌入代码原理 177<br>10.6  表达什么 178<br>10.7  在代码中表达设计意图的模式 180<br>10.8  电子邮件处理系统预演 187<br>10.9  小结 193<br>第11章  封装和分割 195<br>11.1  多层级故事 195<br>11.2  层级和分割 197<br>11.3  分解策略 199<br>11.4  有效封装 203<br>11.5  创建封装接口 206<br>11.6  小结 210<br>11.7  深入阅读 210<br>第12章  模型元素 213<br>12.1  和部署相关的元素 214<br>12.2  组件 215<br>12.3  组件装配 219<br>12.4  连接器 223<br>12.5  设计决策 233<br>12.6  功能场景 234<br>12.7  (不变量(约束) 239<br>12.8  模块 239<br>12.9  端口 241<br>12.10  质量属性 246<br>12.11  质量属性场景 249<br>12.12  职责 251<br>12.13  权衡 252<br>12.14  小结 253<br>第13章  模型关系 255<br>13.1  投影(视图)关系 256<br>13.2  分割关系 261<br>13.3  组合关系 261<br>13.4  分类关系 261<br>13.5  泛化关系 262<br>13.6  指定关系 263<br>13.7  细化关系 264<br>13.8  绑定关系 268<br>13.9  依赖关系 269<br>13.10  使用关系 269<br>13.11  小结 270<br>13.12  深入阅读 271<br>第14章  架构风格 273<br>14.1  优势 274<br>14.2  柏拉图式风格对体验式风格 275<br>14.3  约束和以架构为中心的设计 276<br>14.4  模式对风格 277<br>14.5  风格目录 277<br>14.6  分层风格 277<br>14.7  大泥球风格 280<br>14.8  管道-过滤器风格 281<br>14.9  批量顺序处理风格 283<br>14.10  以模型为中心的风格 285<br>14.11  分发-订阅风格 286<br>14.12  客户端-服务器风格和多层 288<br>14.13  对等风格 290<br>14.14  map-reduce风格 291<br>14.15  镜像,支架和农场风格 293<br>14.16  小结 294<br>14.17  深入阅读 295<br>第15章  使用架构模型 297<br>15.1  理想的模型特性 297<br>15.2  和视图一起工作 303<br>15.3  改善视图质量 306<br>15.4  提高图的质量 310<br>15.5  测试和证明 312<br>15.6  分析架构模型 312<br>15.7  架构不匹配 318<br>15.8  选择你的抽象级别 319<br>15.9  规划用户界面 320<br>15.10  指定性模型对描述性模型 320<br>15.11  对现有系统进行建模 320<br>15.12  小结 322<br>15.13  深入阅读 323<br>第16章  结论 325<br>16.1  挑战 326<br>16.2  聚焦质量属性 330<br>16.3  解决问题,而不是仅仅对它们建模 331<br>16.4  使用导轨一样的约束 332<br>16.5  使用标准架构抽象 333<br>术语表 335<br>文献 347<br>索引 355
猜您喜欢

读书导航