软件工程的耦合和内聚

模块 独立 性是软件 质量 的关 它指 软件系统中的每个模块 只涉 及软件要求的具体子 功能,而和系统中其 模块接 是简单的。这 做不 仅仅便 于软件测试和 维护 使模块 化程度较高的软件 于开发, 一组开发人员 同开发一个软件时,模块化能够分 功能,而且接 可以简化。
模块的 独立 性可以用两个定性标准度 合和内聚
耦合是模块之间相互连接的紧密程度的度量 模块之间的连接越紧密,联系越多,耦 合性就越高 ,而其模块 独立 性就 越弱 内聚 是一个模块 部各个元素 彼此 结合的 紧密 程度 的度 。一个模块 部各个元素 间的 越紧密 内聚 性就 高,相对于其 模块 合性就 会降 低,而模块 独立 性就 越强 。因 ,模块 独立 性较 的模块应该是高 内聚 合的模块。
 

 1、耦合

合的 强弱 取决于各个模块 间接 的复杂程度、调用模块的方式以及 信息 。一 模块 间的 接方式有 7 种,构成的 7 类型
1》非直
如果两个模块 接关系, 它们之 间的 系完 是通 主模块的 制和调用实 现的,这就是 非直 合。 这种耦合的模块独立性最强 是,在一个软件系统中不可能 有的模块 间都 任何 接。
2) 数据
如果两个模块 彼此 间通 数据 ( 不是 数、 公共 数据结构或 变量 ) 交换 ,这种 合称为数据 合。由于 制了 过参 数表 传递 数据, 数据 合开发的 程序 界面 简单、 安全 。数据 合是 松散 合,模块 间的 独立 性比较 ,在系统中 有这 类耦 合。
 
3) 记耦
如果模块 间通 过参 数表 传递记录信息 ,就是标 记耦 合。由于模块 传递 的不是简单 ,而是 一数据结构的子结构, 以在设计中应 避免 这种 合。
 
4)
如果模块 传递 信息 中有 信息 ,就称作 合。这种 合的实 是在单一接 上选择 功能模块中的 某项 功能。因 ,对 被控 制模块的任何 修改 ,都 会影响控 制模块。 于中等程度的 合, 它增加 了系统的复杂程度。
 
5) 公共耦
如果一组模块通 同一个 公共 数据 环境 相互作用,则 它们之 间的 合称为 公共耦 合。
公共 的数据 环境 可以是 全局 数据结构、 共享 的通 信区 内存 公共覆盖区 、任何 存储介质
上的文件、物理设备等。
 
6) 内容耦
如果发生下列 情形之 一,两个模块 间就发生了 内容耦 合。
一个模块 访 一个模块的 部数据。
一个模块不能通 过正 常入 到另 一模块的 部。
两个模块有一部分程序代码 重叠 ( 可能出现在 语言 )
一个模块有 个入
内容耦合属于最高程度的耦合,应该尽量避免使用。
 
7)
如果一组模块都 访 问同一 全局 简单 变量 而不是同一 全局 数据结构,而且不是通 过参 传递 全局变量 信息 ,则称为 合。
 
2、内聚
 
内聚 是一个模块 部各个元素 彼此 结合的 紧密 程度的度 。一个 内聚 程度高的模块应 完成软件 程中的单一任务。 信息隐蔽 的一种自然 扩展 。一 模块的 内聚 7 类型。
 
1) 内聚
如果一个模块各部分有关系,或即使有关系,这种关系很松散的,则称 内聚 内聚 程度最低的模块。 如,一些不同的模块中可能 在同一组 语句, 程序员为了 节省空 间,把 它们抽 出来组成一个 模块,这就出现了 内聚 的块。 ,这种模块不 易修改 维护 ,通常 情况 下应 避免 这种模块。
 
2) 逻辑 内聚
如果一个模块中包 含多 个逻辑上相关的功能,每次 调用时,根据 传递 给该模块的 数来确定模块应 行的功能,称作逻辑 内聚 它属 于单入 口多 功能模块。 如, 错误 处理模块根据 收到 的出 错信号显示 出不同的出 错信息 等。逻辑模块的 修改也 比较 困难 ,有 时对 部功能的 改动也会影响到全局
 
3) 时间 内聚
如果一个模块 的任务必 在同一时间 内执 行,称作时间 内聚 ,如 初始 化模块和 模块。时间 内聚 比逻辑 内聚 好一些, 在一定程度上 反映 了程序的 些实 由于 许多 功能、任务组合在一 ,给 维护 修改带 来了 困难。
4) 内聚
如果一个模块 的处理是相关的,而且必 定次序 行,则称为 内聚 。使用 程序流程图作为工具设计程序时,常常通 流程图来确定模块的划分,这 的就是 内聚 模块。 相对时间 内聚 的程度 更强 一些, 由于 仅仅 为完 功能的一部分, 程度 比较低。
 
5) 信内聚
如果一个模块各功能部分都使用了相同的 入数据,或产生了相同的 出数据,则称 为通 信内聚 。通常,通 信内聚 模块是通 数据流图来定义的。因为 模块中包 许多独 的功能, 内聚 程度高于 内聚 由于各功能部分使用了相同的 I/O 缓冲区, 从而 低了 个系统的效
 
6) 信息内聚
如果一个模块能够完成 个功能,各个功能都在同一数据结构上 作,每一 功能有 一的入 点,称作 信息内聚 可以 作是 个功能 内聚 模块的组合,并能 达到信息 隐蔽 增强 了各模块的 独立 性。
 
7) 功能 内聚
如果一个模块 各个部分都是完成 一具体功能必不可 的组成部分,称作功能 内聚。 模块间功能明确、 合简单,是最高程序的 内聚。
 
 
设计时力争做到高内聚,并且能够辨认出低内聚的模块,有能力通过修改设计提高模块的内聚程度,降低模块间的耦合程
度,从而获得较高的模块独立性。

猜你喜欢

转载自blog.csdn.net/weixin_45309155/article/details/106972931