内聚是一个模块内部各个元素彼此结合的紧密程度的度量。一个内聚程度高的模块(在理想情况下)应当只做一件事。一般模块的内聚性分为7种类型,如下图所示:
1)偶然(巧合)内聚:模块完成的动作之间没有任何关系,或者仅仅是一种非常松散的关系。
2)逻辑内聚:指模块内执行若干个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。
3)瞬时(时间)内聚:模块内部的各个组成部分所包含的处理动作必须在同一时间间隔内执行,例如初始化模块。
4)过程内聚:指一个模块完成多个任务,这些任务必须按指定的过程执行。
5)通信(信息)内聚:指模块内的所有处理元素都在同一个数据结构上操作,或者各处理使用相同的输入数据或者产生相同的输出数据。
6)顺序内聚:指一个模块中的各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出就是下一功能元素的输入。
7)功能内聚:指模块内的所有元素共同作用完成一个功能,缺一不可,这是最强的内聚。