酒泉职业技术学院函授《软件工程》学习课程-耦合性

院校:湖南函授学历提升 发布时间:2021-04-24 11:55:36

    耦合性

    耦合是程序结构内不同模块之间相互关联程度的度量。它是由模块间接口的复杂程度、调用模块的方式及通过接口传递的信息类型决定的。模块之间的连接越紧密,联系越多,耦合性就越高,而其模块独立性就越弱。

    模块化设计的目标是:建立模块间耦合尽可能松散的系统。其优点在于:

    (1)在设计、编码、测试和维护系统中的任何一个模块时,不需要对系统中的其他模块有很多了解。

    (2)当某个模块出错时,对系统的其他部分影响小。

    C.Myers把耦合划分为7类,按照从弱到强依次为:非直接耦合、数据耦合、特征耦合、控制耦合、外部耦合、公共耦合和内容耦合,其模块独立性依次变弱。

    (1)非直接耦合。如果两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用实现的,这就是非直接耦合,其模块独立性最强。

    (2)数据耦合。如果一个模块访问另一个模块时,彼此之间是通过数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的,则称这种耦合为数据耦合。由于限制了只通过参数表传送数据,所以按数据耦合开发的程序接口简单、安全可靠。数据耦合是松散的耦合,模块之间的独立性比较强。在软件设计中应多使用这类耦合。

    (3)特征耦合。如果一组模块通过参数表传递记录信息, 就是特征耦合。事实上,这组模块共享了某一数据结构的子结构,而不是简单变量。这就要求这些模块都必须清楚该记录的结构,并按结构要求对记录进行操作。

    (4)控制耦合。如果一个模块通过传送开关、标志、名字等控制信息明显地控制选择被用模块的功能,则称这种耦合为控制耦合。

    这种耦合的实质是在单一接口上选择多功能模块中的某项功能。因此,对被控制模块的任何修改都会影响控制模块。另外,控制耦合也意味着控制模块必须知道被控制模块内部的一些逻辑关系,这些都会降低模块的独立性。

    (5)外部耦合。一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。外部耦合引起的问题类似于公共耦合,区别在于在外部耦合中不存在依赖于一个数据结构内部各项的程序逻辑。

    (6)公共耦合。若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。

    公共耦合的复杂程度随耦合模块的个数增加而显著增加。如图3.3所示,若只是两个模块之间有公共数据环境,则公共耦合有两种情况:松散公共耦合和紧密公共耦合。只有在模块之间共享的数据很多,且通过参数表传递不方便时,才使用公共耦合。