问题标签 [cohesion]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
119 浏览

oop - 从 XML 类图计算耦合和内聚度量

我正在尝试创建一个项目,以使用粒子群优化为班级责任分配问题提供决策支持。考虑耦合和内聚等各种参数,导出适应度函数,并进行粒子群优化。程序的输入将是 XML 格式的 UML 类图。如何从 XML 格式的 UML 类图中计算以下参数:

MAC(c) - 类 c 与其他类之间的方法-属性耦合 - 一个类 (c) 的方法与同一类图中其他类的属性之间的交互总数 MMC(c) - 类之间的方法-方法耦合c 和其他类——一个类 (c) 的方法与同一类图中其他类的方法之间的交互总数 MGC(c) 方法泛化耦合——这仅适用于应用泛化的类图中。

RCI(c) c 类内聚相互作用的比率:RCI(c) = |CI(c)| / |CImax(c)|。

CImax(c) 是类 c 中最大可能的内聚相互作用。CI(c) 是类 c 中现有内聚交互的数量。

TCC(c) 紧密类内聚 - 是常用的类 c∈C 的方法对 m1 和 m2。

DMA (m,a) 方法 m 和属性 a 之间的直接方法属性依赖关系。

DMM (m1,m) m1 和 m2 之间的直接方法-方法依赖关系。

如何从 XML 格式的 UML 类图中计算这些参数?

0 投票
2 回答
5023 浏览

sequential - 软件设计架构中的过程内聚和顺序内聚有什么区别?

程序内聚说模块的部分是分组的,因为它们总是遵循特定的执行顺序, 而顺序内聚说模块的部分是分组的,因为一个部分的输出是另一个 部分的输入,例如装配线。这些定义是模棱两可的。请解释。

0 投票
3 回答
1664 浏览

java - 凝聚力和耦合 - 如何确定阈值?

我现在正在进一步介绍 java 类,这是该类简要定义的方式:

内聚力:以高内聚力为目标,在这种情况下内聚力意味着单个模块紧密地专注于其任务。

耦合:以低耦合为目标,在这种情况下,耦合意味着两个或多个模块相互交织的程度。

如何确定内聚和耦合的水平?

例如,我的一些方法调用了同一个类中的其他方法。这意味着调用其他方法的方法依赖于其他方法,以便“调用”方法完成其代码块。这是否意味着我对同一类的方法具有低内聚和高耦合?还是这些概念更多地涉及不同的类和不同的包?

0 投票
0 回答
265 浏览

oop - 代码耦合、内聚和脆弱性是什么关系?

我试图理解代码耦合、凝聚力和脆弱性。我想检查一下我目前的理解。目前我得出以下结论:

低耦合 = 高内聚 = 低脆弱性

反之亦然:

高耦合 = 低内聚 = 高脆弱性

当我使用“=”时,我的意思是实现三个中的任何一个都会实现另外两个。这是真的还是假的,或者他们对此有任何例外。带有事实的示例会更有用。

0 投票
1 回答
26 浏览

oop - 如何重构这些类以相互交互?

我的要求是使用形状的名称使用方法中的尺寸绘制该形状Draw('rectangle', 'l:10,w:20');

  1. 应该根据形状的类型验证尺寸。
  2. 可以重构这些类以添加更多类或更改层次结构。
  3. 不应使用像反射这样的运行时检查。这个问题只需要通过类设计来解决。
  4. 不要在客户端方法中使用if-elseorswitch语句Draw

要求:

我创建了以下类。我通过创建两个类层次结构来考虑低(松散)耦合和高内聚性,这样它们就可以自行增长。我保留了绘制到一个类并为另一个类生成维度的责任。

我的问题是关于创建这些对象并相互交互以实现我的要求。

0 投票
3 回答
53 浏览

architecture - 我对耦合的含义是否正确?

我将尝试写一些关于软件耦合和凝聚力的想法,但我不确定它们是否意味着任何实际的东西。所以如果你想用例子来解释你的答案,请使用简单的代数表达式,想象代数是一种顺序编程语言,这样我们都可以理解你在说什么......

在维基百科中阅读它

所以这就是我想要相信的(这是正确的吗?):

...

...

...

0 投票
2 回答
243 浏览

c# - 助手/存储类的内聚度低,真的错了吗?

有一个像这样的类,两个实例变量有两个 getter:

该类将被归类为完全缺乏凝聚力。但是,我相信在某些情况下需要这样的无状态对象,因此不应该应用内聚度量。或者这是一个错误的方法/想法?事实是,除了本材料末尾提到的一些案例外,我从未读过关于低内聚力的文章:http ://www.aivosto.com/project/help/pm-oo-cohesion.html

0 投票
3 回答
1711 浏览

java - 高内聚和松耦合的优化

我在一次技术面试中被问到一个项目的内聚和耦合。我广泛解释了他们的定义,尽管我没有正确回答问题的第二部分,正如他所说。

“我们如何在一个项目中同时实现高度内聚和松散耦合的设计,请解释如何在单体项目中实施这种方法?”

我回答说这两个目标是矛盾的,所以我们需要为每个项目或模块找出最好的选择,但我无法提供一个全面的答案。

如果有人帮助我,我将不胜感激。

0 投票
1 回答
180 浏览

java - 这被认为是低耦合和高内聚吗?有改善的机会吗?

我正在尝试掌握 Robert C. Martin 的 SOLID 原则。目前我正在研究低耦合和高内聚。我创建了一些代码来代表我目前对这个主题的理解。你们能告诉我是否在正确的轨道上吗?有机会改进当前的设计吗?

创建两个地址并将其分配给员工的主应用程序:

员工等级:

地址接口:

具体地址实现1(HomeAddress):

具体地址实现2(WorkAddress):

任何帮助/反馈将不胜感激!提前致谢。

马克。

0 投票
1 回答
1733 浏览

design-patterns - 用于演示的高内聚和松散耦合的真实示例

我需要做一个关于高内聚和松耦合的演示。为了向我的听众解释这一点,我需要提出这两个术语的真实示例(不是基于代码的),但我很难找到一个。所以想问问大家有什么好的想法吗?

非常感谢 :)