1.1节介绍物理世界复杂系统实例(个人计算机、动植物、物质、社会机构)。1.2节讨论软件系统的复杂性,可以说软件系统比自然界的复杂性还要高,并讨论了导致软件系统复杂的四大原因。1.3节总结了复杂系统的5大属性,读者可以结合1.1节中直观的实例对其进行思考与理解。

摘录:

  某些软件系统并不复杂,这些大多是可以被遗忘的应用,他们是由一个人提出、构建、维护和使用的。这些系统的目的通常很有限,生命周期也很短。我们可以扔掉他们,用全新的软件代替他们,不必尝试复用、修复他们或者扩展他们的功能。这样的应用开发起来通常难度不大,且比较乏味。(结合我先前干的一些活,却有同感)

  工业级软件的特征是,单个开发着要理解其设计的所有方面非常困难,几乎是不可能的。

  软件的复杂性是一个基本特征,而不是偶然如此。

  许多复杂系统都有几乎可分解的层次结构。

  选择哪些作为系统的基础组件很大程度取决于观察者的判断,对于一个观察者来说很基础的东西,对另一个观察者可能具有很高的抽象层次。

  层次系统通常是可分解的,但这些部分又并不是完全独立的。组件内的联系通常比组件间的联系更强,这种差异让我们以相对隔离的方式来研究每个部分。

  复杂系统具有共同的模式,这些模式可能涉及小组件的复用。如动植物都利用某种脉管系统在器官内传输养料,同一物种的不同个体之间都表现出个性的差异。