天天看点

软工之耦合性

通俗来讲,耦合就是一种关系,指模块之间的关系。 耦合有很多种分类,一般模块之间是有七种,也就是说模块之间的连接方式大概有七种。

数据耦合是指两个模块之间有调用关系,模块间传递的是简单的数据值。

软工之耦合性

一、非直接耦合

非直接耦合:弱耦合,两模块之间没有直接关系
软工之耦合性
在这个图中,B和C就是非直接耦在系统中基本无法做到非直接耦合

二、数据耦合

数据耦合:弱耦合,模块之间通过简单参数来交换信息。 在这种耦合关系下,开发的程序界面简单,安全。所以,数据耦合是一种松散的耦合,模块间独立性较强,软件程序结构中必须有这种耦合。

三、标记耦合

标记耦合:弱耦合,传递数据的一部分,通过参数表传递记录信息。可以改造成数据耦合。

四、控制耦合

控制耦合:中耦合,传递数据变量,模块之间通过传送开关,标志,名字等控制信息
软工之耦合性
另外,控制耦合也意味着控制模块必须知道所控制模块内部的一些逻辑关系,这些都会降低模块的独立性。

五、外部耦合

外部耦合:较强耦合,共用全局变量,跟外部蛇不相连,不用参数表传递信息 外部耦合类似于公共耦合,区别在于外部耦合中不存在依赖于一个数据结构内部各项的物理安排。

六、公共耦合

公共耦合:较强耦合,访问同一个公共数据环境。 公共的数据环境可以使全局数据结构、共享的通信区、内存的公共覆盖区等。一般只有参数表传递不方便时才使用公共耦合。 公共耦合会引起很多问题: (1)所有公共耦合模块都于某一个公共数据环境内部各项的物理安排有关,若修改个数据的大小,将会影响到所有模块。 (2)无法控制各个模块对公共数据的存取,严重影响软件模块可靠性和适应性。 (3)公共数据名的使用,明显降低程序的可读性。 分为松散公共耦合和紧密公共耦合。
软工之耦合性
若一个模块知识我那个公共数据环境里传送数据,另一个模块知识从公共环境中提取数据,则这种公共耦合叫做松散公共耦合。 若两个模块都从公共数据环境中取数据,又都向公共数据环境里送数据,则这种公共耦合叫紧密公共耦合。

七、内容耦合

软工之耦合性

发生内容耦合有几种情况  (1)一个模块直接访问另一个模块的内部数据。 (2)一个模块不通过正常入口转到另一模块内部数据。 (3)两个模块有一部分程序代码重叠(只在汇编语言中) (4)一个模块有多个入口。 内容耦合的情况下,访问的模块有任何的变更,或者使用不同的编译器,都会造成程序出错。 原则上讲,模块化设计的终极目标,是希望建立模块间耦合尽可能松散的系统。 那么,系统模块化设计时,降低模块间的耦合度有几种方法。 (1)根据问题的特点,选择适当的耦合类型。 (2)降低模块接口的复杂性 (3)把模块信息统统放在缓冲区中

有一个很有意思的比喻,两只章鱼,7只脚互相缠绕,就是高耦合性,只有1只脚相互缠绕就是低耦合性。

继续阅读