参考答案: C A B D C
详细解析:
软件实体规模上或许比其他任何人类创造的结构要更为复杂,因为没有两个部分是一样的(至少在语句级别以上)。如果他们一样,我们便将这两个相似的部分合到一起,成为一个子程序,打开或关闭。在这一点上,软件系统与计算机、建筑或汽车经常混合使用一些重复的元件有很大区别。
数字计算机本身比人类所建造的大多数事物都要复杂,他们有超级多的状态。这使得对他们进行想象、描述和测试都很困难。软件系统的状态数目更是比计算机的超出几个数量级。
同理,软件实体的扩展不单是这一批元件变大一点,它必将是大量不同元件都有增加。在大多数情况下,构件以非线性的方式相互作用,而整体的复杂性远超线性增加。
软件的复杂的特点具有必然性,并非偶然。因此,对于软件实体的描述,剥离了它的复杂性往往就等于剥离了它的本质。过去这三个世纪,通过对复杂的现象构建出简化模型,从模型的属性再倒推,并通过实验验证这些属性,数学和物理科学取得了长足的进步。这之所以行之有效,是因为模型中忽略掉的复杂特性并不是现象中重要的本质属性。而当这些复杂性很重要时,这种方法就会失效。