七种耦合(保姆教程|附软考真题)

七种耦合

一. 无耦合(无直接耦合/非直接耦合)

**两个模块之间没有直接的关系,它们分别被不同模块的控制与调用,它们之间不传递任何信息。**但这在实际中很难完全做到。按常说的"六种耦合、七种内聚"来看,这种情况也可以认为并不算一种耦合。无耦合的模块间耦合性最弱,模块独立性最高。

例题1

例如,系统中的**"用户登录验证模块"** 和**"报表打印模块"**分别由不同的上层流程调用,二者之间既不直接调用,也不传递任何数据或共享信息,可视为无耦合。

二. 数据耦合

指两个模块之间有调用关系,传递的是简单的数据值(而不是数据结构),相当于高级语言中的值传递。

例题1

主程序调用"加法模块"时只传入两个整数 a 和 b,并接收返回的整数和,而不传递数组、结构体等数据结构,这就是数据耦合。

三. 标记耦合

又叫特征耦合 ,指两个模块之间传递的是数据结构。

例题1

例如,订单处理模块把包含订单号、客户信息和明细的整个"订单结构体"作为参数传给发票生成模块,而不是只传订单号或金额等简单数据值,这就属于标记耦合(特征耦合)。

例题2

例题3

四. 控制耦合

指一个模块调用另一个模块时,传递的是控制变量 ,被调用模块通过该控制变量的值有选择地执行模块内的某一功能。

例题1

主程序调用"输出模块"时传入标志变量 type ,该模块根据 type 的值选择执行打印报表还是打印标签,这就属于控制耦合。

例题2

五. 外部耦合

模块间通过**软件之外的环境联结(如IO将模块耦合到特定的设备、格式、通信协议上)**时称为外部耦合。

例题1

例如,一个传感器数据采集模块 被设计为直接通过 I2C 总线协议 读取特定型号温度传感器的数据。这个模块的接口和行为就紧密依赖于该硬件的电气特性和通信协议,一旦更换传感器或总线类型,模块就需要修改,这就构成了外部耦合。

六. 公共耦合

指通过一个公共数据环境 相互作用的那些模块间的耦合。这里的**"公共环境"可包括全局变量、共享数据结构以及存储介质上的文件**等。

例题1

例题2

例题3

七. 内容耦合

当一个模块直接使用另一个模块的内部数据 ,或通过非正常入口转入另一个模块内部时,这种模块之间的耦合称为内容耦合。

例题1

例题2

以上就是本篇文章的全部内容,喜欢的话可以留个免费的关注呦~~~

相关推荐
ttod_qzstudio3 个月前
【软考备考】软件工程收官篇:耦合与内聚、维护四类型、关键路径计算(附 10 道练习)
软件工程·软考·耦合·内聚
哦哦~9213 个月前
西湖大学吴泰霖团队|GenCP:跳出迭代求解,开创多物理耦合生成建模路线
人工智能·耦合·流体
rgb2gray10 个月前
城市韧性与交通基础设施系统耦合协调度的时空演变及影响因素
网络·人工智能·python·ai·写作·耦合·耦合协调
witton1 年前
Go语言网络游戏服务器模块化编程
服务器·开发语言·游戏·golang·origin·模块化·耦合
EleganceJiaBao2 年前
【C语言】结构体模块化编程
c语言·c++·模块化·static·结构体·struct·耦合
科研工作站3 年前
Matlab|计及多能耦合的区域综合能源系统电气热能流计算
matlab·能源·综合能源·耦合·电气热·能流
科研工作站3 年前
Matlab|基于分布式ADMM算法的考虑碳排放交易的电力系统优化调度研究
分布式·matlab·耦合·admm·碳排放·最优潮流
追忆苔上雪3 年前
深度学习领域中的耦合与解耦
人工智能·深度学习·目标检测·计算机视觉·解耦·耦合