计算C#

时间:2016-08-26 20:37:20

标签: c# code-metrics

我正在阅读Agile PPP for C#,在某些时候,鲍勃叔叔提出了有趣的设计质量指标:

这些是:

  • H (关系凝聚力)=(R + 1)/ N,其中:
    • R =组件内部关系的数量;
    • N =该组件内的类数。
  • (不稳定)= Ce /(Ca + Ce),其中:
    • Ca =传入耦合;
    • Ce =传出耦合;
  • A (抽象)= Na / Nc,其中:
    • Nc =班级数;
    • Na = 抽象类的数量;
  • D'(与主序列的归一化距离)= abs(A + I - 1)/ sqrt(2),其中:
    • “主序列”是在A对比I笛卡尔图中,由A + I = 1的位置形成的对角线;

最有趣的部分是这个(直接来自书中):

  

自1994年以来,我们描述的指标已成功应用于多个项目。

     

有几个自动工具会为你计算它们,手动计算它们并不困难

     

编写一个简单的 shell,Python或Ruby脚本来遍历源文件并计算它们也不难。

     

有关shell脚本的示例,您可以从objectmentor的免费软件部分下载depend.sh

我找不到这个depend.sh脚本,我不确定我是否同意这些指标很容易手工计算,或者通过某些脚本(我想使用Python,如果就是这样。)

所以,问题是:

  • 是否有免费工具或脚本来计算Bob叔叔的C#代码指标? Visual Studio有一些指标,但它们是不同的,我真的不知道或不关心如何解释它们;
  • 我应该如何处理任务来构建我自己的脚本有着名的“正则表达式无法解析html”的事实,我想知道C#代码结构是否适合那种“简单”脚本“鲍勃叔叔提议,以便可以计算这些指标。我应该试试吗?

1 个答案:

答案 0 :(得分:2)

NDepend工具可以计算these metrics,并且可以通过C# Linq Queries轻松编写自定义指标。

它集成在Visual Studio中,并使用Uncle Bob的度量图生成report

download可以使用为期14天的试用版全功能版。

NDepend Uncle Bob's metrics diagram