模块独立性
模块独立性是指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少且接口最简单。衡量模块独立性的标准是耦合性和内聚性。(低耦合高内聚)
耦合性
耦合性也成为模块间联系,指软件系统结构中各模块间相互联系的紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性就越差。
耦合性种类(低->高)
无直接耦合、数据耦合、标记耦合、控制耦合、公共耦合、内容耦合
- 无直接耦合(最独立):属于不同模块控制与调用
- 数据耦合:传递简单的数据值
- 标记耦合:传递数据结构
- 控制耦合:传递控制变量,当一个模块调用另一个模块时。被调用的模块通过该控制变量的值有选择地执行模块内某一功能。因此被调用模块内应具有多个功能、那个功能起作用,受调用模块控制。
- 公共耦合:指通过一个公共数据环境相互作用的那些模块间的耦合。
- 内容耦合:当一个模块直接另一模块的内部数据,或通过非正常入口而转入另一个模块内部,这种模块间的耦合为内容耦合,这种情况往往出现在汇编程序设计中。
内聚性
内聚性也称为块内联系。指模块的功能强度的度量,及一个模块内部各个元素彼此结合的紧密程度的含量。若一个模块内各个元素的联系越紧密,则它的内聚性就越高。
内聚性种类(高->低)
功能内聚、顺序内聚、通信内聚、时间内聚、逻辑内聚、偶然内聚
- 功能内聚(最强):模块内所有的元素共同完成一个功能缺一不可
- 顺序内聚:密切相关,顺序执行,前一模块输出为下一模块输入
- 通信内聚:所有处理在同一数据结构上操作
- 时间内聚:同时执行,组合在一起
- 逻辑内聚:若干个逻辑相似的功能,通过参数确定完成哪一个
- 偶然内聚:各处理元素之间没有任何联系
摘自 程序员教程(第二版)