【软考软件评测师】第八章节 软件工程之模块化设计
第八章节 软件工程之模块化设计
第一部分 知识点集锦
1. 模块独立性的概念
模块独立是指每个模块完成换一个相对独立的特定子功能,并且与其他模块之间的联系简单。衡量模块独立程度的标准有:聚合和耦合——高内聚低耦合。
模块间的耦合和模块的内聚是度量模块独立性的两个准则。内聚是模块功能强度的度量,即模块内部各个元素彼此结合的紧密程度。一个模块内部各个元素之间的紧密程度越高,则其内聚性越高,模块独立性越好。
2. 模块之间的耦合
耦合类型是按照由低到高排列。非直接耦合和数据耦合最为优秀,其次是标记耦合,控制耦合,外部耦合,公共耦合,最后才是内容耦合。
对象间的耦合度就是对象之间的依赖程度,对象之间的耦合程度越高,维护成本也就越高。
1)非直接耦合
两个模块之间没有直接关系,它们的联系完全是通过主模块的控制和调用来实现的。
2)数据耦合
两个模块彼此间通过数据参数交换信息。
传递的是简单的数据值,相当于高级语言中的值传递。
3)标记耦合
一组模块通过参数表传递记录信息,这个记录是某一个数据结构的子结构,而不是简单变量。
两个模块之间传递的是数据结构。
4)控制耦合
两个模块彼此间传递的信息中有控制信息。
模块M2根据模块M1传递如标记量的控制信息来确定M2执行哪部分语名
5)外部耦合
一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息。
6)公共耦合
两个模块之间通过一个公共的数据区域传递信息。
7)内容耦合
一个模块需要涉及到另一个模块的内部信息。
当一个模块直接使用另一个模块的内部数据,或通过非正常入口转入另一个模块内部时,这种模块之间的耦合称为内容耦合。
主要表现在模块M2直接访问模块Ml内部;模块Ml和模块M2有公共的数据结构或者模块Ml和模块M2有部分代码是重叠的。
3. 模块内部的内聚
1)功能内聚
指模块内的所有元素共同作用完成一个功能,缺一不可。
2)顺序内聚
模块内部的各个部分,前一部分处理动作的最后输出是后一部分处理动作的输入。
指一个模块中的各个处理元素都密切相关于同一个功能且必须顺序执行,前一个功能元素的输出就是下,功能元素的输入。
类似于管道过滤器架构风格。
3)通信内聚
模块的各个组成部分所完成的动作都使用了同一个数据或产生同一输出数据。
指模块内的所有处理元素都在同一个数据结构上操作,或者各处理使用相同的输入数据或产生相同的输出数据。
也叫做信息内聚
4)过程内聚
模块内部各个组成部分所要完成的动作虽然没有关系,但必须按特定的次序执行。
指一个模块分离成多个任务,这些任务必须按指定的过程执行。
过程内聚不是最低的内聚类型&#x