耦合表示模块之间联系的程度。紧密耦合表示模块之间联系非常强,松散耦合表示模块之间联系比较弱,非直接耦合则表示模块之间无任何直接联系。模块的耦合类型通常也分为7种。
- 非直接耦合:两个模块之间没有直接关系,它们之间的联系完全是通过上级模块的控制和调用来实现的。
- 数据耦合:一组模块借助参数表传递简单数据。
- 标记耦合:一组模块通过参数表传递记录等复杂信息(数据结构)。
- 控制耦合:模块之间传递的信息中包含用于控制模块内部逻辑的信息。
- 通信耦合:一组模块共用了一组输入信息,或者它们的输出需要整合以形成完整数据,即共享了输入或输出。
- 公共耦合:多个模块都访问同一个公共数据环境,公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。
- 内容耦合:一个模块直接访问另一个模块的内部数据;一个模块不通过正常入口转到另一个模块的内部;两个模块有一部分程序代码重叠;一个模块有多个入口等。
对于模块之间耦合的强度,主要依赖于一个模块对另一个模块的调用、一个模块向另一个模块传递的数据量、一个模块施加到另一个模块的控制的多少,以及模块之间接口的复杂程度。