what
-
耦合
模块间互相连接的紧密程度的度量。 -
内聚
模块内部各个元素彼此连接的紧密程度的度量 -
相同
耦合和内聚都是描述紧密程度度量情况
-
不同
耦合描述模块与模块间的紧密程度
内聚描述模块内部的紧密程度
(可以参考他们的名字,内聚,内部,也就是模块内部)
耦合
-
非直接耦合:
两个模块间没有直接关系 -
数据耦合
彼此之间进行简单的数据传输 -
标记耦合
通过参数传递记录信息 -
控制耦合
通过传递控制信息控制另一模块的功能 -
外部耦合
模块与软件的外部设备相连,共享外部资源 -
内耦合
模块之间的存在公用的模块变量,模块与弄快的代码有重叠
可以参考为变量/代码重合,类于公因数 -
公共耦合
一组模块访问同一个公众数据环境
分为松散的公众耦合和紧密的公众耦合 -
松散的公众耦合和紧密的公众耦合的区别:
紧密的公众耦合:
与公共耦合的关系密集,存在相互调用的关系
松散耦合:
与公共耦合的关系不密集,单向调用
结论:
多使用数据耦合,少使用控制耦合
限制公众耦合,完全不用内耦合
内聚
-
功能内聚
模块的各个部分各司其职 -
信息内聚
按一定数据及逆行,功能有唯一的入点 -
通信内聚
有相同输入/输出的数据 -
过程内聚
将流程图的某一部分划分为模块,上一个是下一个的开始 -
时间内聚
功能的执行与时间有关 -
逻辑内聚
将相关功能组合在一起 -
巧合内聚
各部分之间无联系/联系松散