列表

详情


    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 (  ), 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(  )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(  )fashion, and the complexity of the whole increases much more than linearly.
The complexity of software is a(an) (  )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(  )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.

第 1 问

A. task

B. job

C. subroutine

D. program

第 2 问

A. states

B. parts

C. conditions

D. expressions

第 3 问

A. linear

B. nonlinear

C. parallel

D. additive

第 4 问

A. surface

B. outside

C. exterior

D. essential

第 5 问

A. fixed

B. included

C. ignored

D. stabilized

参考答案: C A B D C

详细解析:

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

上一题