内聚是指模块内部各个元素之间关联的强度,即内部的“凝聚力”。它可以用来评估软件结构的好坏。内聚分类是评估软件结构的重要指标,通常从弱到强分为以下几类:
1. 偶然内聚
偶然内聚是最弱的一种内聚类型,这种内聚是因为一组通过某一接口调用的程序单元被放在一起而形成的。这种模块内部没有任何逻辑上的关联,它们仅仅是被放在一起了。偶然内聚通常是程序设计中为了方便而群组了不相互关联的程序单元,对于整个程序结构来说是非常不利的。它可能导致模块之间关系混乱、模块功能不清晰等问题。
2. 逻辑内聚
逻辑内聚是相对于偶然内聚而言的另一种内聚类型,在逻辑内聚的模块中,程序单元之间的关系是由一个共同的目标确定的。这种模块中的程序单元通常执行一组相关的任务,这些任务可以被视为一种逻辑结构,并且与模块的其余部分没有联系。逻辑内聚的好处是可以方便地将一组操作组织在一起,使得代码更容易进行维护和修改,同时也提高了代码的可读性。
3. 时间内聚
时间内聚是指一组程序单元从逻辑上与周围程序单元所做的事情具有相似性,但只有在一定的时间段内才会出现。这种内聚通常在时间上由同一时间段执行的一系列操作组成,比如在特定的时间段内执行循环。时间内聚的代码通常比逻辑内聚的代码要更难维护,因为它们更关注执行的时间而不是程序的逻辑结构。
4. 过程内聚
过程内聚是一种结构较好的内聚类型,在这种模块中,程序单元集合的执行是由流程所决定的。这种模块中的程序单元通常都是用于实现某个特定的算法或处理过程的,流程中的每个步骤都与模块内部的其他程序单元具有密切联系。过程内聚的代码结构通常是清晰的,模块和算法的分离是明显的。
5. 通讯内聚
通讯内聚是指程序中的程序单元之间的联系较多,包括模块之间的传递参数、调用等。这种内聚是比过程内聚和时间内聚强一些的,这是因为程序单元之间的联系是在运行时决定的。通讯内聚的模块中通常都是用于实现某个特定的逻辑功能的,但是这些程序单元之间的联系通常比过程内聚更紧密。
6. 功能内聚
功能内聚是内聚种类中最强的一种,这种内聚是指程序单元之间因为执行同一个功能而被组织在一起。在这种模块中,程序单元之间的关系非常紧密,因为它们都是为了实现一个共同的目标而存在的。这种内聚的好处是使得整个软件结构更容易理解、更容易维护。
总的来说,内聚种类由弱到强可以分为偶然内聚、逻辑内聚、时间内聚、过程内聚、通讯内聚以及功能内聚。软件开发者应该尽可能避免使用弱内聚的模块,并尽可能使用强内聚的模块。在软件设计中选择不同的内聚类型时,需要根据实际情况分析,选择合适的内聚方式,以最大程度地优化软件结构。
扫码咨询 领取资料