5.4 总体设计 - 设计原理之内聚
内聚
内聚(Cohesion)是衡量一个模块内各个元素彼此结合紧密程度的指标,也是模块功能强度的度量。内聚度越高,模块独立性越强。
内聚类型
1. 偶然内聚(Coincidental Cohesion)
- 定义:模块内各部分之间没有联系或联系松散。
- 问题:
- 不易修改和维护。
- 内容不易理解。
- 可能将程序段分割到多个模块,导致频繁互相调用。
2. 逻辑内聚(Logical Cohesion)
- 定义:将几种相关功能组合在一起,通过传递的参数来决定执行哪种功能。
- 问题:
- 不执行单一功能,修改困难。
- 需要传递控制参数,形成控制耦合。
- 将未用部分调入内存,降低系统效率。
3. 时间内聚(Classical Cohesion)
- 定义:模块为多功能,各功能执行与时间有关,通常在同一时间段内执行。
- 优点:比逻辑内聚强,内部逻辑判定转移少。
- 注意:需注意时序问题。
4. 过程内聚(Procedural Cohesion)
- 定义:使用流程图设计程序时,流程图中某部分划出组成模块。
- 问题:仅包含完整功能的一部分,内聚度低,耦合度高。
5. 通信内聚(Communicational Cohesion)
- 定义:模块内各功能部分使用相同的输入数据或产生相同的输出数据。
- 优点:内聚度高。
- 问题:可能破坏功能独立性。
6. 顺序内聚(Sequential Cohesion)
- 定义:模块内处理元素顺序执行,一个元素的输出作为下一个的输入。
- 来源:通常由数据流图划分得到。
7. 功能内聚(Functional Cohesion)
- 定义:模块中所有部分协同工作完成一项具体功能。
- 优点:易于修改和维护,功能明确,耦合简单。