软件的耦合

软件模块之间的耦合性,从低到高为:

  • 非直接耦合:两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。

  • 数据耦合:一组模块借助参数表传递简单数据。

  • 标记耦合(特征耦合):一组模块通过参数表传递记录信息(数据结构)。

  • 控制耦合:模块之间传递的信息中包含用于控制模块内部逻辑的信息。

  • 外部耦合:一组模块都访问同一全局简单变量,而且不是通过参数表传递该全局变量的信息。

  • 公共耦合:多个模块都访问同一个公共数据环境。

  • 内部耦合(内容耦合):指一个模块直接访问另一个模块的内部数据;一个模块不通过正常入口转到另一个模块的内部;两个模块有一部分程序代码重叠;一个模块有多个入口。

软件的内聚

软件模块内聚按高到低排列为:

功能内聚:完成一个单一功能,各个部分协同工作,缺一不可。

  • 顺序内聚:处理元素相关,而且必须顺序执行。

  • 通信内聚:所有处理元素集中在一个数据结构的区域上。

  • 过程内聚:处理元素相关,而且必须按特定的次序执行。

  • 瞬时内聚(时间内聚):所包含的任务必须在同一时间间隔内执行。

  • 逻辑内聚:完成逻辑上相关的一组任务。

  • 偶然内聚(巧合内聚):完成一组没有关系或松散关系的任务。

最高的为功能内聚。