耦合与内聚

1.耦合性

是影响软件复杂程度和设计质量的一个重要因素
  • 内容耦合 A直接操作B,叫做A与B内容耦合
  • 公共耦合 A与B模块使用一个全局数据块,叫做A与B公共耦合。
  • 外部耦合 A与B模块使用一个全局简单变量,叫做A与B间外部耦合。
  • 控制耦合 A向B模块由信号量关联的,叫做A与B间控制耦合。
  • 标记耦合 A通过接口向B和C传递一个公共参数。叫做B与C间标记耦合。
  • 数据耦合 A通过参数传递数据给B,叫做A与B间数据耦合。
  • 非直接耦合 模块间没有直接关系的,叫做A与B间非直接耦合。

2.内聚性·

是指机能相关的程序组合成一模块的程度。
  • 偶然内聚性:模块中各机能之间唯一的关系是其位置在同一个模块中。(例如:“工具”模块)
  • 逻辑内聚性:逻辑内聚性是只要机能在逻辑上分为同一类,不论各机能的本质是否有很大差异,就将这些机能放在同一模块中(例如将所 有的鼠标和键盘都放在输入处理副程序中)
  • 时间内聚性:时间内聚性是指将相近时间点运行的程序,放在同一个模块中(例如在捕捉到一个异常后调用一函数,在函数中关闭已打开的文件、产生错误日志、并告知用户)。
  • 程序内聚性是指依一组会按照固定顺序运行的程序放在同一个模块中(例如一个函数检查文件的权限,之后打开文件)。
  • 联系内聚性/信息内聚/通信内聚:是指模块中的机能因为处理相同的数据或者指各处理使用相同的输入数据或者产生相同的输出数据,所以放在同一个模块中(例如一个模块中的许多机能都访问同一个记录)。
  • 依序内聚性:是指模块中的各机能彼此的输入及输出数据相关,一模块的输出数据是另一个模块的输入,类似工厂的生产线(例如一个模块先读取文件中的数据,之后再处理数据)。
  • 功能内聚性:是指模块中的各机能是因为它们都对模块中单一明确定义的任务有贡献(例如XML字符串的词法分析)。

你可能感兴趣的:(零散的笔记,spring,boot,mvc,spring)