【问题标题】:NDepend: What is "Resilience to Change"NDepend:什么是“适应变化”
【发布时间】:2023-03-13 23:43:01
【问题描述】:

在评估 NDepend 时,我将一个 NDepend 项目附加到构成我们公司软件套件的所有 Visual Studio 项目中。特别引人注目的是抽象性与不稳定性图的结果。几乎所有项目都挤在图表的右下角,表明“不稳定”程度非常高。

NDepend 文档对instability 的定义是:

传出耦合 (Ce) 与总耦合的比率。 I = Ce / (Ce + Ca)。该指标是代表大会适应变化的能力的指标。该指标的范围是 0 到 1,I=0 表示完全稳定的装配,I=1 表示完全不稳定的装配。

但是,在这种情况下,我一直无法找到“适应变革的能力”的明确定义。有人愿意尝试给出定义吗?

已添加

显然,出现“resilience to change”的句子给出了这个概念的松散定义,即“传出耦合 (Ce) 与总耦合的比率”。但这留下了这个比率的意义是什么以及它与变化的关系的问题。

【问题讨论】:

    标签: code-metrics ndepend coupling


    【解决方案1】:

    请参阅报告中的文档。 稳定意味着修改起来很痛苦因此不稳定是一个积极的东西,这意味着它可以轻松地改变它,这意味着组件对变化有弹性.


    摘自报告中的文档: 抽象与不稳定性图

    抽象性与不稳定性图有助于检测哪些程序集可能难以维护(即具体且稳定),哪些程序集可能无用(即抽象且不稳定)。

    • 抽象性:如果程序集包含许多抽象类型(即接口和抽象类)而具体类型很少,则将其视为抽象。

    • 稳定性:如果一个程序集的类型被许多类型的层程序集使用,则该程序集被认为是稳定的。在这种情况下,稳定意味着修改起来很痛苦。

    【讨论】:

    • 好吧,我想不出更好的人来回答我的问题!谢谢你,帕特里克。
    • 好吧,也许是这些指标的发明者 Robert C Martin :) 你可以阅读它关于该主​​题的原始文章:objectmentor.com/resources/articles/oodmetrc.pdf
    • “稳定意味着修改痛苦” - 到目前为止,我还没有在 NDepend 文档中偶然发现这一说法。我发现的是一个基本上说明“稳定+具体”=痛苦,不稳定+抽象=无用“的图形。意味着抽象代码必须是稳定的,具体代码必须是“不稳定的”。这正是你的摘录所说的 - 它只与你的相矛盾第一条语句。
    猜你喜欢
    • 2011-01-26
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 2012-03-29
    • 1970-01-01
    • 1970-01-01
    • 2016-03-23
    • 1970-01-01
    相关资源
    最近更新 更多