2)逻辑内聚 逻辑内聚是指将几个逻辑上功能相似的模块合并,而形成 个新的模块,该模块包含有若干个在逻辑上具有相似功能的 程序段,由传送给模块的参数来确定该模块完成哪一段功能。 图4.2显示了这种情况,图4.2(a)表示模块A、B、C分别调用 模块D、E、F,模块D、E、F逻辑功能相似,具有部分相同的代 码段。图4.2(b)为将D、E、F合并为一个模块DEF后的内部逻 辑结构,不同的代码段根据开关值判断执行哪一个代码段。图 4.2(C)表示合并后A、B、C调用新的模块DEF
2) 逻辑内聚 逻辑内聚是指将几个逻辑上功能相似的模块合并,而形成 一个新的模块,该模块包含有若干个在逻辑上具有相似功能的 程序段,由传送给模块的参数来确定该模块完成哪一段功能。 图4.2显示了这种情况,图4.2(a)表示模块A、B、C分别调用 模块D、E、F,模块D、E、F逻辑功能相似,具有部分相同的代 码段。图4.2(b)为将D、E、F合并为一个模块DEF后的内部逻 辑结构,不同的代码段根据开关值判断执行哪一个代码段。图 4.2(c)表示合并后A、B、C调用新的模块DEF
公用代码段 A B C A B C D E A B C DEF 公用代码段 (b) 图42逻辑内聚示意图
(a) A B C D E F 公用代码段 公用代码段 (b) A1 B1 C1 (c) A B C DEF 图4.2 逻辑内聚示意图
逻辑内聚属于低内聚,它的缺点是不易修改。例如,图4.2(b) 中,当A、B、C中某个模块需要改变公用代码段,其它模块可能 并不需要改变。另外,逻辑内聚增强了模块之间的耦合强度,图 4.2(C)中模块A、B、C与新模块DEF之间由数据耦合变为控制 耦合了 3)时间内聚 时间内聚也称瞬时内聚,是指模块中的任务必须在同一时间 段内执行。例如,为各种变量设置初值以及打开文件等任务经常 在系统初始化时进行,通常将这些在时间上必须同时进行的任务 组合起来形成一个模块,该模块就是时间内聚的。时间内聚也属 于低内聚,模块内各成分的时间关系在一定程度上反映了各成分 的某些实质,它的可理解性和紧密程度比逻辑内聚好
逻辑内聚属于低内聚,它的缺点是不易修改。例如,图4.2(b) 中,当A、B、C中某个模块需要改变公用代码段,其它模块可能 并不需要改变。另外,逻辑内聚增强了模块之间的耦合强度,图 4.2(c)中模块A、B、C与新模块DEF之间由数据耦合变为控制 耦合了。 3) 时间内聚 时间内聚也称瞬时内聚,是指模块中的任务必须在同一时间 段内执行。例如,为各种变量设置初值以及打开文件等任务经常 在系统初始化时进行,通常将这些在时间上必须同时进行的任务 组合起来形成一个模块,该模块就是时间内聚的。时间内聚也属 于低内聚,模块内各成分的时间关系在一定程度上反映了各成分 的某些实质,它的可理解性和紧密程度比逻辑内聚好
4)过程内聚 模块内各成分是相关的,并且必须按照某种特定的次序执行。 过程内聚属于中等程度的内聚,模块内各成分的联系紧密程度优 于前面几种类型,比它们易于理解、维护 5)通信内聚 通信内聚是指模块内各成分有共用的数据区,或者所有成分 都使用相同的输入或产生相同的输出。这样的模块如果将其中的 软件成分分为多个模块,则这些模块之间的耦合方式是公共耦合 它是一种强耦合,模块之间的独立性很差。通信内聚模块中各软 件成分之间关系比较密切,因为它们使用或产生同一数据区中的 相应数据,这说明其功能是密切相关的,所以可修改性和可理解 性均较好
4) 过程内聚 模块内各成分是相关的,并且必须按照某种特定的次序执行。 过程内聚属于中等程度的内聚,模块内各成分的联系紧密程度优 于前面几种类型,比它们易于理解、维护。 5) 通信内聚 通信内聚是指模块内各成分有共用的数据区,或者所有成分 都使用相同的输入或产生相同的输出。这样的模块如果将其中的 软件成分分为多个模块,则这些模块之间的耦合方式是公共耦合。 它是一种强耦合,模块之间的独立性很差。通信内聚模块中各软 件成分之间关系比较密切,因为它们使用或产生同一数据区中的 相应数据,这说明其功能是密切相关的,所以可修改性和可理解 性均较好
6)顺序内聚 顺序内聚是指模块内各成分的执行顺序以确定的顺序进 行,往往前一功能成分的输出就是后一功能成分的输入,执 行顺序不能改变。而且这些成分是与同一功能密切相关的 7)功能内聚 功能内聚是指模块内包括并仅包括为完成某一功能必需 的所有成分。这是内聚程度最好的方式
6) 顺序内聚 顺序内聚是指模块内各成分的执行顺序以确定的顺序进 行,往往前一功能成分的输出就是后一功能成分的输入,执 行顺序不能改变。而且这些成分是与同一功能密切相关的。 7) 功能内聚 功能内聚是指模块内包括并仅包括为完成某一功能必需 的所有成分。这是内聚程度最好的方式