ZKX's LAB

为什么要进行模块化设计?

2020-10-23新闻6

模块化设计,是产品设计中一种广泛应用的设计技术,无论是硬件还是软件,使用模块化设计有助于实现产品的系列化、标准化、组合化。模块的基本概念

什么是模块?

模块是由边界元素限定的相邻的程序元素(如数据说明,可执行的语句)的序列,而且有一个总体标识符来代表它。>

其中的边界元素,就是像Pascal这样的块结构语言中的Begin…end对,或者C语言中的{…}对这些限定一段代码行的元素。

从这个定义来看,过程、函数、子程序、宏、类及类的方法等,都是模块。

换句话说,模块就是构成程序的基本构件。

而且,无论你进行软件设计时是否采用模块化设计,软件程序都是由多个模块构成的。

而模块化设计就是把软件划分成多个可独立命名且独立访问的模块(程序员的主动行为),其中的每个模块都能完成一个子功能,最后再把这些模块集成起来构成一个整体——满足用户需求的软件。模块化原理的验证

模块化设计是一种降低软件复杂度的方法。可以想像,如果一个大型程序仅由一个模块组成,它是很难让人理解的。

模块化降低复杂度的原理可由下面的数学推导来证明。

假设问题x的复杂度为函数C(x),解决问题x需要的工作量(时间)为函数E(x)。对于两个问题P1和P2,如果 C(P1)>C(P2),那么E(P1)>E(P2)。

根据我们解决问题的经验,如果一个问题由 P1和 P2两个问题组合而成,那么它的复杂程度大于分别考虑每个问题时的复杂程度之和,即:

C(P 1 +P 2 ) > C(P 1 ) + C(P 2 )

这一公式结合前面“越复杂的问题解决的工作量越大”的结论,我们就可以得到下面的不等式:

E(P 1 +P 2 ) > E(P 1 ) + E(P 2 )

即:解决一个大问题的工作量会大于解决由它分解成的两个小问题的工作量。换句话说,把复杂的问题分解成许多容易解决的小问题时,原来的问题也就容易解决了。

这就是模块化的原理。

但是,并不是将软件划分成模块的数量越多越好,因为随着模块数量的增加,处理模块间的接口关系的工作量也会随之增加。

就如下图所示:

所以,模块化设计除了要对每个模块作好定义,还要依据设计原理确定合适的模块数量。

模块分解好方法,可让问题不复杂

模块定义要做好,模块数目要恰当

参考书目:软件工程(第4版),作者:张海藩 吕云翔,出版社:人民邮电出版社有限公司

#技术编程#模块化设计#模块

随机阅读

qrcode
访问手机版