【问题标题】:System Architecture design系统架构设计
【发布时间】:2011-05-16 20:26:30
【问题描述】:

我很难理解系统复杂性的概念。
谁能帮我理解整个系统的复杂度和所有子系统的复杂度之间的关系?

表示为 C(S) = C(SS1) + C(SS2)+..C(SSn)

C(S):整个系统的复杂度

C(SS1):简单子系统的复杂度

【问题讨论】:

  • “表示为 C(S) = C(SS1) + C(SS2)+..C(SSn)” 这在很大程度上是错误的。组件交互。复杂度根本不是线性组合。你在哪里见过这个?为什么这么问?你想知道什么?
  • @S.Lott 我不同意,他所说的公式是正确的。仅仅因为组件交互,并不意味着它们的复杂性增加。该等式只是试图表明您可以将复杂性分解为“块”,并且这些块的总和等于整体。
  • @Nix:整体复杂性很少是部分的线性组合。例如,COCOMO 模型表明努力呈指数增长。努力必须基于复杂性之类的东西。 (COCOMO 不直接衡量这一点,因此很难完全确定。)线性增长的说法需要用一些引用或参考或链接或其他东西来支持。
  • 同意,但将其视为“原样”的系统。我们可以采用整个系统的 C(S) 复杂度。或者,我们可以将相同的系统分解为 SS* 并计算每个系统的复杂度,当您将它们重新加在一起时,您将得到 C(S)。该等式并不意味着复杂性中的任何关系。
  • @Nix:“这个等式并不意味着任何复杂性的关系”?它清楚地表明整个复合体是一个线性和。我很确定,这不可能是真的,除非在极少数情况下每个组件都是绝对独立的。也就是说,每个分量都是某个复杂向量空间中的不同向量。

标签: architecture system


【解决方案1】:

该等式试图说明的只是系统复杂性是其各个部分的总和。

所以

C(S) = X(整体复杂度)

现在将其分解为不同的子系统

C(S) = C(SS1) + C(SS2)+..C(SSn)

计算每个系统的复杂度:

C(SS1) = A

C(SS2) = B

C(SSn) = n

如果我们将它们加在一起,它将与 C(S) aka 相同:

X = A + B + ..n

C(S) = X = A + B + .. + n = C(SS1) + C(SS2)+..C(SSn)

请务必注意 S.Lott 上面所说的内容,该等式绝不意味着复杂性是系统与其子系统的线性关系,即系统复杂性不一定会随着您添加新组件而线性增长。

【讨论】:

    【解决方案2】:

    我知道这个问题已经得到解答,但为了将来参考,我强烈建议您看看 Roger Sessions 在复杂性方面的工作;特别是在测量基于 SOA 的系统的复杂性方面,他也做了很多工作。

    就测量复杂性而言 - 请查看此 PDF 的第 8 页:http://www.objectwatch.com/whitepapers/ITComplexityWhitePaper.pdf

    【讨论】:

      猜你喜欢
      • 2022-08-20
      • 2020-04-28
      • 2010-12-30
      • 2021-08-10
      • 2014-02-03
      • 1970-01-01
      • 1970-01-01
      • 2011-09-26
      • 1970-01-01
      相关资源
      最近更新 更多