软件架构建模和仿真:Palladio方法拉尔夫 H.雷乌斯纳(Ralf H. Reussner) 等 ISBN:9787111607229

软件架构建模和仿真:Palladio方法

书籍作者:拉尔夫 H.雷乌斯纳(Ralf H. Reussner) 等

ISBN:9787111607229

书籍语言:简体中文

连载状态:全集

电子书格式:pdf,txt,epub,mobi,azw3

下载次数:6449

运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板

内容简介

本书给出一种新的定量的架构模拟方法来讨论软件设计和架构的质量和属性,让软件工程师在早期设计阶段就能够建模和评估软件服务的质量。书中提出了个针对软件架构的模拟器Palladio,向学生和专业人员展示了为了分析软件服务的性能如何建模可复用、参数化的组件以及可配置和部署的系统。。

作者简介

拉尔夫·H.雷乌斯纳(Ralf H. Reussner) 博士,德国卡尔斯鲁厄理工学院软件工程教授,软件设计与质量研究院主任,信息技术研究中心执行董事。

斯特芬?贝克尔(Steffen Becker) 德国开姆尼茨工业大学软件工程教授。

詹斯?哈佩(Jens Happe) SAP公司高级研究员,软件初创公司avenyou的联合创始人。

罗伯特?海因里希(Robert Heinrich) 德国卡尔斯鲁厄理工学院软件设计与质量研究院持续质量工程研究组主管。

安妮?科齐奥勒克(Anne Koziolek) 德国卡尔斯鲁厄理工学院初级教授,软件设计与质量研究院架构驱动需求工程研究组主管。

海科?科齐奥勒克(Heiko Koziolek) ABB公司研究院首席科学家和全球化研究领域协调员。

马克斯?克莱默(Max Kramer) 德国卡尔斯鲁厄理工学院软件设计和质量研究院科学家。

克劳斯?克罗曼(Klaus Krogmann) Citrix/GetGo质量工程平台经理。

《软件架构建模和仿真:Palladio方法》电子书免费下载

pdf下载
txt下载
epub下载
mobi下载
azw3下载
下载暂时关闭,开启另行通知

前言

又一本谈软件架构的书?

关于软件架构方面的书已经很多,其中不乏好的书籍。这并不奇怪,因为几乎在二十多年前软件架构就已经在研究和实践上成为一个雷打不动的关注领域。

那么本书有什么独特之处呢?大多数书都是在“文档化软件架构”,本书是在“仿真软件架构”。文档化软件架构并不是错误的,事实上,一些软件工程活动能从软件架构文档中获益,例如成本规划、组件定义、制定工作计划以及规划重用等。然而,文档化软件架构有了一个最新的用途—软件架构的仿真。软件架构对于软件工程师来说是非常重要的,因为可以在软件架构设计的基础上预测制品的属性,而不用去实现系统,这也是工程学科的核心特征之一。从这个角度看,“软件工程”几乎还不能算是一门工程学科,因为我们通常在软件设计时还不了解设计决策对系统质量属性(如性能或可靠性)的影响。一般的做法是,我们要想了解最终软件的质量,就要尝试通过昂贵且有风险的“试错”周期来测试质量。这样做的最大问题是,等到测试时我们实际上已经为系统的实现付出了很多精力和工作量,而且后期发现问题再去修改架构以提高系统性能的过程会有很大的额外开销。本书描述了如何对软件架构进行建模和仿真,以便在实现和文档化系统之前就自动获得软件系统的定量质量预测。

读者对象

本书是关于软件架构的质量建模和仿真的,主要针对软件工程领域的研究生以及他们的导师或者已经在软件工程领域有学术研究背景的从业者。在大学中,学生和老师可以把这本书作为质量工程、性能工程等研究生课程的教材,或是作为软件架构方面的更多普通课程特定部分的辅助材料。

阅读本书,有助于计算机科学方向的学生或从业者成为定量软件工程师,掌控软件架构的性能和可靠性,具体包括:

了解如何定量地构建更好的软件架构。

仿真和预测软件架构的影响。

避免并修复性能和可靠性问题。

了解软件架构变化对质量的影响。

规避在软件构建和设计过程中的典型风险。

内容概要

本书主要介绍对软件架构的仿真,以明确架构对于软件质量的影响。书中详细介绍了如何对软件系统的各个质量属性(例如,性能和可靠性)在最终软件敲定之前进行建模、分析和改善。本书展示了软件架构师如何利用架构仿真更好地工作,并提供可靠且经过验证的质量建模和预测技术。它不是一本阐述软件架构文档的书,而是描述了世界上第一个软件架构仿真器:Palladio。通过仿真,你就可以知道怎样避免高昂的花费和在“试错”周期中徘徊,更好地用工程化方法进行软件设计。通过本书,你会一步一步地学习和体会到如何对可重用、参数化的组件以及可配置、可部署的系统进行建模,以便在早期设计阶段能够分析系统的服务质量。

本书首先详细介绍了用于软件架构的特定领域建模语言的一些主要概念,并提供了相应的开发和分析过程。然后描述了如何使用质量信息来校准架构模型,从中可以自动地导出详细的仿真模型用于质量预测。然后,结合三个工程案例,沿着那些建立好的、具有革新意义的过程(例如,双向工程和设计空间探索)解释获得的预测结果是如何使用的以及有什么样的益处。

通过阅读本书你可以学到什么?简单来说,你将习得如何系统地回答下列问题:

我的系统可扩展吗?

实现某些性能目标需要什么硬件资源?

如何设计软件才能实现其高效性和高可靠性?

我需要与我的服务提供商达成什么样的服务级协议?

在本书中可以找到上述问题的答案,因为你可以在早期设计阶段通过建模和分析了解可重用的、参数化的组件的服务质量和可配置的、可部署的系统的服务质量。

组织结构

可运行案例

本书在第2章有一个可运行案例,该案例建模和分析了一个多媒体存储系统,多媒体文件可以在该系统上进行上传和下载。在部分章节中会引用该系统来辅助解释某些任务和方法。另外,在第五部分中全面介绍和讨论了三个工业案例。

相关问题、练习、拓展阅读和小贴士

在第二、三、四部分中每章章末都有专门的几节来帮助评估你理解的准确性,帮助你从外部资源获取更多信息,并且检查你是否掌握了所有关键点。首先,在每章最后都设置了一系列问题来帮助你检查自己是否对书中的内容有正确的理解。然后,你可以使用练习获得进一步的实践观察。这些问题和练习都根据所需的认知工作量(cognitive effort)进行分类:是对知识的复制(*),还是重组(**)、迁移(***)或创造(****)。问题的答案和练习的解决方案在本书的相关网站(后面会说到)上可以找到,而且配有教程和截屏。接着是“拓展阅读”节,会给出一些额外的参考信息,它简要列出了一些推荐文献,这些文献中会更为详细地介绍基本概念,或者深化书中的内容。最后是“小贴士”节,第二、三、四部分的各个章节都包含此节,其简要总结了该章内容的关键点。

定义、题外话和索引

对于有争议且需要加以说明的重要术语,书中会有简短的定义。 对于不需要更深入理解的材料,就不在正文中给出更详细的信息,而是把这类额外的信息放在“题外话”框中。另外为了让你能快速导航到书中的某个关键字,重要的术语将被编入索引。

相关网站

由于本书中提到的许多主题已经在大学课程和几

目录

出版者的话

译者序

推荐序

前言

第一部分 软件架构的工程方法

第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 Store 10

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生成DTMC 124

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应用指标

短评

非常专业,非常前沿

继续阅读

→→→→→→→→→→→→→→→→→→→→查找获取

匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: