《系统架构:复杂系统的产品设计与开发》——第3章,第3.3节系统的分解

3.3系统的分解
3.3.1分解
分解(decomposition)就是把实体分成小的部件或组成部分。在应对复杂度的诸多工具中,它是较为强大的一种。“分而治之”(divide and conquer)是一项基本策略,它把大问题持续分解成小问题,直到每一个小问题都能够解决为止。尤利乌斯•凯撒(Julius Caesar)在《高卢战记》的开头宣称“所有的高卢人都可以分成三个部分”,这并不是巧合,而是说明在古罗马时代,这种方略就已经得到深入研究和广泛运用了。
正如2.4节所述,有些系统是很容易分解的,例如那种由彼此不同的元素所构成的系统,分解起来就比较简单。如果系统是模块式的,那么分解起来就需要经过一番思考了。而对于整合式的系统来说,其分解方式则会显得有些武断。
把系统分解成部件的难点并不在于分解,而是体现在用分解出来的实体构建整个系统的这一过程上。这个过程通常称为整合(integration)。对于形式领域来说,整合就是把各部件所具备的形式聚合起来,在这一过程中,我们会担心这些元素在物理上或逻辑上是否能够合适地拼接在一起。对于功能领域来说,我们会把大功能分解成一些小的功能,然后把每个实体所具备的功能重新组合起来,在这一过程中,我们会遇到涌现物,这是真正的挑战所在。
我们现在开始分析Team XT。刚才说过,分解系统所用的方式,取决于系统元素的构成情况。如果系统在形式上由彼此不同的元素所构成,那我们就可以认为把Team XT团队按照成员进行分解是一种恰当的分解方式。但如果系统在形式上不是由彼此截然不同的元素所构成的,或是元素的形式尚未确定,那我们就更有可能会考虑按照功能来进行分解。这可能会得到与功能相关的一些实体(例如,转向机制、压缩机,以及排序算法,都可以按照功能分解为这样的一些实体)。具体到表3.1来说,其中有很多地方都表明,如果我们把注意力放在功能上,那就可能会得出一种与已有方式不同的分解方式。比如,我们发现Jose和Vladimir都具备“撰写需求文档”这一功能,于是我们就可以提出一种把Jose和Vladimir放在同一个实体内的分解方式。对我们理解系统涌现物来说,这种基于功能的分解方式,可能会更有帮助。

3.3.2体系
体系也是一种用来理解并思考系统复杂度的强大方法。体系(hierarchy)是一种其实体均处在某个层次或某个位阶的系统,这些层次是按照上下顺序排列起来的。社会系统中经常看到各种体系。比如,军队就是一种体系,其中有将军、上校、少校、上尉等不同的军阶。大公司也是个体系,可以分为总裁、执行副总裁及资深副总裁等不同的层次。
为什么有一些元素在体系中的位阶会比另外一些元素高呢?一般来说,有下面这几个原因:
这些元素所涉及的范围更广:例如州长比市长高,因为州长的行政范围比市长大(州比市大)。
这些元素的重要性较高或性能较强:例如黑带(black belt)选手比褐带(brown belt,茶带、棕带)选手高,因为他们的晋级标准更加严格,武艺也更加高强。
这些元素在功能上要承担更多的责任:例如总统比副总统高,因为总统的职责更大。
体系并非总是能够明确地展示我们想要的信息。即便仔细观察图3.1和表3.1,我们也依然不清楚Team XT的实际层级。各小组的组长和整个团队的经理,实际上都是为了交付有价值的设计方案而设立的,并不是单单为了评审其他人递交上来的工作,因此,我们不能仅仅通过图3.1和表3.1所展示的递交和评审关系来推断团队的实际层级。于是,我们还需要观察图3.2,这张图明确地展示了整个团队的体系。我们可以看到:Sue在Amy、John和Phil之上,而这三位小组长又处在团队的其他成员之上。这些内容是从表3.1最右侧那一列中的结构信息中提取出来的。图3.1给人的感觉是那些团队成员似乎都处在同一级别。而图3.2则呈现了一种分层的视图,使我们可以明确地看出:有一些团队成员在某种程度上要比其他成员更加重要。请注意,图3.2中的体系并不意味着某一层中的团队成员一定会向上一层汇报工作。工作汇报情况只有在做层级分解时,才能体现出来。

3.3.3层级分解
将分解与体系这两种手段结合起来,通常可以实现多层次的分解或层级化的分解,也就是可以实现像图3.3这样,大于两层的分解方式。图3.2中的中间那一层并没有体现出这三位小组长之间的区别,而图3.3则比较好,因为它使我们能够更加清晰地意识到这三位组长有着不同的分工。而且它还把每个节点所统领的下层节点数量限制在7个以内,使其不超越我们的认知能力(该上限可以左右浮动两个,位于5~9个)[1]。从图3.3中可以看出,三位小组长都向Sue汇报工作,而每位小组长所统领的四位组员都向该小组的组长汇报工作。
图3.3 对Team XT所做的层级分解

从表3.1和图3.2来看,“组”(group)是一种有用的抽象单元,但它并不是分解该团队的唯一方式。对于Sue以下的那些团队成员来说,我们可以用其他方式对其进行分解,包括按地理位置分解、按连接性分解或按功能关系分解等。实际上,图3.2既没有体现出这些团队成员彼此之间是否离得很近或是否有连接渠道(也就是说,没有展示出形式关系),也没有体现出某位成员是否会和另一位成员交换信息(也就是说,没有展示出功能关系)。

3.3.4简单的系统、复杂度适中的系统以及复杂的系统
按照一套特定的分类标准,本书将系统分成简单的系统、复杂度适中的系统,以及复杂度较大的系统(也就是复杂的系统)这三种类型。如果某系统像图3.4这样,只需分解一次即可将其完整地描述出来,那么它就是简单的系统。第2章所讲的那4个范例系统都是简单的系统,即便是太阳系,也只需要分解成由行星和更小的星体所组成的一层即可。对简单的系统进行分解之后,在分解出来的这一层中(也就是系统之下的第1层),其元素一般都不超过7个(该上限可以左右浮动两个)。而对这些元素进行研究时,我们则会发现:它们或多或少都是那种不便于继续分解的原子部件(参见3.3.5节)。

图3.4 对Team XT进行第一次分解

如果某个系统不是简单系统,但是经过两次分解之后,可以表示成图3.3这样的形式,使得每个上级部件所统领的下级部件都不超过7个(该上限可以左右浮动两个,这要求最底层的实体数量不能超过81个),那么这种系统就是复杂度适中的系统。
复杂的系统与复杂度适中的系统一样,也可以像图3.3这样进行分解,但是在系统下方的第2层中,仍然会有一些抽象的元素,这些元素还可以继续分解。这种系统分析起来更为困难,而它也比前两种系统更为常见。比如,假如Natasha本身还领导着一个专门负责拟定备选概念的小组,那么Team XT就由复杂度适中的系统变成复杂的系统了。
我们很少会看到分解深度超过两层的示意图。不使用这种示意图的原因有两个。首先,如果绘制三层分解的示意图,那么最底层的元素数量上限大约是73。由于7可以左右浮动2,因此这个上限可以位于53~93,按照93来算,最多可以有729个元素,这个数量远远超过了人类所能理解的范围。其次,我们在观察某个组织或系统时,对系统之下的第1层元素(也就是向该组织“直接汇报”的那些元素),一般都会了解得非常清楚,而对系统之下的第2层元素(该层中的元素会直接向第1层中的元素进行汇报),也会有着一定程度的了解,但是再往下看,就多少显得有些模糊了。
在分解系统时,笔者会把系统本身称为第0层(Level 0),把分解出来的那些层分别称为系统之下的第1层(Level 1(down))、系统之下的第2层(Level 2(down))等。第2章说过,每件事物几乎都可以当成系统来看待,因此,第0层究竟指代的是哪个系统还要由架构师的视点来确定。第0层系统之下的那些层,有很多种称呼方式,它们可以叫做模块(module)、配件(assembly)、子配件(sub-assembly)、函数或功能(function)、架(rack)、在线更换单元(Online Replacement Unit,ORU)、例程(routine)、委员会(committee)、工作组或任务组(task force)、单元(unit)、组件(component)、子组件(sub-component)、部件或部分(part)、区段(segment)、节(section)、章(chapter)等。称呼方式虽然有很多,但每一种称谓应该怎样使用并没有形成一致的意见。在另一个人看来,某个人所说的配件可能应该叫做部件才对。至于系统之上的那些层,其称呼方式则相对较少,有人将其称为系统的系统(system of system)、复合体(complex)或集合(collection)。本书在提到系统之上的那些层时,会采用系统之上的第1层(Level 1(up))、系统之上的第2层(Level 2(up))等说法。

3.3.5原子部件
我们刚才说的那种归类方式,某种程度上要依赖于“原子部件”(atomic part)这一概念,而该词并没有精确的定义。它的含义源自希腊语的(转写成拉丁字母是atomos)一词,原意是不可分之物(indivisible)。在机械系统中,我们把那种不能轻易“拆解”的部件假定为原子部件。按照这种定义方式,人、螺丝及处理器芯片都是原子部件。处理器芯片当然也包含很多对架构起着重要作用的内部细节。比如,其中有哪些类型的晶体管和逻辑门,这些类型的电子元器件分别有多少个,以及它们是如何连接起来的,等等。即便是一枚简单的螺丝,也含有一些架构方面的重要细节。比如,它是一字头(straight head)还是十字头(也称为菲利普头,Phillips head)等。由此看来,刚才所设想的那种定义方式似乎有些不够清晰,但我们可以把握一条简单的规则,那就是:不能拆解的东西都可以叫做原子部件。
在信息系统中,“原子部件”这个定义就显得更模糊了。有一种办法可以判断出某物应不应该称为原子部件,那就是看该物是不是像单词或指令那样具备语义含义(semantic meaning),或者不是一种数据或信息单元。这些单词、指令或数据单元本身当然也包含各种细节。由于所有的信息都是一种抽象(第4章将讲述这一点),因此想在本身就比较抽象的信息上再抽象出一个针对原子部件的有效定义,就必然会显得非常模糊。不过与机械系统一样,分析信息系统时,也可以把握这样一条简单的规则:凡是一经拆解就失去意义的东西,都可以称为原子部件。

时间: 2024-12-12 17:34:15

《系统架构:复杂系统的产品设计与开发》——第3章,第3.3节系统的分解的相关文章

《产品设计与开发(原书第5版)》——导读

前言 本书是我们在产品开发这一跨学科课程讲义的基础上编写的,该课程面向工程和工业设计领域的研究生以及MBA学生.尽管本书的主要受众是上述跨学科领域的研究生,但是许多工程设计领域的本科生和研究生教师也会发现它是一本非常有用的教学参考书,同时本书对专业人士也非常有用.实际上,我们不可避免地需要针对专业读者来编写,因为大部分学生本身就是专业人士,他们都曾在产品开发或者相关领域工作过. 本书把市场营销.设计以及工业制造的观点融合为产品开发的整体思路,因此能够使每个学生准确地理解实实在在的产品开发实践,以

产品设计与开发中的破窗效应

2016年5月31日,Tobias van Schneider就在他的博客上分享了他的心得:"破窗效应"理论在产品设计与开发的应用中也是有效的.如果你感到项目的进度近乎停滞,给你带来烦躁的话,很可能就是因为"破窗效应".博主讲解了"破窗效应"理论,并提出了如何在项目实施中应用"破窗效应"理论,从而让项目顺利进展. 什么是"破窗效应"理论呢? 破窗效应(Broken Windows theory)是犯罪学的一

《产品设计与开发(原书第5版)》——3.2 机会识别的评比结构

3.2 机会识别的评比结构 不同的机会价值差异很大,且这些价值受不确定性因素的影响.因此应识别出一系列的机会,然后挑选出可进一步开发且可能成功的机会子集.这个过程可以看作是对机会创新性的评比(tournament),只有最佳的方案才能被采用.对于一个成功的商业案例,通常有几十.几百甚至上千的机会可能会被考虑到.筛选的过程会选出一些能够进行进一步开发的机会子集,然后从这个子集中再选出一个或多个能够推出完整的产品开发的机会,具体如图表3-4所示. 图表3-4 机会识别过程的评比结构:采用机会联赛评比

《系统架构:复杂系统的产品设计与开发》——第1章,第1.2节良好架构的优势

1.2良好架构的优势这些复杂的系统能否满足利益相关者的需求并体现出价值?它们是否能够轻松地整合.灵活地进化?它们操作起来是不是很简单,运作得是不是很可靠?架构良好的系统确实是如此. 用最简单的方式来说,架构就是对系统中的实体以及实体之间的关系所进行的抽象描述.在由人类所构建的系统中,架构可以表述为一系列的决策.本书基于这样一个前提:如果我们能够找出使系统架构得以确立的决策点,并谨慎地做出决策,那么系统更有可能取得成功.本书想要把与早期的系统决策有关的经验与分析方式总结出来,并指出这些决策之间的共

《系统架构:复杂系统的产品设计与开发》——导读

目录 第一部分系统思维第1章 系统架构简介1.1 复杂系统的架构1.2 良好架构的优势 1.3 学习目标 1.4 本书结构1.5 参考资料 第2章 系统思维 2.1 简介 2.2 系统与涌现2.2.1 系统 2.2.2 涌现 2.3 任务一:确定系统及其形式与功能 2.3.1 形式与功能 2.3.2 工具-过程-操作数:这是人类的标准思维模式吗 2.4 任务二:确定系统中的实体及其形式与功能 2.4.1 具备形式与功能的实体 2.4.2 确定如何将系统初步分解为恰当的实体 2.4.3 用整体思维

科学提高系统需求、系统架构、系统开发效能—2014年经验谈

           经历软件架构和设计及开发有10来年了,到目前为止啊,真还没有看见一个高效的团队.            其中,一个关键的因素就是项目团队缺既懂技术又懂管理的高级别人才或者是有这样的人才,一般的企业不会用.            从我经验看,什么人才都不缺,缺的是一个企业的潮流文化和管理模式创新.                         我也曾经或者经常骂那些懂又不懂技术的或懂又不懂管理的庸才,但最后也是没有办法,项目还是要进行.            当然,能够让你

《产品设计与开发(原书第5版)》——2.3 采用基本的产品开发流程

2.3 采用基本的产品开发流程 图表2-2和图表2-3描述的是最基本的开发流程,特定的流程会随着项目具体情况和企业具体环境的不同而不同.基本的流程非常类似于市场拉动(market-pull)情况下使用的流程:企业从具有市场机会开始产品开发,然后寻找可以满足市场需求的技术(即市场"拉动"开发决策).除了图表2-2和图表2-3所示的市场拉动流程,还有其他几种常见的变化形式:技术推动型(technology-push)产品.平台型(platform)产品.流程密集型(process-inte

《产品设计与开发(原书第5版)》——1.5 本书思路

1.5 本书思路 我们关注企业核心职能部门涉及的产品开发活动,这里,企业的核心职能界定为:市场营销.设计和制造.我们认为团队成员在一个或多个特定的学科领域(如机械工程.电子工程.工业设计.市场调研或制造运营)已拥有相应的知识,因此,我们不讨论类似如何进行应力分析或怎样开展联合调查之类的问题,这些是开发团队的成员应具有的学科技能.本书提出的集成方法旨在帮助拥有不同学科视角的人共同解决问题.做出决策.1.5.1 结构化方法本书由完成开发活动所需的方法组成.这些方法是结构化的,这意味着我们会提供一个循

《产品设计与开发(原书第5版)》—— 第2章 开发流程和组织 2.1 产品开发流程

第2章 开发流程和组织 Tyco公司是一家领先的传感器和控制系统(包括家用和工业安全系统)制造商,该公司的产品之一是无线安全报警系统控制面板(如图表2-1所示).Tyco公司的高级经理希望建立一种通用的产品开发流程结构,以适合公司不同部门的产品开发,并创建产品开发组织,使Tyco公司在激烈的市场竞争中保持优势.Tyco公司面临的问题包括:所有项目共同的关键产品开发活动有哪些?为了管理整个开发流程的各阶段,需要设定哪些里程碑和评审点?是否存在适用于不同部门的标准开发流程?不同职能领域的专家在开发流

《产品设计与开发(原书第5版)》——1.2 谁来设计和开发产品

1.2 谁来设计和开发产品 产品开发是一项跨学科的活动,它需要企业中几乎所有职能部门的参与.然而,三种职能在产品开发项目中处于核心地位:市场营销:市场营销职能协调着企业与顾客之间的关系.营销往往有助于识别产品机会.确定细分市场.识别顾客需求.营销还可加强企业与顾客之间的沟通.设定目标价格.监督产品的发布和推广工作.设计:设计职能在确定产品的物理形式以最好地满足顾客的需求方面发挥着重要作用.本书所述设计职能包括工程设计(机械.电子.软件等)和工业设计(美学.人机工程.用户界面等).制造:制造职能主