一、说明
- 1.耦合是模块之间的相对独立性(互相连接的紧密程度)的度量
- 2.耦合取决于各个模块之间接口的复杂程度、调用模块的方式以及通过接口的信息类型等
- 3.一般模块之间可能的耦合方式有7种类型,耦合性由低到高分别为:无直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合、内容耦合
- 4.耦合性越高,模块独立性越低
二、7种耦合
2.1 无直接耦合
- 1.指两个模块之间没有直接的关系,它们分别从属于不同模块的控制与调用,它们之间不传递任何信息
- 2.模块间耦合性最弱,模块独立性最高
2.2 数据耦合
- 1.指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言中的值传递
- 2.例如:某企业管理信息系统中,采购子系统根据材料价格、数量等信息计算采购的金额,并给财务子系统传递采购金额、收款方和采购日期等信息,则这两个子系统之间的耦合类型为数据耦合
2.3 标记耦合
2.4 控制耦合
- 1.指一个模块调用另一个模块时,传递的是控制变量,被调用模块通过该控制变量的值有选择地执行模块内的某一功能。
- 2.被调用模块应具有多个功能,哪个功能起作用受调控模块控制
2.5 外部耦合
- 1.模块间通过软件之外的环境联结(如IO将模块耦合到特定的设备、格式、通信协议上)时称为外部耦合
2.6 公共耦合
- 1.指通过一个公共数据环境相互作用的那些模块间的耦合
2.7 内容耦合
- 1.当一个模块直接使用另一个模块的内部数据,或通过非正常入口转入另一个模块内部时,这种模块之间的耦合称为内容耦合
三、耦合性与独立性
四、例题
4.1 例题1
下图中的程序由A、B、C、D、E5个模块组成,下表中描述了这些模块之间的接口,
每一个接口有一个编号。此外,模块A、D和E都要引用一个专用数据区。
那么A和E之间耦合关系是()。
A.公共耦合 B.数据耦合 C.内容耦合 D.无耦合
1.由于模块A和模块E都引用了专用数据区的内容,所以是公共耦合
2.公共耦合指通过一个公共数据环境相互作用的那些模块间的耦合
4.2 例题2
如下图所示,模块A和模块B都访问相同的全局变量和数据结构,则这两个模块之间的耦合类型为( )耦合。
A.公共
B.控制
C.标记
D.数据
公共耦合指通过一个公共数据环境相互作用的那些模块间的耦合,即全局变量和数据结构相互作用模块A和模块B