软件工程中内聚的分类

简介: 软件工程中内聚的分类

在软件工程中,内聚是用来衡量模块内部功能联系紧密程度的概念。有不同的内聚类型,其中包括偶然内聚、逻辑内聚、过程内聚和通信内聚。下面是对每种内聚类型的简单说明和举例:


偶然内聚(Coincidental Cohesion):偶然内聚指的是模块内的元素之间没有明确的功能联系,它们仅仅是因为某种偶然的原因而被组合在一起。这种内聚类型是最低级别的内聚,通常会导致代码难以维护和理解。

举例:一个模块中包含了各种无关的函数,这些函数之间没有共享的数据或交互行为,它们只是被放在同一个模块中。


逻辑内聚(Logical Cohesion):逻辑内聚指的是模块内的元素按照某种逻辑关系相关联,共同实现一个或多个功能。这种内聚类型是较高级别的内聚,模块内的元素在逻辑上相互关联,共同解决某个问题。

举例:一个处理订单的模块,包含了创建订单、查询订单、修改订单等函数,它们在逻辑上都与订单处理相关。


过程内聚(Procedural Cohesion):过程内聚指的是模块内的元素按照某种执行顺序相关联,共同完成一项任务或处理一种情况。这种内聚类型要求模块内的元素按照特定的过程顺序执行。

举例:一个排序模块,包含了选择排序、冒泡排序、插入排序等函数,它们按照不同的排序算法的过程顺序执行。


通信内聚(Communicational Cohesion):通信内聚指的是模块内的元素通过共享数据进行交流和协作,彼此依赖于共享的数据或信息。这种内聚类型要求模块内的元素在完成任务时通过通信实现协作。

举例:一个用户管理模块,包含了添加用户、删除用户、更新用户信息等函数,它们通过共享的用户数据进行交流和协作。


需要注意的是,内聚类型并不是绝对的,一个模块可能同时具有多种内聚类型的特点,但通常会有一种主导。理想情况下,我们希望模块具有高内聚和低耦合,即模块内元素之间的功能联系紧密,同时与其他模块之间的依赖关系较弱。这有助


于提高代码的可维护性、重用性和扩展性。

相关文章
|
2天前
|
存储 测试技术 BI
软件体系结构 - 系统分析与设计(2.面向对象方法)
【4月更文挑战第6天】软件体系结构 - 系统分析与设计(2)
21 0
|
7月前
|
搜索推荐
软件工程中内聚的分类
软件工程中内聚的分类
148 0
|
2天前
|
传感器 算法 测试技术
【软件设计师备考 专题 】设计软件结构:构件分解和接口定义
【软件设计师备考 专题 】设计软件结构:构件分解和接口定义
83 1
|
2天前
|
传感器 设计模式 测试技术
【软件设计师备考 专题 】程序设计的基础:模块划分的原则、方法和标准
【软件设计师备考 专题 】程序设计的基础:模块划分的原则、方法和标准
65 0
|
9月前
|
数据可视化
52【软件设计】软件设计方法归纳总结
软件设计方法有:**结构化设计**(数据流图为依据)、**面向对象设计**(面向对象概念为依据);
91 0
|
2天前
|
Java 测试技术 程序员
2024提升计划|优秀程序员的10大共性特征
在设计代码时,很多开发者并没有考虑到"容易测试"这个因素,可测试性不强。如果工程师在开发逻辑的过程中同时考虑如何轻松地进行测试,那么编写出的代码将具备良好的可读性和简单性,并经过精心设计,而不仅仅是"能工作"而已。测试所得到的主要好处发生在考虑测试和编写测试的时候,而不是在运行测试的时候!
|
缓存 前端开发 架构师
|
编译器 领域建模 Scala
代数数据类型与领域建模
代数数据类型与领域建模
|
Java 领域建模 数据库
为什么我们需要正确地领域建模
为什么我们需要正确地领域建模
|
XML 数据格式
改善代码设计 —— 处理概括关系(Dealing with Generalization)
  系列博客       1. 改善代码设计 —— 优化函数的构成(Composing Methods)       2. 改善代码设计 —— 优化物件之间的特性(Moving Features Between Objects)       3.
949 0