一个大而复杂的软件系统若想简单化,就要分解,这就引入了模块化的概念,模块化:把一个大而复杂的软件系统划分成易于理解的比较单纯的模块结构。那么与模块化相对应的就是抽象化了,抽象化:软件系统进行模块设计时,可有不同的抽象层次。
模块(Module)一般具有如下三个基本属性:
功能:描述该模块实现什么功能;
逻辑:描述模块内部怎么做;
状态:该模块使用时的环境和条件。
模块的独立性:是指软件系统中每个模块只涉及软件要求的具体的子功能。一般采用两个准则度量模块独立性,即模块间耦合和模块内聚。
(一)模块耦合