在工程学中,内聚性被用来描述一个系统中的元素是否紧密相连。内聚性分类即是根据元素之间的关联程度进行分类。一个高内聚的模块指的是所有的操作和数据都自然的在一起,与其他部分的联系较少。相比之下,低内聚则表示模块的操作和数据没有自然的联系,容易被干扰,内部的两个部分可能会因为必须依赖于其他部分而联系在一起。在本文中,我们将从多个角度探讨内聚性分类在软件工程中的应用。
内聚性分类类型
根据内聚性分类规则,软件系统可分为以下五类:
1. 功能内聚性:所有操作都与模块的一个功能有关。
2. 顺序内聚性:模块的所有操作都必须按照某个顺序执行。
3. 通信内聚性:操作集合只有一个输出,由其他模块共享。
4. 过程内聚性:所有操作都支持一个共同的任务或过程。
5. 并行内聚性:所有操作用来执行并发控制。
内聚性分类在软件开发中的应用
高内聚性的代码让程序易于维护,使其更加灵活。如果模块内部出现了太多关联,那么一旦需求变化,不同的部分就可能相互影响,导致代码实现难度大增。因此,软件开发人员在实现中尽可能提高内聚性。
1.代码调试
当代码不可酌情修改时,调试起来就变得困难,而且可能会影响其他代码。 如果代码维护很困难,那么靠着调试来解决软件的问题就会变得相当耗费精力。内聚性分类可以帮助程序员更好地组织代码,使得调试起来相比于低内聚性代码更加容易。
2.代码重用
实现高内聚性的模块可以帮助程序员将代码重用最大化。重用代码意味着程序员不必重头开始编写代码,而可以使用之前编写过的代码,从而提高代码组织的效率。事实上,许多面向对象语言都组成了一些特殊的典型类,例如 IComparable 和 IDictionary,因为这些类的接口和实现高度类似,可以在许多不同的项目中重用。
3.变更处理
在插入功能或进一步开发项目时,程序员需要对代码进行修改。如果代码是低内聚的,这时就需要花费大量的时间和精力来找到其他代码的位置以及如何进行修改操作。这就是代码可维护性的问题,是实现低内聚性的代码必须考虑的重点。
扫码咨询 领取资料