模块之间的耦合与内聚的七种类型

前言

​ 模块独立性是创建良好设计的一个重要原则,一般采用模块间的耦合和模块的内聚两个准则来进行度量。在软件设计阶段,划分模块的原则是一个模块的作用范围应该在其控制范围之内。

按功能划分的四种模块类型

​ 通常,可以按照在软件系统中的功能将模块分为四种类型。

传入模块:取得数据或输入数据,经过某些处理,再将其传送给其他模块.

传出模块:输出数据,在输出 之前可能进行某些处理,数据可能被输出到系统的外部,或者会输出到其他模块进行进一步处理。

变换模块:从上级调用模块得到数据,进行特定的处理,转换成其他形式,在将加工结果返回给调用模块。

协调模块:一般不对数据进行加工,主要是通过调用、协调和管理其他模块来完成特定的功能。

七种耦合

耦合是模块之间的相对独立性的度量,模块之间的连接越紧密, 联系越多,耦合性就越高,而其模块独立性就越弱。一般来说,模块之间的耦合有7种类型,根据耦合性从低到高为非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合和内容耦合。

1.非直接耦合

两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的,这种耦合的模块独立性最强。

2.数据耦合

如果一个模块访问另一个模块时,彼此之间是通过数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的,则称这种耦合为数据耦合;

3.标记耦合

如果一组模块通过数据结构本身传递,则称这种耦合为标记耦合,这个记录是某一数据结构的子结构,而不是简单变量。其实传递的是这个数据结构的地址。

4.控制耦合

如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。

5.外部耦合

一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。

6.公共耦合

若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合,公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。

7.内容耦合

发生下列情形,那么两个模块之间就发生了内容耦合:

  1. 一个模块直接访问另一个模块的内部数据;
  2. 一个模块不通过正常入口转到另一模块内部;
  3. 个模块有一部分程序代码重叠(只可能出现在汇编语言中);
  4. 一个模块有多个入口。

七种内聚

1.偶然(巧合)内聚

偶然内聚:指一个模块内的各个处理元素之间没有任何联系。

2.逻辑内聚

逻辑内聚:指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。

3.时间内聚

时间内聚:把需要同时执行的动作组合在一起形成的模块。

4.通信内聚

通信内聚:指模块内所有处理元素都在同一个数据结构上操作,或者指各处理使用相同的输入数据或者产生相同的输出数据。

5.顺序内聚

顺序内聚:指一个模块中各个处理元素都密切相关于同一功能且必须顺序执行, 前一个功能元素的输出就是下一个功能元素的输入。

6.过程内聚

如果一个模块内的处理元素是相关的,而且必须以特定的次序执行,称为过程内聚。

过程内聚与顺序内聚的区别是:

顺序内聚中是数据流从一个处理单元流到另一个处理单元。

过程内聚是控制流从一个动作流向另一个动作。

7.功能内聚

功能内聚:是最强的内聚,指模块内所有元素共同完成一个功能,缺一不可。

猜你喜欢

转载自blog.csdn.net/qq_42242452/article/details/124870447
今日推荐