首页 百科知识 模块与模块化

模块与模块化

时间:2022-10-09 百科知识 版权反馈
【摘要】:软件的总体设计阶段需要将软件分解为多个模块,并通过树形或层次结构来表达模块之间的调用关系,故模块与模块化是软件设计中的一条非常重要的基本原理。模块化可以被定义为把软件划分成独立命名且可独立访问的模块,每个模块均能完成一个子功能,而这些模块组合在一起则可以完成指定的功能,以满足用户的需要。此外,人类在实际工程的实施过程中积累了丰富的模块化经验。

4.2.2 模块与模块化

软件的总体设计阶段需要将软件分解为多个模块,并通过树形或层次结构来表达模块之间的调用关系,故模块与模块化是软件设计中的一条非常重要的基本原理。

模块可以被定义为由边界元素限定的相邻程序元素的序列,而且有一个总体标识符代表它。在结构化方法中,“过程”“函数”“子程序”等均视为模块。

模块化可以被定义为把软件划分成独立命名且可独立访问的模块,每个模块均能完成一个子功能,而这些模块组合在一起则可以完成指定的功能,以满足用户的需要。

引入模块化思想同样是因为人类智能的极限,即对一个复杂目标对象的理解比理解多个经过分解的子对象要困难很多。此外,人类在实际工程的实施过程中积累了丰富的模块化经验。

假设现有两个实际工程问题P1和P2,用函数C(x)定义完成实际工程问题x的难易程度,E(x)表示完成实际工程问题x的工作量,且在客观世界中存在一个有趣的规律:

C(P1+P2)>C(P1)+C(P2

即将一个复杂问题分解后,完成它的难度将会降低。因此,有下面的推理过程:

Step1:C(P1)>C(P2)→E(P1)>E(P2)。

Step2:C(P1+P2)>C(P1)+C(P2)→E(P1+P2)>E(P1)+E(P2)。

故将复杂问题分解成许多更容易解决的小问题,原问题也就容易解决了,这是模块化思想的数学理论依据。

当然,理想状态是将软件进行无限分割,软件模块越多越好,而软件模块的构造越简单越好,但考虑到软件模块在划分完成之后,需要对其进行组装并测试,那么这种理想状态是很难实现的。下图就很好地说明了这个问题。

img40

图4.5 模块数和软件成本之间的关系

图中表明,单个模块的成本随着模块数的增加不断降低,相反,模块接口的成本却不降反升。而综合这两种成本曲线得到的软件总成本却是一个包含了最小值的抛物线。该最小值就是理论情况下开发该软件最适当的模块数M。当然,要精确获得M非常困难,一般有经验的设计人员都是通过运用模块复杂性度量方法和启发式规则来获取一个M的近似值。

模块化的主要优点是:

◇软件结构更加清晰。

◇有助于软件的实现、测试、维护。

◇有助于提高软件的可靠性

◇有助于软件的开发过程的组织与管理。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈