我的架构思想(三十三):架构是过程,而非结果——架构的表达与逻辑(系统总量不变,其本质是复杂性的不变)

阅读数:18 2019 年 10 月 12 日 17:05

我的架构思想(三十三):架构是过程,而非结果——架构的表达与逻辑(系统总量不变,其本质是复杂性的不变)

多个方框放在一起的时候,它们(所表达的领域)之间是没有关系或仅有殊少关系的。其中,当使用并列结构时,它通常表明系统总量不变——系统的复杂性不因为拆分而增加。这事实上也约束了并列结构之间是不应有相互关系的。因为并列结构之间若存在关系,则“处理这些关系”将带来系统本身的复杂性的增加,而这与我们使用并列结构的本意是矛盾的。

当并列结构之间不存在关系并且它所表明的系统总量不变时,并列(的所有域)是可以被视为一个整体的。换言之,拆分或不拆分,只是对规模的分解而不会导致关系或相关处理的增减。就系统整体来说,其规模将因 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,因此总的来说,非层次结构(嵌套和并列)的使用并不会带来系统整体复杂性的增加;

9 例如,引擎层与处理层、驱动层与应用层、框架调度层与业务层等,前者都是核心领域或包含核心过程。

  • 其二,对于层次结构的任意两层,其层次(自身的)复杂性为 1,因此其整体复杂性是由层间(关系的)复杂性决定的,可计为 1+m
  • 其三,对于层次结构整体,它将包括不变与可变两个部分,由于其不变部分的复杂度是 1,因此其整体复杂性必是由可变部分导致的。

图 35 其他结构在层次结构中的含义

我的架构思想(三十三):架构是过程,而非结果——架构的表达与逻辑(系统总量不变,其本质是复杂性的不变)我的架构思想(三十三):架构是过程,而非结果——架构的表达与逻辑(系统总量不变,其本质是复杂性的不变)

最后,就系统架构整体来说,我们必须关注三点:其一,应通过层次系统来隔离可变性,并尽量增大其中不变的部分;其二,可变部分影响系统的形态,但不影响系统的性状(亦即是指系统的边界与联接件);其三,如何理解“不变部分的关系”决定了系统的性状,也决定了“不变部分的复杂度是 1”的单位大小。

评论

发布