6.4 系统总量不变,其本质是复杂性的不变
多个方框放在一起的时候,它们(所表达的领域)之间是没有关系或仅有殊少关系的。其中,当使用并列结构时,它通常表明系统总量不变——系统的复杂性不因为拆分而增加。这事实上也约束了并列结构之间是不应有相互关系的。因为并列结构之间若存在关系,则“处理这些关系”将带来系统本身的复杂性的增加,而这与我们使用并列结构的本意是矛盾的。
当并列结构之间不存在关系并且它所表明的系统总量不变时,并列(的所有域)是可以被视为一个整体的。换言之,拆分或不拆分,只是对规模的分解而不会导致关系或相关处理的增减。就系统整体来说,其规模将因 A..Z 的个数的增加而线性增长,但其复杂性仍然是衡为 1 的。因此,图 31 所示的两个图例是等义的。
图 31 并列结构的表现形式
嵌套结构所谓的“核心”,是指所有除核心之外的其他领域必然与该核心发生关系,亦即它必然可以表达为图 32 所示形式的结构。
图 32 嵌套结构的表现形式
但 B..Z 之间是不是存在关系,会是一个很关键的问题——如果 B..Z 之间仍然存在关系,则图 32 所示的图将会类似网状,这会带来系统复杂性的剧增。所幸,在这个模型里,我们可以认为,如果 B…Z 的任意组合之间存在关系,则它应当视为 A 的一部分,亦即通过扩大 A 的规模来减少 A…Z 之间的整体复杂性。如此,以 B_C 之间存在关系为例,它的模型仍然可以表示为图 33 所示的嵌套结构。
图 33 以 B_C 之间存在关系为例改写架构的表达
这样一来,A’自身(缘于此前的设定,A’即是嵌套结构所谓的“核心”)事实上应当具有 A..C 的系统总量以及它们之间的、确定的关系带来的复杂性,但该复杂性因为关系是确定的所以是确定的,而 D…Z 的复杂性是确定的。因此总的来看,二者的复杂性仍然是确定值 1。
因为 D…Z 之间是没有关系的,所以它们也可以被视为一个并列结构 D_Z。当我们把 A’与 D_Z 看成整体结构 A’_Z 时,其复杂性应该由上述确定值 1 与一个关系 m 构成,可计为 1+m。该结构如图 34 所示。
图 34 嵌套结构与并列结构
综合上述有关嵌套结构(A’_Z)与并列结构(A_Z)的讨论:既然它们对应系统的复杂性都是确定值,那么它们都应当可以作为层次结构的一个可以“视其为具有不变性”的独立部分加以讨论。以图 35 为例,也就是说:
- 其一,由于嵌套结构可以理解为分成“核心与非核心两层”的层次结构 9 ,因此总的来说,非层次结构(嵌套和并列)的使用并不会带来系统整体复杂性的增加;
- 其二,对于层次结构的任意两层,其 层次(自身的)复杂性 为 1,因此其整体复杂性是由 层间(关系的)复杂性 决定的,可计为 1+m;
- 其三,对于层次结构整体,它将包括不变与可变两个部分,由于其不变部分的复杂度是 1,因此其整体复杂性必是由可变部分导致的。
图 35 其他结构在层次结构中的含义
最后,就系统架构整体来说,我们必须关注三点:其一,应通过层次系统来隔离可变性,并尽量增大其中不变的部分;其二,可变部分影响系统的形态,但不影响系统的性状(亦即是指系统的边界与联接件);其三,如何理解“不变部分的关系”决定了系统的性状,也决定了“不变部分的复杂度是 1”的单位大小。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论