A.抽象B.理论C.设计D.抽象、理论和设计
多项选择题系统科学方法针对的是复杂性问题,而复杂性又是相对于人的能力而言的。要理解软件开发的复杂性和困难,就有必要先了解“人固有能力的局限性,以及使用工具后产生的力量“。下列哪些选项支撑这个观点?()
A.就体力而言,例如,目前跳高的世界纪录是2.45m(1993年,古巴人哈维尔·索托马约尔创造),而对一个普通的成年人来说,要想跳过1m的高度并不困难。现在,如果我们借鉴在算法复杂性分析中的“大O”表示,那么,显然,世界冠军与我们一般的成年人相比,其体力处在同一个数量级。B.就脑力而言,要说人的能力处在同一个数量级更是让人难以接受。然而,如果能像体育运动那样明确比赛规则的话,就不得不接受人固有的脑力也处在同一个数量级的事实。比如,1加2加3一直加到N,规定必须一步一步相加,当N确定时,人们所花费的时间不会相差太多,更一般的,当用同一个算法解决同一个问题时,不同的人所花费的时间大致在一个数量级之中。换言之,在这种意义上,人的脑力处于同一个数量级。C.既然人的体力和脑力极其有限,人固有的体力和脑力又处在同一个数量级上,那又如何解释人类在认知和改造客观世界中所产生的巨大力量?答案在于,依靠工具,人既能够创造工具又能够使用工具。D.尽管人还未能跳过2.45m的高度,计算的速度也不快(智力本质上可以看作是一个认知过程,就时间而言,所有的智力过程都是不可逆的、确定的计算过程,也就是一种计算)。然而,若使用有形的工具,如飞机,人就可以飞得很高;使用无形的工具,如数学理论,就可以在较短的时间内解决一些复杂的计算问题。
多项选择题对软件的分析,可以从系统的角度,也可以从集合的角度来分析。因此,控制和降低软件的复杂度的问题就可以转化为如何降低系统的复杂性,或更为基础地如何降低集合复杂性的问题。下列哪些选项能够有效地降低系统(或集合)的复杂性?()
A.要使一个集合的复杂性下降,就要想办法使它有序;而要使一个集合有序,最好的办法就是对它按等价类进行分割。B.要使一个软件系统的复杂性下降,无非也是分割,就要将其进行分割,也就是将一个大系统划分为若干小的子系统,最终,使人们易于理解和交流。C.系统软件开发中,要遵循抽象第一的原则。所谓抽象,就是要对实际的事物进行人为处理,抽取所关心的、共同的、本质特征的属性,并对这些事物及其特征属性进行描述。由于抽取的是共同的、本质特征的属性,从而大大降低了系统元素的绝对数量。D.我们知道,一个系统就是一个集合。那么,一个系统的分解也就是一个集合的分解。在集合分解中,有一个称为等价类的重要概念,使用该概念可以将一个集合划分为若干互不相交的子集(等价类),从而降低了系统的复杂性。
单项选择题计算机网络是计算机系统中一个有代表性的复杂系统,需要高度协调的工作才能保证系统的正常运行。为此,必须精确定义网络中数据交换的所有规则(网络协议),然而由这些规则组成的集合却相当庞大和复杂。为了解决复杂网络协议的设计问题,国际标准化组织(ISO)采用系统科学的思想,定义了现在被广泛使用的开放系统互连模型(Open System Interconnection,OSI),该模型将整个网络协议划分为几个层次?()
A.应用层、传输层、网络层、网络接口层B.物理层、网络接口层、数据链路层、网络层、运输层、表示层和应用层C.物理层、数据链路层、网络层、运输层、会话层、表示层和应用层D.应用层、运输层、网络层、数据链路层、物理层
单项选择题下列叙述分别体现了软件开发的系统化方法需要遵循的基本原则:抽象第一的原则、层次划分的原则、模块化原则。请按下列叙述选择对应的原则()。(1)对实际的事物进行人为处理,抽取所关心的、共同的、本质特征的属性,并对这些事物及其特征属性进行描述。由于抽取的是共同的、本质特征的属性,从而大大降低了系统元素的绝对数量。(2)根据系统模型说明的原因和真实系统提供的依据,提出以模型代替真实系统进行模拟实验,达到认识真实系统特性和规律性的方法。(3)如果一个系统过于复杂,以至于很难处理,那么,就得先将它分解为若干子系统。
A.抽象第一原则、层次划分原则、模块化原则B.抽象第一原则、模块化原则、层次划分原则C.层次划分原则、抽象第一原则、模块化原则D.层次划分原则、模块化原则、抽象第一原则
单项选择题下列有关复杂性的说法不正确的是()。
A.根据信息论的观点,复杂度可以定义为系统表明自身方式数目的对数,或是系统可能状态数目的对数:K=logN,其中K是复杂度,N是不同的可能状态数。B.若两个系统各自有M个和N个可能状态,那么组合系统的复杂度为K=logMN。C.从可操作性的角度来看,复杂性可以定义为:寻找最小的程序或指令集来描述给定的“结构”,即一个数字序列。D.若用比特计算,最小程序的大小相对于数字序列的大小就是其复杂性的度量。