
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.4.2 人在处理复杂性时的能力局限
既然我们知道复杂系统的设计应该是怎样的,那么为什么在开发它们时还是会遇到严重的问题呢?这涉及软件的组织复杂性的概念,它还是相对比较新的。但是,还存在另一个主宰因素,即人在处理复杂性时的能力局限。
在刚开始分析复杂软件系统时,我们发现许多部分必须以多种交错的方式进行交互,这些部分和它们的交互行为之间几乎没有什么显见的共性。这就是无组织的复杂性的例子。当我们通过设计的过程对这种复杂性进行组织时,必须同时考虑许多事情。例如,在一个航空交通控制系统中,我们必须同时处理许多不同飞机的状态,必须面对相当大的、交错的、有时是非确定性的状态空间。遗憾的是,一个人绝对没有办法同时追踪所有的细节。心理学家的一些实验(如Miller的实验)表明,一个人能够同时理解的最大信息数量是7个,上下浮动2个[16]。这种渠道能力似乎与短期记忆的能力有关。Simon补充说明,处理速度也是一个限制因素:大脑需要大约5秒钟才能接受一组新的信息[17]。
因此,我们面对的是一个根本难题:要开发的软件系统的复杂性在增加,而我们处理复杂性的能力却有局限。怎样才能解决这个困境?