模块耦合与模块内聚

模块的独立程度可以由两个定性标准来度量,这两个标准分别称为耦合和内聚。耦合衡量不同模块彼此间互相依赖的紧密程度;内聚衡量一个模块内部各个元素彼此结合的紧密程度。

1.耦合

耦合是对各个模块之间互连程度的度量。耦合的强弱取决于接口的复杂性,即与信息传递的方式、接口参数的个数、接口参数的数据类型相关。不同模块之间互相依赖得越紧密则耦合程度越高。为了提高模块的独立性,应尽量降低模块之间的耦合程度。

以下耦合程度由低到高:

(1)无直接耦合:调用模块和被调用模块之间不存在直接的数据联系。
(2)数据耦合:调用模块和被调用模块之间存在简单变量这样的数据传递。
(3)标记(特征)耦合:调用模块和被调用模块之间存在数组、结构、对象等复杂数据结构的数据传递。
(4)控制耦合:模块之间的联系不是数据信息,而是控制信息。
(5)外部耦合:系统允许多个模块同时访问同一个全局变量。
(6)公共耦合:允许多个模块同时访问一个全局性的数据结构。
(7)内容耦合:允许一个模块直接调用另一个模块中的数据。

注意:在软件设计时,开发人员应该尽量使用数据耦合,较少使用控制耦合,限制公共耦合的使用范围,同时坚决避免使用内容耦合。

2.内聚

模块的内聚是指模块内部各个元素之间 彼此结合的紧密程度。内聚和耦合往往密切相关,模块的高内聚通常意味着低耦合。在软件设计时,应该尽量提高模块的内聚程度,使模块内部的各个组成成分都相互关联,使其为了完成一个特定的功能而结合在一起。

以下内聚程度由低到高:

(1)偶然内聚:模块内各元素之间无实质性的联系,而只是偶然的组合在一起。
(2)逻辑内聚:模块内部各组成成分的处理动作在逻辑上相似,但是功能却彼此不同。
(3)时间内聚:指将若干在同一时间段内进行的却彼此不相关的工作集中在一个模块中。
(4)过程内聚:模块内部各个成分按照确定的顺序进行并无相关联系的工作。
(5)通信内聚:模块内部各个成分的输入数据和输出数据都相同。
(6)顺序内聚:模块内的各个组成部分顺序执行,前一个成分的输出就是后一个成分的输入。
(7)功能内聚:模块内的各个组成部分都为完成同一个功能而存在,强调完成并且只完成单一的功能。

注意:软件系统中,要避免使用低内聚的模块,多使用高内聚尤其是功能内聚的模块。

来源:小阿兜

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年5月3日
下一篇 2019年5月3日

相关推荐