模块内聚和耦合的基础知识是软件评测师考试的重要考点,经常出现在上午场的客观选择题当中。模块独立是指模块只完成系统要求的独立的子功能,并且与其他模块的接口简单,符合信息隐蔽和信息局部化原则,模块间关联和依赖程度尽可能小。衡量模块独立性的标准是耦合度和内聚度。内聚度是衡量同一个模块内部的各个元素彼此结合的紧密程度。耦合度是衡量不同模块彼此间相互依赖的紧密程度。下面就该知识点并结合例题进行总结学习。
一、模块内聚
(1)概述:内聚是一个模块内部各个元素彼此结合的紧密程度的度量。一个内聚程度高的模块(在理想情况下)应当只做一件事。
(2)分类:一般模块的内聚性分为7种类型,如下图所示:
1)偶然(巧合)内聚:模块完成的动作之间没有任何关系,或者仅仅是一种非常松散的关系。
2)逻辑内聚:指模块内执行若干个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。
3)瞬时(时间)内聚:模块内部的各个组成部分所包含的处理动作必须在同一时间间隔内执行,例如初始化模块。
4)过程内聚:指一个模块完成多个任务,这些任务必须按指定的过程执行。
5)通信(信息)内聚:指模块内的所有处理元素都在同一个数据结构上操作,或者各处理使用相同的输入数据或者产生相同的输出数据。
6)顺序内聚:指一个模块中的各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出就是下一功能元素的输入。
7)功能内聚:指模块内的所有元素共同作用完成一个功能,缺一不可,这是最强的内聚。
二、模块耦合
(1)概述:耦合是模块之间的相对独立性(互相连接的紧密程度)的度量。耦合取决于各个模块之间接口的复杂程度、调用模块的方式以及通过接口的信息类型等。
(2)分类:一般来说,模块之间的耦合有7种类型,如下图所示:
1)非直接耦合(无直接耦合):两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的,它们之间不传递任何信息,因此模块间的耦合性最弱,模块独立性最高。
2)、数据耦合:指两个模块之间有调用关系,传递的是简单的数据值(不是控制参数,公共数据结构或外部变量),相当于高级语言中的值传递。
3)标记耦合:指两个模块之间通过参数表(数据结构)传递记录信息。
4)控制耦合:指一个模块调用另一个模块时,传递的是控制变量,被调用模块通过该控制变量的值有选择地执行模块内的某一功能。因此,被调用模块内应具有多个功能,那个功能起作用受调用模块控制。也就是说一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能。
5)外部耦合:模块间通过软件之外的环境联结( 如I/O将模块耦合到特定的设备、格式、通信协议上)时称为外部耦合。
6)公共耦合:指通过一个公共数据环境相互作用的那些模块间的耦合。
7)内容耦合:一个模块直接访问另一个模块的内部数据,或者通过非正常入口转入另一个模块内部,或者两个模块有一部分程序代码重叠,又或者一个模块有多种入口。这种模块之间的耦合称之为内容耦合。
下面是近几年对该知识点考察过的真题,以后仍是考试出题的重点,大家要重视起来。
【2017年第38题】模块A将其中的学生信息,即学生姓名、学号、手机号等放到一个结构体中,传递给模块B,则模块A和B之间的耦合类型为( )耦合。
A、数据
B、标记
C、控制
D、内容
解析:本题考查模块耦合的基础知识。
数据耦合传递的是简单的数据值,标记耦合通过参数表传递信息,控制耦合传递的是控制变量,题干中传递的参数是一个数据结构(参数表),所以是标记耦合。
故正确答案为:B
【2017年第39题】某模块内涉及多个功能,这些功能必须以特定的次序执行,则该模块的内聚类型为( )内聚。
A、时间
B、过程
C、信息
D、功能
解析:本题考查模块内聚的基础知识。
过程内聚是模块内部各个组成部分所要完成的动作虽然没有关系,但必须按特定的次序执行,而题目中要求功能是以特定的次序执行,所以是过程内聚。
故正确答案为:B
【2018年第40-41题】某系统中有一个中央数据存储,模块A负责接收新来的数据并修改中央数据存储中的数据,模块B负责访问中央数据存储中的数据则这两个模块之间的耦合类型为(1)。若将这两个模块及中央数据合并成一个模块,则该模块的内聚类型为(2)。
(1)
A、数据
B、标记
C、控制
D、公共
(2)
A、逻辑
B、时间
C、通信
D、功能
解析:本题考查模块耦合和内聚类型的基础知识。
公共耦合表示两个模块之间通过一个公共的数据区域传递信息,符合题目中的描述,故第一问选D。
通信内聚表示模块的各个组成部分所完成的动作都使用了同一个数据或产生同一输出数据。刚好符合将两个模块及中央数据合并成一个模块后形成的内聚类型,故第二问选C。
故正确答案为:(1)D (2)C
【2019年第37题】为了提高模块独立性,模块之间最好采用( )耦合。
A、数据
B、标记
C、控制
D、公共
解析:本题考查软件工程模模块耦合的基础知识。
耦合是模块之间的相对独立性的度量,耦合度越低,独立性越高。耦合取决于各个模块之间接口的复杂程度、调用模块的方式以及通过接口的信息类型等。一般模块之间可能的耦合方式有7种类型,如下图所示:
显然,选项中数据耦合是耦合度最低的,模块的独立性相对最高。
故正确答案为:A
作者唯一官方个人微信公众号(昊洋与你一起成长):HYJY20180101
写于2021年10月16日
作者:昊洋讲师
版权所有,侵权必究