Software entities are more complex for their size than perhaps any other human construct,because no two parts are alike(at least

admin2017-11-27  14

问题 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  (71),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 (72) 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(73)fashion,and the complexity of the wholeincreases much more than linearly.
  The complexity of software is a(an)  (74) 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.(75)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.
(75)

选项 A、fixed
B、included
C、ignored
D、stabilized

答案C

解析 规模上,软件实体可能比任何由人类创造的其他实体要复杂,因为没有任何两个软件部分是相同的(至少是在语句的级别)。如果有相同的情况,我们会把它们合并成供调用的子函数。在这个方面,软件系统与计算机、建筑或者汽车大不相同,后者往往存在着大量重复的部分。
    数字计算机本身就比人类建造的大多数东西复杂。计算机拥有大量的状态,这使得构思、描述和测试都非常困难。软件系统的状态又比计算机系统状态多若干个数量级。
    同样,软件实体的扩展也不仅仅是相同元素重复添加,而必须是不同元素实体的添加。大多数情况下,这些元素以非线性递增的方式交互,因此整个软件的复杂度以更大的非线性级数增长。
    软件的复杂度是必要属性,不是次要因素。因此,抽掉复杂度的软件实体描述常常也去掉了一些本质属性。数学和物理学在过去三个世纪取得了巨大的进步,数学家和物理学家们建立模型以简化复杂的现象,从模型中抽取出各种特性,并通过试验来验证这些特性。这些方法之所以可行——是因为模型中忽略的复杂度不是被研究现象的必要属性。当复杂度是本质特性时,这些方法就行不通了。
    上述软件特有的复杂度问题造成了很多经典的软件产品开发问题。复杂度不仅仅导致技术上的困难,还引发了很多管理上的问题。
转载请注明原文地址:https://kaotiyun.com/show/DBPZ777K
0

最新回复(0)