内聚就是一个模块内各个元素彼此结合的紧密程度。
耦合就是一个软件结构内各个模块之间彼此结合的紧密程度。
内聚类型:
1.偶然内聚
模块的各成分之间没有关联,只是把分散的功能合并在一起。
2.逻辑内聚
逻辑上相关的功能被放在同一模块中。
3.时间内聚
模块完成的功能必须在同一时间内执行,但这些功能只是因为时间因素才有关联。
4.过程内聚
模块内部的处理成分是相关的,而且这些处理必须以特定的次序进行执行。
5.通信内聚
模块的所有成分都操作同一数据集或生成同一数据集。
6.顺序内聚
模块的各个成分和同一个功能密切相关,而且一个成分的输出作为另一个成分的输入。
7.功能内聚
模块的所有成分对于完成单一的功能都是必须的。
耦合类型:
1.内容耦合
一个模块直接修改或操作另一个模块的数据,或者直接转入另一个模块。
2.公共耦合
两个以上的模块共同引用一个全局数据项。
3.控制耦合
一个模块在界面上传递一个信号控制另一个模块,接收信号的模块的动作根据信号值进行调整。
4.标记耦合
模块间通过参数传递复杂的内部数据结构。
5.数据耦合
模块间通过参数传递基本类型的数据。
6.非直接耦合
模块间没有信息传递。