Software entities are more complex for their size than perhaps any other human construct, because no two parts are alike (at least above the statement level). If they are, we make the two similar parts into one, a (1), open or closed.In this respect software systems differ profoundly from computers, buildings, or automobiles, where repeated elements abound.Digital computers are themselves more complex than most things people build; they have very large numbers of states.This makes conceiving, describing, and testing them hard.Software systems have orders of magnitude more(2)than computers do.Likewise, a scaling-up of a software entity is not merely a repetition of the same elements in larger size; it is necessarily an increase in the number of different elements.In most cases, the elements interact with each other in some(3)fashion, and the complexity of the whole increases much more than linearly.The complexity of software is a(an) (4)property, not an accidental one.Hence descriptions of a software entity that abstract away its complexity often abstract away its essence.Mathematics and the physical sciences made great strides for three centuries by constructing simplified models of complex phenomena, deriving, properties from the models, and verifying those properties experimentally. This worked because the complexities(5)in the models were not the essential properties of the phenomena. It does not work when the complexities are the essence. Many of the classical problems of developing software products derive from this essential complexity and its nonlinear increases with size. Not only technical problems but management problems as well come from the complexity.5、____
- A.fixed
- B.included
- C.ignored
- D.tabilized
正确答案及解析
正确答案
解析
软件实体规模上或许比其他任何人类创造结构要更为复杂,因为没有两个部分是一样(至少在语句级以上)。如果他们一样,我们便将这两个相似部分合到一起,成为一个子程序,打开或关闭。在这一点上,软件系统与计算机、建筑或汽车经常混合使用一些重复元件有很大区别。数字计算机本身比人类所建造大多数事物都要复杂,他们有超级多状态。这使得对他们进行想象、描述和测试都很困难。软件系统状态数目更是比计算机超出几个数量级。同理,软件实体扩展不单是这一批元件变大一点,它必将是大量不同元件都有增加。在大多数情况下,构件以非线性方式相互作用,而整体复杂性远超线性增加。软件复杂特点具有必然性,并非偶然。因此,对于软件实体描述,剥离了它复杂性往往就等于剥离了它本质。过去这三个世纪,通过对复杂现象构建出简化模型,从模型属性再倒推,并通过实验验证这些属性,数学和物理科学取得了长足进步。这之所以行之有效,是因为模型中忽略掉复杂特性并不是现象中重要本质属性。而当这些复杂性很重要时,这种方法就会失效。