设计的独立性判别 ■内聚:模块相对功能密度的度量 ■耦合:模块间相对独立性的度量
设计的独立性判别 ◼ 内聚:模块相对功能密度的度量 ◼ 耦合:模块间相对独立性的度量
内聚 内聚指的是一个模块内部各组成部分的 处理动作的组合强度,又称块内联系。 软件结构设计的设计原则是,要求每 个模块的内部都具有很强的内聚性,它 的各个组成部分彼此都密切相关,是为 了完成一个共同的功能而组合在一起的 减弱模块之间的耦合和提高模块内的内 聚性,是两个相辅相成的设计原则
内聚 ◼ 内聚指的是一个模块内部各组成部分的 处理动作的组合强度,又称块内联系。 ◼ 软件结构设计的设计原则是,要求每一 个模块的内部都具有很强的内聚性,它 的各个组成部分彼此都密切相关,是为 了完成一个共同的功能而组合在一起的。 减弱模块之间的耦合和提高模块内的内 聚性,是两个相辅相成的设计原则
G. Myers的内聚七等级 偶然内聚:模块内各成分无实质性的联系,只是偶然地被凑到- 起 逻辑内聚:模块内部各组成部分的处理动作在逻辑上相似,但功 能却彼此不同或无关 时间内聚:将若干在同一个时间带内进行的工作集中在一个模块 内,但这些工作彼此无关 过程内聚:模块内部包含的各个成分按照某种确定的顺序进行, 但所做工作没有什么关系 通讯内聚:模块内的各个组成部分都使用相同的输入数据或产生 相同的输出数据 顺序内聚:模块中各个组成部分顺序执行,前一个成分的输出就 是后一个成分的输入。 功能内聚:模块内的各个组成部分全都为完成同一个功能而存在, 共同完成一个单一的功能,并且只完成一个功能
G.Myers的内聚七等级 ◼ 偶然内聚:模块内各成分无实质性的联系,只是偶然地被凑到一 起。 ◼ 逻辑内聚:模块内部各组成部分的处理动作在逻辑上相似,但功 能却彼此不同或无关。 ◼ 时间内聚:将若干在同一个时间带内进行的工作集中在一个模块 内,但这些工作彼此无关。 ◼ 过程内聚:模块内部包含的各个成分按照某种确定的顺序进行, 但所做工作没有什么关系。 ◼ 通讯内聚:模块内的各个组成部分都使用相同的输入数据或产生 相同的输出数据。 ◼ 顺序内聚:模块中各个组成部分顺序执行,前一个成分的输出就 是后一个成分的输入。 ◼ 功能内聚:模块内的各个组成部分全都为完成同一个功能而存在, 共同完成一个单一的功能,并且只完成一个功能
内聚图示 内聚性 低 功能信息通信过程时间逻辑巧合性 内聚内聚内聚内聚内聚内聚内聚 强 模块独立性 弱
内聚图示 低 巧合性 内聚 逻辑 内聚 过程 内聚 通信 内聚 时间 内聚 信息 内聚 功能 内聚 高 强 弱 内聚性 模块独立性
(1)偶然内聚(巧合内聚) ■模块内各部分间无联系 模块M中的三个语句没有任何联系 ■缺点:可理解性差,可修改性差 B MOVE O TO R READ FILE F MOVE S TO T
(1)偶然内聚(巧合内聚) ◼ 模块内各部分间无联系 ◼ 模块M中的三个语句没有任何联系 ◼ 缺点:可理解性差, 可修改性差 A B C M MOVE O TO R READ FILE F MOVE S TO T