跳转到主要内容
Chinese, Simplified

软件工程中的耦合导论

软件工程中的耦合是软件需求规范(SRS)文档的一部分。它定义了每个软件模块与其他模块的依赖性和独立性因素。它可以作为模块之间相互依赖性的指标。耦合值越低,软件的质量就越高。名称耦合适用于此过程,因为它通常一次在两个模块之间进行审议。耦合过程的第一步是评估两个模块之间的关联,并定义模块中的功能依赖区域。

Coupling in Software Engineering

耦合类型

任何两个模块之间的耦合都可以通过模块与其他模块共享的资源的数量和类型来识别。该资源可以是功能行为、公共接口、用户界面中的公共字段、从字段中提取并在两个模块之间共享的数据、两个模块间共享的事务等。基于这些可能的依赖关系,软件工程中的耦合分为六种不同类型:

Types of Coupling

  • 普通耦合
  • 内容耦合
  • 数据耦合
  • 控制耦合
  • 印记耦合
  • 外部耦合

每一个软件需求规范文档过程都应该对依赖模块之间的耦合进行分类,无论哪一个在客户对需求进行简短评估后适用。

1.普通耦合

普通耦合由在任意两个软件系统模块中间共享总体约束的模块组成。这也可能是一个迹象,表明在公共约束中所做的任何更改都将反映在共享公共耦合场景的模块中。与任何其他过程一样,这种常见的耦合也为表征过程中涉及的优点和缺点提供了空间。人们应该避免这种类型的依赖,因为它需要更多的维护活动和更少的模块控制。这种耦合的一个很好的例子是登录页面,登录和后端模块是相互依赖的,因为登录验证在登录页面和后端数据库级别进行。

2.内容耦合

顾名思义,内容耦合是指两个模块共享其内容,当一个模块发生更改时,另一个模块也需要更新。当模块不同步时,会导致更高级别的功能不当行为。例如,当两个模块共享相同的数据时,两个模块数据库的主键列应该是相关的。否则由于依赖关系,模块的内容将反映不同步的数据。

3.数据耦合

当两个软件系统模块之间只有一种类型的交互,并且这种交互是以数据的形式时,就会发生数据耦合。除了数据形式之外,模块没有其他常见的共享资源,如功能或其他系统组件。数据耦合的一个例子是,两个用户接口(UI)在类似模块1的方面共享数据,将用于处理的数据传递给模块2,并从模块2接收回处理后的数据。尽管所有的耦合都需要最小化,但这种类型的耦合是可以容忍的,因为它不会影响软件的任何其他功能行为。

4.控制耦合

控制耦合是软件的功能流,其中两个软件模块通过提供涉及模块功能活动的共享控制来实现网络连接。这种类型的耦合对软件应用程序的影响可以是积极的,也可以是消极的,因为它只能根据所述模块共享的控制类型来定义。当功能被允许重用时,它被视为一个积极的影响。当参数在代码的功能部分中的多个位置重用时,通常会在代码级别观察到这种类型的耦合

5.印记耦合

印记耦合发生在共享已结构化复杂数据集编译的任何两个模块之间。由于数据和元素是预先组织好并放置好的,因此两个耦合模块之间不会共享垃圾或未使用的数据。这有助于提高软件的总体效率及其性能。同时,系统设计者应该知道在多大程度上可以允许印记耦合的限制。

6.外部耦合

外部耦合可以描述为模块与常见外部影响因素相互关联的情况。它们可以是:

  • 向两个模块发送相同数据或内容集的外部遗留应用程序
  • 两个模块通用的硬件要求
  • 两个模块都在使用的公用文件/文件夹
  • 当两者在网络中使用相同的交换机/路由器进行通信时

耦合在软件工程中的优势

在软件工程过程中,作为软件开发生命周期的一部分,设计阶段将“耦合”作为其重要步骤之一。

以下是执行耦合过程的主要优点:

  • 帮助识别中每个模块与其他模块的依赖关系
  • 主要用于提高软件应用程序的质量和性能,因为分析有助于保持与
  • 耦合支持功能
  • 当模块之间的依赖性较低时,在一个单元中所做的更改不会影响
  • 为更好的维护方法提供空间

结论

软件工程中的耦合是一个至关重要的过程,因为它在识别和限制软件各个模块之间的连接方面具有重要意义。此外,通过检查软件中所有元素之间的链接,耦合在将软件系统的质量和性能保持在最大水平方面发挥着重要作用。

原文地址
https://www.educba.com/coupling-in-software-engineering/
本文地址
Article

微信

知识星球

微信公众号

视频号