一般把用一个名字就可调用的一段程序称为“模块”。模块具有如下3个基本属性。
功能:
指该模块要完成的任务。

逻辑:
描述模块为了完成任务,模块内部怎么做。
状态:
使用该模块时的环境和条件。
对于一个模块,还应该按模块的外部特性与内部特性分别进行描述。模块的外部特性是指模块的模块名、模块的输入/输出参数,以及它给程序乃至整个系统造成的影响。
而模块的内部特性则是指完成其功能的程序代码和仅供该模块内部使用的数据。对于其他模块来说,只需了解被调用模块的外部特性就足够了,不必了解它的内部特性。在软件设计时,通常是先确定模块的外部特性,然后再确定它的内部特性。前者是软件总体设计的任务,后者是详细设计的任务。
模块化
是把整个系统划分成若干个模块,每个模块完成一个子功能,将多个模块组织起来实现整个系统的功能。模块化设计方法强调清楚地定义每个模块的功能和它的输入/输出参数,而模块的实现细节隐藏在各自的模块之中,与其他模块之间的关系可以是调用关系,因此模块化程序易于调试和修改。
随着模块规模的减小,模块的开发成本减少,但是模块之间的接口变得复杂起来,使得模块的集成成本增加。
那么模块的规模多大才合适呢?模块之间的关系可能密切到什么程度呢?软件工程用模块独立性来衡量。