内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展.
低内聚:
(1)偶然内聚:如果一个模块完成一组任务,这些任务彼此间即使有关系,关系也是很松散 的,这就叫做偶然内聚;
(2)逻辑内聚:如果一个模块完成的任务在逻辑上属于相同或相似的一类(例如,一个模块产生各种类型的全部输出),称为逻辑模块;
(3)时间内聚:一个模块包含的任务必须在同一段时间内执行(例如,模块完成各种初始化工作),就叫时间内聚.
中内聚:
(1)过程内聚:如果一个模块内的处理元素是相关的,而且必须以特定次序执行,则称为过程内聚;
(2)通信内聚:如果模块中所有元素都使用同一个输入数据和(或)产生同一个输出数据,则称为通信内聚.
高内聚:
(1)顺序内聚:如果一个模块内的处理元素和同一个功能密切相关,而且这些处理必须顺序执行(通常一个处理元素的输出数据作为下一个处理元素的输入数据),则称为顺序内聚.根据数据流图划分模块时,通常得到顺序内聚的模块,这种模块彼此间的连接往往比较简单.
(2)功能内聚:如果模块内所有处理元素属于一个整体,完成一个单一的功能,则称为功能内聚.功能内聚是最高程度的内聚.