自考《软件工程》基础知识点复习:耦合性和内聚性
耦合性和内聚性
耦合性也叫块件关系,根据模块外部特征提出的,是对软件系统结构中各模块间相互联系紧密程度的一种度量。按耦合程度由低到高分为:
无直接耦合:两个模块间无直接关系,分别从属不同模块的控制和调用,不传递任何信息。
数据耦合:两个模块间有调用关系,传递简单数据值,相当于高级语言的值传递。
标记耦合:两个模块间传递数据结构。
控制耦合:传递控制变量,如开关、标志。
公共耦合:传递在公共数据环境中的数据。
内容耦合:传递的是一个模块的内部数据,往往出现在汇编语言中。
影响模块间耦合程度的最主要因素是模块间传递信息的复杂性,另外还受接口的复杂性和调用方式的影响。模块间耦合性越强,联系越紧密,独立性越差。提高模块间独立性的措施有:
在耦合方式上降低模块间接口的复杂性:包括模块的接口方式、接口信息和参数个数。
在传递信息类型上尽量使用数据耦合,避免控制耦合,慎用或有控制地使用公共耦合。
内聚性又叫块内联系,根据模块内部特征提出的指模块功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。按内聚程度由低到高分为:
偶然内聚:一个模块内的各处理元素间没有任何联系。
逻辑内聚:模块内执行的几个逻辑上相似的功能,通过参数确定该模块完成那一个功能。
时间内聚:需要同时执行的动作组合在一起形成的模型。
通信内聚:都要在同一数据结构上操作,紧密相关于同一数据结构。
顺序内聚:紧密相关于同一功能,且必须按顺序完成,某成分的输入是另一成分的输出。
功能内聚:共同完成同一功能,缺一不可,模块不可再分割。
影响内聚程度的最主要因素是模块内各成分之间相关于同一功能的紧密程度。模块内聚性越高,独立性越强,有利于软件重用。
