耦合(coupling)和软件工程中的内聚性(附示例)(cohesion in software engineering (with examples))的区别

在软件工程中,内聚性表示代码库的一部分在逻辑上形成单个原子单元的程度。它也可以被描述为一个模块的元素属于一起的程度,或者某个代码单元内的连接数。如果数字很低,那么单元的边界可能选择得不好,单元内的代码在逻辑上不相关。...

什么是软件工程中的内聚(cohesion in software engineering)?

在软件工程中,内聚性表示代码库的一部分在逻辑上形成单个原子单元的程度。它也可以被描述为一个模块的元素属于一起的程度,或者某个代码单元内的连接数。如果数字很低,那么单元的边界可能选择得不好,单元内的代码在逻辑上不相关。

模块可能具有的不同内聚性包括:

  • 重合内聚
  • 程序衔接
  • 顺序衔接
  • 功能衔接
  • 交际衔接
  • 时间衔接
  • 逻辑衔接

关于内聚力你需要知道什么

  1. 内聚性表示代码基的一部分在逻辑上形成单个原子单元的程度。
  2. 内聚是模块内的概念。
  3. 内聚性描述了模块的相对功能强度。
  4. 高内聚性是将代码库中相互关联的部分保持在一个地方。
  5. 衔接可以分为以下几类:巧合衔接、逻辑衔接、时间衔接、程序衔接、交际衔接、顺序衔接和功能衔接。
  6. 内聚是数据隐藏的一种自然扩展,例如,类的所有成员都可见,包具有默认可见性。
  7. 在设计时,您需要努力实现高内聚性,也就是说,只关注单个任务,而很少与系统的其他模块交互。
  8. 内聚性的增加对软件有好处。
  9. 高内聚性提供了最好的软件。
  10. 创建完全内聚的代码而不引入不必要的耦合是可能的。

什么是软件工程中的耦合(coupling in software engineering)?

在软件工程中,耦合是软件模块之间相互依赖的程度。紧密耦合的两个模块相互依赖性很强。另一方面,松散耦合的两个模块互不依赖。此后,它们被称为解耦模块。未耦合的模块内部完全没有相互依赖关系。

模块耦合有多种类型,包括:

  • 无直接耦合
  • 数据耦合
  • 压印联轴器
  • 控制耦合
  • 公共联轴器
  • 内容耦合
  • 外部耦合

关于耦合,您需要了解什么

  1. 耦合表示单个单元独立于其他单元的程度(耦合是两个或多个单元之间的连接数)。
  2. 耦合是模块间的概念。
  3. 耦合描述了模块之间的相对独立性。
  4. 低耦合是指尽可能多地分离代码库中不相关的部分。
  5. 耦合可分为以下几类:数据耦合控制耦合戳耦合和公共耦合。
  6. 生成私有字段、私有方法和非公共类提供了松散耦合。
  7. 在设计时,您需要努力实现低耦合,也就是说,模块之间的依赖性应该更小。
  8. 避免了软件耦合的增加。
  9. 松耦合提供了最好的软件。
  10. 在不破坏内聚力的情况下实现完全解耦是不可能的。

内聚和耦合图

007Ys3FFgy1gwyfvd4gvyj30pa0fpab3

Also Read: Difference Between Spiral Model And Prototype Model In Software Engineering

凝聚性(cohesion)和表格形式的耦合(coupling in tabular form)的区别

比较基础 凝聚性 耦合
描述 内聚性表示代码基的一部分在逻辑上形成单个原子单元的程度。 耦合表示单个单元独立于其他单元的程度(耦合是两个或多个单元之间的连接数)
概念 这是一个模块内的概念 这是一个模块间的概念
它描绘了什么? 它描述了模块的相对功能强度 它描述了模块之间的相对独立性
这需要什么? 高内聚性是将相互关联的代码库的各个部分保持在一个地方 低耦合是指尽可能地分离代码库中不相关的部分
类型/类别 一致衔接逻辑衔接时间衔接程序衔接交际衔接顺序衔接功能衔接 数据耦合控制耦合戳耦合公共耦合
操纵 内聚是数据隐藏的一种自然扩展,例如,类的所有成员都可见,包具有默认的可见性 生成私有字段、私有方法和非公共类提供了松散耦合
设计 在设计时,您需要努力实现高内聚性,也就是说,只关注单个任务,而很少与系统的其他模块交互 在设计时,您需要努力实现低耦合,也就是说,模块之间的依赖性应该更小
耦合与内聚的增加 内聚性的增加对软件有好处 避免了软件耦合的增加
如何实现最佳软件 高内聚性提供了最好的软件 松耦合提供了最好的软件
可能 创建完全内聚的代码而不引入不必要的耦合是可能的 如果不破坏内聚性,就不可能实现完全解耦

  • 发表于 2021-11-29 16:54
  • 阅读 ( 262 )
  • 分类:IT

你可能感兴趣的文章

凝聚(cohesion)和表面张力(surface tension)的区别

内聚力和表面张力的关键区别在于,内聚力描述的是相同分子之间发生的分子间作用力,而表面张力则描述液体表面的弹性。 表面张力是液体的一种性质,它是由相同液体分子之间的内聚力引起的。凝聚力可以描述为相似分...

  • 发布于 2020-09-24 01:41
  • 阅读 ( 525 )

双子座的(geminal)和邻近耦合(vicinal coupling)的区别

双生耦合和邻接耦合的关键区别在于,双生耦合是指两个氢原子与同一个碳原子结合的耦合。但是,邻接耦合是指两个氢原子与两个相邻的碳原子的耦合。 在核磁共振(NMR)中出现了双子和邻接耦合这两个术语,它们描述了...

  • 发布于 2020-10-13 20:32
  • 阅读 ( 461 )

要求(requirement)和软件工程规范(specification in software engineering)的区别

软件工程中需求与规范之间的关键区别在于,需求是利益相关者的需求,软件应该处理该需求,而规范是具有分析需求的技术文件。规范描述软件的特性和行为。 软件工程是一门系统地开发软件的学科。需求是软件的基础。...

  • 发布于 2020-10-18 18:32
  • 阅读 ( 503 )

瞬间(moment)和夫妇(couple)的区别

主要区别-力矩与耦合 在物理学中,力矩和耦合这两个术语与在物体上引起转动效应的力有关。力矩和力偶之间的主要区别在于,在力矩中,由于产生转动效应的力,可能存在也可能不存在合力,而在力偶中,则没有合力...

  • 发布于 2021-06-27 07:31
  • 阅读 ( 313 )

粘附(adhesion)和凝聚(cohesion)的区别

...响 表面张力 表面张力是相邻分子间内聚力的结果。液体中的大部分分子被相邻的分子均匀地向各个方向拉动。但表面分子并非四面八方都有分子。因此,它们被向内拉,导致液体收缩,形成一个面积最小的表面,一个球体。因...

  • 发布于 2021-07-07 00:28
  • 阅读 ( 349 )

粘附(adhesion)和凝聚(cohesion)的区别

...物体的粒子在整个质量中结合在一起 虽然,衔接在化学中的应用更为广泛,但它也被用于计算机编程。Yourdon和C***tantine将内聚描述为模块中元素的归属程度。内聚性是衡量单个模块的职责有多紧密相关或集中的一个指标。 在化...

  • 发布于 2021-07-13 02:49
  • 阅读 ( 234 )

主动运输(active transport)和被动运输(附示例)(passive transport (with examples))的区别

...物质分泌到血液中。主动转运的例子包括钠/钾泵、肠道中的葡萄糖选择和植物根系对矿物离子的吸收。主动传输利用ATP形式的细胞能量。大的不溶性分子进入细胞需要主动转运。 主动运输的主要作用包括: 根据浓度梯度提...

  • 发布于 2021-11-27 09:55
  • 阅读 ( 217 )

溶质(solute)和溶剂(附图片和示例)(solvent (with pictures & examples))的区别

... 溶质与溶剂的意义 溶质是指溶解在溶液中的物质。解决方案可以有多种形式。它可以是气体、液体或固体。将溶质分开并使溶质分子在其中均匀分布的溶液,通过产生一种在整个溶液中均匀分布的溶液。 溶...

  • 发布于 2021-11-27 13:53
  • 阅读 ( 260 )

佩特(pert)和cpm(附图表和示例)(cpm (with chart & examples))的区别

...厂维护、土建工程等方面的问题。 pert和cpm在项目管理中的重要性 提高了资源优化利用的灵活性。帮助管理层关注少数关键的活动,而不是在任何时候都同等重视所有活动。PERT和CPM有助于项目经理及时做出决策,并采取有...

  • 发布于 2021-11-27 13:55
  • 阅读 ( 274 )

水平的(horizontal)和垂直通信(附示例)(vertical communication (with examples))的区别

组织中的沟通可以分为垂直、水平或对角。横向沟通是指信息在组织中处于同一位置的人员之间流动。横向交流有助于在员工和同事之间分享想法、愿望、信息和态度。它还促进相互理解并确保跨职能协...

  • 发布于 2021-11-27 14:20
  • 阅读 ( 330 )
Do131
Do131

0 篇文章

相关推荐