描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111551430丛书名: 架构师书库
本书阐述了架构思维的强大之处,目标是帮助系统架构师规划并引领系统开发过程中的早期概念性阶段,为整个开发、部署、运营及演变的过程提供支持。
本书首先讲解了什么是系统,什么是系统架构,并从形式和功能两个方面讲解了如何分析系统。之后开始讲解如何创建良好的系统架构。在将概念演化为架构的过程中,架构师需要对系统进行分解,以看清这些组件的结构以及它们之间的交互情况,因此需要根据一些衡量指标来构建权衡空间,以便使用优化算法找出优势较大的架构。
本书由系统架构领域3位领军人物亲笔撰写,系统架构领域资深专家Norman R. Augustine作序推荐,Amazon全五星评价。
全书共分四部分。
第1部分(第1~3章)的重点是系统架构所展现出来的机遇,这种机遇使我们能够厘清定义系统所需的关键决策点,并选出能够应对复杂挑战的架构。第1章通过一些范例来展示架构理念,指出良好的架构,并给出本书的概要;第2章列出了进行系统分析的思路;第3章给出了分析系统架构所用的思维模式。
第二部分(第4~8章)着重对架构进行分析。第4章讨论了系统的形式;第5章讨论了系统的功能;第6章讲解形式与功能之间的映射,并以此给出系统架构的定义;第7章研究如何从独立于解决方案的功能陈述中衍生出系统;第8章演示样把这些概念汇聚成一套架构。
第三部分(第9~13章)讲解如何为复杂的系统定义架构。第9章从任务和可交付成果这两个方面来概述架构师的职责;第10章探讨了把组织机构方面的接口当成在架构中减少歧义的契机;第11章讲述如何用系统化的方式来捕获利益相关者的需求,排定这些需求的优先顺序,并把它们转换成系统目标;第12章提出了一些能够帮助架构师更有创意地构思并选择概念的手段;第13章讲述了一些在开发系统时管理复杂度的办法。第四部分(第14~16章)探寻了帮助架构师做决策的各种计算方法及工具所具备的潜力。第14章把系统架构的过程当成一种决策制定的过程来进行讲解;第15章讲解了如何对架构权衡空间中的信息进行综合;第16章演示了怎样把架构决策编码成一套模型,使计算机可以根据该模型自动生成权衡空间并对其进行探索。本书*后的附录中给出了一些可以对决策支持的主要功能起支援作用的工具,讨论了怎么使用基于规则的系统来自动地对架构进行列举和评估,以及怎样使用聚类算法来对权衡空间进行安排。
本书不仅适合专业架构师(包括高级技术人员,以及软件、电子、工业用品、航空、汽车及消费用品等科技产业中的管理人员)阅读,也适合工程学和计算机专业的学生阅读
部分系统思维
第1章 系统架构简介 2
1.1 复杂系统的架构 2
1.2 良好架构的优势 2
1.3 学习目标 5
1.4 本书结构 6
1.5 参考资料 7
第2章 系统思维 8
2.1 简介 8
2.2 系统与涌现 8
2.2.1 系统 8
2.2.2 涌现 10
2.3 任务一:确定系统及其形式与功能 13
2.3.1 形式与功能 13
2.3.2 工具-过程-操作数:这是人类的标准思维模式吗 16
2.4 任务二:确定系统中的实体及其形式与功能 16
2.4.1 具备形式与功能的实体 17
2.4.2 确定如何将系统初步分解为恰当的实体 18
2.4.3 用整体思维找出系统中的潜在实体 19
2.4.4 集中注意力,找出系统中的重要实体 21
2.4.5 为实体创建抽象或从实体中发现抽象 22
2.4.6 定义系统的边界,并将其与外围环境隔开 24
2.5 任务三:确定实体之间的关系 25
2.5.1 关系的形式与功能 25
2.5.2 外部接口 28
2.6 任务四:涌现 28
2.6.1 涌现的重要性 28
2.6.2 系统故障 29
2.6.3 预测涌现物 30
2.6.4 涌现物依赖于实体及其关系 31
2.7 小结 32
2.8 参考资料 33
第3章 思考复杂的系统 34
3.1 简介 34
3.2 系统中的复杂度 34
3.2.1 复杂度 34
3.2.2 引入Team XT这一范例系统 35
3.3 系统的分解 38
3.3.1 分解 38
3.3.2 体系 39
3.3.3 层级分解 39
3.3.4 简单的系统、复杂度适中的系统以及复杂的系统 41
3.3.5 原子部件 42
3.4 特殊的逻辑关系 43
3.4.1 类/实例关系 43
3.4.2 特化关系 43
3.4.3 递归 44
3.5 对复杂系统进行思索 44
3.5.1 自顶向下及自底向上式的思考 44
3.5.2 交替思考 45
3.6 架构展示工具:SysML与OPM 45
3.6.1 视图与投射 45
3.6.2 SysML 46
3.6.3 OPM 46
3.7 小结 49
3.8 参考资料 50
第二部分 系统架构的分析
第4章 形式 53
4.1 简介 53
4.2 架构中的形式 53
4.2.1 形式 53
4.2.2 用解析表示法来表现形式:对象 56
4.2.3 形式的分解 57
4.3 对架构中的形式进行分析 58
4.3.1 定义系统 58
4.3.2 确定形式实体 59
4.3.3 把泵作为复杂度适中的系统来分析 61
4.4 对架构中的形式关系进行分析 63
4.4.1 形式关系 63
4.4.2 空间/拓扑形式关系 65
4.4.3 用图和图表来展现形式关系:OPM 67
4.4.4 用表格及类似矩阵的视图来展现形式关系:DSM 70
4.4.5 连接性的形式关系 71
4.4.6 其他的形式关系 74
4.5 形式环境 75
4.5.1 伴生系统、整个产品系统及系统边界 75
4.5.2 使用情境 77
4.6 软件系统中的形式 77
4.6.1 软件系统:信息形式及其二元性 77
4.6.2 软件中的形式实体与形式关系 79
4.6.3 软件系统所在的整个产品系统、软件系统的边界及使用情境 81
4.7 小结 82
4.8 参考资料 82
第5章 功能 83
5.1 简介 83
5.2 架构中的功能 84
5.2.1 功能 84
5.2.2 把功能视为过程加操作数 84
5.2.3 用解析表示法来展现功能 85
5.3 分析对外展现的功能和价值 89
5.3.1 对外界展现的主要功能 89
5.3.2 与价值有关的操作数 90
5.4 对内部功能进行分析 93
5.4.1 内部功能 93
5.4.2 确定内部功能 94
5.5 分析功能交互及功能架构 97
5.5.1 功能交互与功能架构 97
5.5.2 确定功能交互 98
5.5.3 价值通路 100
5.5.4 涌现与细分 101
5.5.5 软件系统中的功能架构 102
5.6 与价值相关的次要外部功能及内部功能 105
5.7 小结 106
5.8 参考资料 107
第6章 系统架构 108
6.1 简介 108
6.2 系统架构:形式与功能 109
6.2.1 形式与功能之间的映射 109
6.2.2 确定形式与过程之间的映射 114
6.2.3 形式结构承载并展现功能交互 116
6.2.4 确定形式结构是如何承载功能和性能的 118
6.3 系统架构中的非理想因素、支持层及接口 119
6.3.1 系统架构中的非理想因素 119
6.3.2 系统架构中的支持功能及支持层 120
6.3.3 形式与功能中的系统接口 121
6.4 操作行为 123
6.4.1 操作者 124
6.4.2 行为 124
6.4.3 操作成本 126
6.5 用各种表示法来推究系统架构 127
6.5.1 能够对系统架构进行简化的几种方式 127
6.5.2 用投射法来表示系统的架构 128
6.5.3 把过程投射到对象 129
6.5.4 把过程和操作数投射到形式 130
6.6 小结 133
6.7 参考资料 134
第7章 与特定解决方案无关的功能和概念 135
7.1 简介 135
7.1.1 正向工程与更加复杂的系统 135
7.1.2 对与特定解决方案无关的功能和概念所做的介绍 136
7.2 确定与特定解决方案无关的功能 138
7.3 概念 140
7.3.1 作为一种观念的概念 140
7.3.2 对概念构想有所帮助的框架 142
7.3.3 构想概念时所应依循的步骤 144
7.3.4 为概念命名
系统和系统架构,是两个让人觉得既熟悉又模糊的词语。说熟悉,是因为很多领域都频繁地提到它们;说模糊,则是因为不同的领域和不同的人,对这两个词的定义及范围,都有着不同的理解。而本书正是要从各领域对系统架构的理解和构建中,总结出一套共识,使大家能够更为清晰地看到复杂的产品在研发策略方面所体现出的共性。
本书部分讲解了什么是系统,其中主要强调整体思维的作用,并强调系统的整体功能必须大于各部件的功能之和。多出来的这些功能,就称为涌现物。
为了使系统涌现出良好的功能,我们需要对它进行分析。于是,第二部分就从形式和功能这两个方面讲解了如何分析系统,并且把系统架构这个概念描述为对形式和功能之间的映射关系所做的分配,同时,还强调了各部件之间的交互以及本系统与周边环境之间的互动。这些问题对于系统的价值来说至关重要。
在明确了系统和系统架构的含义之后,第三部分开始讲解如何创建良好的系统架构。产品上游和下游的影响因素,以及利益相关者所提出的各种需求,都是架构师必须要考虑的问题,因此,第11章开头给出了一套思维框架,使我们可以把庞杂的需求转化为凝练的目标,并确定这些目标之间的先后次序。接下来,讨论了怎样把这些目标汇聚成与特定解决方案无关的概念。之所以要先把特定的解决方案抛开,是为了使架构师能够把抽象的概念细化为多个片段,并运用创造力来探索它们的各种实现及组合方式,然后把那些能够满足客户需求的方式逐渐演化为具体的架构。由于很多系统本质上是非常复杂的,因此,在把概念演化为架构的过程中,架构师需要对系统进行分解,以看清这些组件的结构以及它们之间的交互情况。
同一个组件可能有多种实现方式,而组件之间的布局及交互情况,也是多种多样的,这就需要我们对其中较为关键的几个决策点做出选择。于是,第四部分从决策角度探讨系统架构。对每一个这样的架构决策来说,各选项之间的搭配方式可能极为繁多,因此,为了进行定量分析,我们需要根据一些衡量指标来构建权衡空间,并把各种候选架构都展示在该空间中的对应坐标上,以便使用优化算法找出优势较大的架构。
以上四个部分就是全书的主线。作者把系统架构的分析和综合过程中所提到的相关理念,总结成了20多条架构原则,使我们可以在系统架构的各环节中把握住重点,这也是本书的一个特色。它的另外一个特色在于:作者对照建筑学中的模式语言,以及软件开发中的设计模式,把各种架构决策问题也归纳成6种模式,使架构师能够在不同的工作场景中选用合适的模式及算法来对这些问题进行程序化的处理。
本书提供了丰富的架构展示方法和架构分析公式,也给出了适用面较为广泛的原则和模式,在面对具体的项目时,我们应该根据自己的经验和判断力,灵活地运用这些工具。
翻译过程中,我得到了机械工业出版社诸位编辑和工作人员的帮助,在此深表感谢。
评论
还没有评论。