新書推薦:
《
文本的密码:社会语境中的宋代文学
》
售價:NT$
306.0
《
启微·狂骉年代:西洋赛马在中国
》
售價:NT$
357.0
《
有趣的中国古建筑
》
售價:NT$
305.0
《
十一年夏至
》
售價:NT$
347.0
《
如何打造成功的商业赛事
》
售價:NT$
408.0
《
万千教育学前·透视学前儿童的发展:解析幼儿教师常问的那些问题
》
售價:NT$
265.0
《
慈悲与玫瑰
》
售價:NT$
398.0
《
启蒙的辩证:哲学的片简(法兰克福学派哲学经典,批判理论重要文本)
》
售價:NT$
347.0
|
內容簡介: |
本书给出一种新的定量的架构模拟方法来讨论软件设计和架构的质量和属性,让软件工程师在早期设计阶段就能够建模和评估软件服务的质量。书中提出了*个针对软件架构的模拟器Palladio,向学生和专业人员展示了为了分析软件服务的性能如何建模可复用、参数化的组件以及可配置和部署的系统。。
|
關於作者: |
拉尔夫·H.雷乌斯纳(Ralf H. Reussner博士,德国卡尔斯鲁厄理工学院软件工程教授,软件设计与质量研究院主任,信息技术研究中心执行董事。
斯特芬•贝克尔(Steffen Becker)德国开姆尼茨工业大学软件工程教授。
詹斯•哈佩(Jens Happe) SAP公司高级研究员,软件初创公司avenyou的联合创始人。
罗伯特•海因里希(Robert Heinrich)德国卡尔斯鲁厄理工学院软件设计与质量研究院持续质量工程研究组主管。
安妮•科齐奥勒克(Anne Koziolek)德国卡尔斯鲁厄理工学院初级教授,软件设计与质量研究院架构驱动需求工程研究组主管。
海科•科齐奥勒克(Heiko Koziolek)ABB公司研究院首席科学家和全球化研究领域协调员。
马克斯•克莱默(Max Kramer)德国卡尔斯鲁厄理工学院软件设计和质量研究院科学家。
克劳斯•克罗曼(Klaus Krogmann)CitrixGetGo质量工程平台经理。
|
目錄:
|
出版者的话
译者序
推荐序
前言
第一部分 软件架构的工程方法
第1章 引言2
1.1 软件设计的工程方法4
1.2 软件架构的角色5
1.3 软件组件的角色5
1.4 Palladio方法6
1.4.1 Palladio方法可以预测哪些质量属性和度量值6
1.4.2 Palladio方法由哪些部分组成7
1.4.3 和遗产系统的关系8
1.5 本书结构和阅读路径8
第2章 Palladio方法简介10
2.1 Media Store10
2.1.1 Media Store需求10
2.1.2 Media Store用户交互11
2.1.3 初始设计12
2.1.4 初步设计决策13
2.2 Palladio的角色14
2.3 仿真结果15
2.4 容量规划16
2.5 Media Store:可选的设计18
2.5.1 将ReEncoder组件分配到另一个服务器19
2.5.2 增加缓存组件20
2.5.3 替换TagWatermarking和ReEncoder组件21
2.6 结论22
第二部分 架构建模
第3章 架构级视点24
3.1 概述24
3.2 模型、视点、视图类型和视图25
3.2.1 模型和建模语言25
3.2.2 视图、视图类型和视点27
3.2.3 架构视点28
3.3 结构视点29
3.3.1 组件存储库29
3.3.2 装配32
3.3.3 组件类型层次结构33
3.4 行为视点34
3.4.1 组件内部行为34
3.4.2 组件间行为35
3.4.3 场景行为36
3.5 部署视点37
3.6 决策视点38
3.6.1 决策类型分类39
3.6.2 建模决策39
3.6.3 决策视图类型40
3.6.4 扩展示例44
3.7 问题和练习45
3.7.1 问题45
3.7.2 练习45
3.8 拓展阅读46
3.9 小贴士47
第4章 架构重用48
4.1 术语48
4.2 组件和接口重用49
4.3 架构风格重用52
4.4 架构模式重用53
4.5 参考架构重用54
4.6 产品线架构54
4.6.1 产品合成55
4.6.2 产品配置55
4.6.3 上下文解释56
4.7 问题和练习56
4.7.1 问题56
4.7.2 练习56
4.8 拓展阅读56
4.9 小贴士57
第三部分 架构分析
第5章 质量建模60
5.1 质量属性60
5.1.1 性能60
5.1.2 可靠性61
5.1.3 成本61
5.2 目标驱动方法61
5.2.1 实用主义62
5.2.2 表示62
5.2.3 简化63
5.3 组件质量64
5.4 使用画像及其传播67
5.5 执行环境69
5.6 领域特定质量建模71
5.7 整体Palladio模型装配72
5.8 问题和练习72
5.8.1 问题72
5.8.2 练习73
5.9 拓展阅读74
5.10 小贴士74
第6章 数据获取75
6.1 概述75
6.2 真实用户和应用程序性能监控78
6.2.1 使用和适用性78
6.2.2 数据解释79
6.2.3 常用工具80
6.2.4 示例81
6.2.5 讨论81
6.3 资源需求估算81
6.3.1 使用和适用性81
6.3.2 数据解释82
6.3.3 常用工具83
6.3.4 示例84
6.3.5 讨论84
6.4 估算失效概率84
6.4.1 使用和适用性85
6.4.2 数据解释86
6.4.3 常用工具86
6.4.4 示例86
6.4.5 讨论86
6.5 常见的缺陷87
6.5.1 错误的资源需求87
6.5.2 不准确的计时器87
6.5.3 缺失资源87
6.5.4 没有验证87
6.5.5 太多细节88
6.6 问题和练习88
6.6.1 问题88
6.6.2 练习88
6.7 拓展阅读89
6.8 小贴士90
第7章 回答设计问题?91
7.1 设计问题91
7.1.1 常见的质量设计问题91
7.1.2 其他性能设计问题 92
7.1.3 其他可靠性设计问题92
7.2 理解结果 93
7.2.1 理解性能结果 93
7.2.2 理解可靠性结果101
7.3 提高质量的策略103
7.3.1 性能策略103
7.3.2 可靠性策略104
7.4 自动搜索更好的架构105
7.4.1 评估标准105
7.4.2 自由度105
7.4.3 PerOpteryx:自动化探索106
7.5 问题和练习108
7.5.1 问题108
7.5.2 练习108
7.6 拓展阅读108
7.7 小贴士109
第8章 在后台110
8.1 质量分析工具110
8.2 Palladio模型的性能模拟112
8.2.1 工作负载生成器112
8.2.2 模拟用户112
8.2.3 模拟系统请求113
8.2.4 模拟资源114
8.2.5 模拟调度策略114
8.2.6 收集度量数据116
8.3 性能分析工具119
8.3.1 SimuCom:生成式模拟119
8.3.2 EventSim:解释式模拟120
8.3.3 SimuLizar:模拟中的自适应120
8.3.4 ProtoCom:性能原型开发121
8.3.5 进一步的分析工具121
8.3.6 选择性能分析工具122
8.4 可靠性分析123
8.4.1 求解参数依赖性123
8.4.2 确定可能的物理系统状态及其概率123
8.4.3 为单个PSS生成DTMC124
8.4.4 评估DTMC和聚合结果124
8.4.5 总结124
8.5 成本分析125
8.6 问题和练习125
8.6.1 问题125
8.6.2 练习126
8.7 拓展阅读126
8.8 小贴士126
第四部分 嵌入软件工程过程
第9章 软件工程过程128
9.1 何时使用(或不使用)基于模型驱动的软件质量预测128
9.1.1 基于模型驱动质量预测的成本128
9.1.2 基于模型驱动质量预测的好处129
9.1.3 Palladio应用指标
|
內容試閱:
|
又一本谈软件架构的书?
关于软件架构方面的书已经很多,其中不乏好的书籍。这并不奇怪,因为几乎在二十多年前软件架构就已经在研究和实践上成为一个雷打不动的关注领域。
那么本书有什么独特之处呢?大多数书都是在“文档化软件架构”,本书是在“仿真软件架构”。文档化软件架构并不是错误的,事实上,一些软件工程活动能从软件架构文档中获益,例如成本规划、组件定义、制定工作计划以及规划重用等。然而,文档化软件架构有了一个最新的用途—软件架构的仿真。软件架构对于软件工程师来说是非常重要的,因为可以在软件架构设计的基础上预测制品的属性,而不用去实现系统,这也是工程学科的核心特征之一。从这个角度看,“软件工程”几乎还不能算是一门工程学科,因为我们通常在软件设计时还不了解设计决策对系统质量属性(如性能或可靠性)的影响。一般的做法是,我们要想了解最终软件的质量,就要尝试通过昂贵且有风险的“试错”周期来测试质量。这样做的最大问题是,等到测试时我们实际上已经为系统的实现付出了很多精力和工作量,而且后期发现问题再去修改架构以提高系统性能的过程会有很大的额外开销。本书描述了如何对软件架构进行建模和仿真,以便在实现和文档化系统之前就自动获得软件系统的定量质量预测。
读者对象
本书是关于软件架构的质量建模和仿真的,主要针对软件工程领域的研究生以及他们的导师或者已经在软件工程领域有学术研究背景的从业者。在大学中,学生和老师可以把这本书作为质量工程、性能工程等研究生课程的教材,或是作为软件架构方面的更多普通课程特定部分的辅助材料。
阅读本书,有助于计算机科学方向的学生或从业者成为定量软件工程师,掌控软件架构的性能和可靠性,具体包括:
了解如何定量地构建更好的软件架构。
仿真和预测软件架构的影响。
避免并修复性能和可靠性问题。
了解软件架构变化对质量的影响。
规避在软件构建和设计过程中的典型风险。
内容概要
本书主要介绍对软件架构的仿真,以明确架构对于软件质量的影响。书中详细介绍了如何对软件系统的各个质量属性(例如,性能和可靠性)在最终软件敲定之前进行建模、分析和改善。本书展示了软件架构师如何利用架构仿真更好地工作,并提供可靠且经过验证的质量建模和预测技术。它不是一本阐述软件架构文档的书,而是描述了世界上第一个软件架构仿真器:Palladio。通过仿真,你就可以知道怎样避免高昂的花费和在“试错”周期中徘徊,更好地用工程化方法进行软件设计。通过本书,你会一步一步地学习和体会到如何对可重用、参数化的组件以及可配置、可部署的系统进行建模,以便在早期设计阶段能够分析系统的服务质量。
本书首先详细介绍了用于软件架构的特定领域建模语言的一些主要概念,并提供了相应的开发和分析过程。然后描述了如何使用质量信息来校准架构模型,从中可以自动地导出详细的仿真模型用于质量预测。然后,结合三个工程案例,沿着那些建立好的、具有革新意义的过程(例如,双向工程和设计空间探索)解释获得的预测结果是如何使用的以及有什么样的益处。
通过阅读本书你可以学到什么?简单来说,你将习得如何系统地回答下列问题:
我的系统可扩展吗?
实现某些性能目标需要什么硬件资源?
如何设计软件才能实现其高效性和高可靠性?
我需要与我的服务提供商达成什么样的服务级协议?
在本书中可以找到上述问题的答案,因为你可以在早期设计阶段通过建模和分析了解可重用的、参数化的组件的服务质量和可配置的、可部署的系统的服务质量。
组织结构
可运行案例
本书在第2章有一个可运行案例,该案例建模和分析了一个多媒体存储系统,多媒体文件可以在该系统上进行上传和下载。在部分章节中会引用该系统来辅助解释某些任务和方法。另外,在第五部分中全面介绍和讨论了三个工业案例。
相关问题、练习、拓展阅读和小贴士
在第二、三、四部分中每章章末都有专门的几节来帮助评估你理解的准确性,帮助你从外部资源获取更多信息,并且检查你是否掌握了所有关键点。首先,在每章最后都设置了一系列问题来帮助你检查自己是否对书中的内容有正确的理解。然后,你可以使用练习获得进一步的实践观察。这些问题和练习都根据所需的认知工作量(cognitive effort)进行分类:是对知识的复制(*),还是重组(**)、迁移(***)或创造(****)。问题的答案和练习的解决方案在本书的相关网站(后面会说到)上可以找到,而且配有教程和截屏。接着是“拓展阅读”节,会给出一些额外的参考信息,它简要列出了一些推荐文献,这些文献中会更为详细地介绍基本概念,或者深化书中的内容。最后是“小贴士”节,第二、三、四部分的各个章节都包含此节,其简要总结了该章内容的关键点。
定义、题外话和索引
对于有争议且需要加以说明的重要术语,书中会有简短的定义。 对于不需要更深入理解的材料,就不在正文中给出更详细的信息,而是把这类额外的信息放在“题外话”框中。另外为了让你能快速导航到书中的某个关键字,重要的术语将被编入索引。
相关网站
由于本书中提到的许多主题已经在大学课程和几
|
|