自学内容网 自学内容网

【软件工程】耦合

耦合性指软件结构中模块相互紧密连接的紧密程度。

耦合性由高到低分别为:内容耦合、公共耦合、外部耦合、控制耦合、标记耦合、数据耦合、非直接耦合。

1.内容耦合:

一个模块直接使用或修改另一个模块的内部数据或逻辑。

例如:一个函数直接修改另一个函数内部的变量或代码。

2.公共耦合:

若干模块访问一个公共的数据环境(全局数据结构、共享的通信区、内存的公共覆盖区等),耦合的复杂程度随耦合模块的数量的增加而显著增加。

例如:多个功能共享同一个配置文件。

3.外部耦合:

一组模块都访问同一公共变量(这里特指基本数据类型,而不是那种复杂的数据结构),而不是通过参数表达传递该全局变量的信息。

例如:多个模块都直接访问同一个外部数据库。

4.控制耦合:

一个模块传递信息给另一个模块,用来控制后者的逻辑流程(如决定分支选择)。

例如 :一个函数接收一个布尔参数,该参数决定函数是计算最大值还是最小值。

5.标记耦合:

当两个模块之间传递的是数据结构,比如高级语言的数组名、记录名、文件名等,这些名字就好像是标记一样,但实际上传递的是这个数据结构的地址。
需要模块之间共享这些标记或标识符,并且依赖于这些标记或标识符的具体实现。因此,标记耦合的模块之间耦合度较高,需要共享并理解这些标记的含义和作用。

例如:一个函数接收一个员工对象,但只用到了员工的姓名和部门信息,而不是整个员工对象的所有数据。

6.数据耦合:

数据耦合是指两个模块之间通过参数传递数据来进行通信。这种耦合方式只需要模块之间共享数据,但并不依赖于数据的具体实现。强调数据的值,而不是数据的地址或结构。
因此,数据耦合的模块之间耦合度较低,因为它们只需要理解数据的含义和作用,而不需要关心数据的具体实现。这种耦合方式使得模块更加独立,易于重用和修改。

例如:一个模块计算税后收入,它接收一个表示税前收入的数字,然后返回税后收入的计算结果。

标记耦合和数据耦合的主要区别在于模块之间的通信方式不同,有些类似于引用传递和值传递。

7.非直接耦合:

两个模块间没有直接的关系,它们分别从属于不同模块的控制与调用,它们之间不传递任何信息。这种耦合程度最弱,模块的独立性最高。

例如:两个独立的计算器应用,一个用于计算税收,另一个用于计算贷款利息,它们在功能上完全独立。


原文地址:https://blog.csdn.net/DX390609/article/details/143642239

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!