对软件的分析,可以从系统的角度,也可以从集合的角度来分析。因此,控制和降低软件的复杂度的问题就可以转化为如何降低系统的复杂性,或更为基础地如何降低集合复杂性的问题。下列哪些选项能够有效地降低系统(或集合)的复杂性?()
A.要使一个集合的复杂性下降,就要想办法使它有序;而要使一个集合有序,最好的办法就是对它按等价类进行分割。
B.要使一个软件系统的复杂性下降,无非也是分割,就要将其进行分割,也就是将一个大系统划分为若干小的子系统,最终,使人们易于理解和交流。
C.系统软件开发中,要遵循抽象第一的原则。所谓抽象,就是要对实际的事物进行人为处理,抽取所关心的、共同的、本质特征的属性,并对这些事物及其特征属性进行描述。由于抽取的是共同的、本质特征的属性,从而大大降低了系统元素的绝对数量。
D.我们知道,一个系统就是一个集合。那么,一个系统的分解也就是一个集合的分解。在集合分解中,有一个称为等价类的重要概念,使用该概念可以将一个集合划分为若干互不相交的子集(等价类),从而降低了系统的复杂性。