结构推理 模块的内聚性有哪几种?各表示什么含义?
【正确答案】内聚性有7种类型:偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚、功能内聚,它们的内聚性由低到高。
   (1)偶然内聚。偶然内聚是指一个模块内的各处理元素之间没有任何联系,这是最差的内聚情况。
   (2)逻辑内聚。逻辑内聚是指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。如产生各种类型错误的信息输出放在一个模块,或从不同设备上的输入放在一个模块,这是一个单入口多功能模块。这种模块内聚程度有所提高,各部分之间在功能上有相互关系,但不易修改,当某个调用模块要修改此模块公用代码时,而另一些调用模块又不要求修改。另外,调用时需要进行控制参数的传递,造成模块间的控制耦合,调用此模块时,不用的部分也占据了主存,降低了系统效率。
   (3)时间内聚。时间内聚把需要同时执行的动作组合在一起形成的模块为时间内聚模块。如初始化一组变量,同时打开若干文件,同时关闭文件等,都与特定时间有关。时间内聚比逻辑内聚程度高一些,因为时间内聚模块中的各部分都要在同一时问内完成。但是由于这样的模块往往与其他模块联系得比较紧密,如初始模块对许多模块的运行有影响,因此和其他模块耦合的程度较高。
   (4)过程内聚。如果一个模块内的处理元素是相关的,而且必须以特定的次序执行,称为“过程内聚”。过程内聚模块的各组成功能由控制流联结在一起,实际上是若干个处理功能的公共过程单元。
   (5)通信内聚。通信内聚是指模块内所有处理元素都在同一个数据结构上操作(有时称之为“信息内聚”),或者指各处理使用相同的输入数据或者产生相同的输出数据。
   通信内聚的模块各部分都紧密相关于同一数据(或者数据结构),所以内聚性要高于前几种类型。同时,可把某一数据结构、文件、设备等操作都放在一个模块内,可达到信息隐藏。
   (6)顺序内聚。顺序内聚是指一个模块中各个处理元素都紧密相关于同一功能且必须顺序执行,前一功能元素的输出就是下一功能元素的输入。
   (7)功能内聚。功能内聚是最强的内聚,指模块内所有元素共同完成一个功能,缺一不可。因此模块不能再分割。功能内聚的模块易于理解、易修改,因为它的功能是明确的、单一的,因此与其他模块的耦合是弱的。功能内聚的模块有利于实现软件的重用,从而提高软件开发的效率。
【答案解析】