代码之家  ›  专栏  ›  技术社区  ›  JoeB

计算代码块的代码复杂度的现有库

  •  1
  • JoeB  · 技术社区  · 15 年前

    我得到了一个包含任意数量代码的字符串。我想计算一个表示该字符串代码复杂度的数字。类似于:

    int complexity = Lib.FindComplexity(someString);
    

    我知道有很多工具可以帮你。 这些工具对我不起作用,因为我想用编程的方式来做。 我很希望图书馆能在C__,但在这一点上我会做任何事情。

    提前谢谢!

    4 回复  |  直到 13 年前
        1
  •  1
  •   Brian Genisio    15 年前

    您是否考虑过使用这些现有工具之一并将其包装到库中?例如,您可以使用ndepend.console.exe,方法是使用所需的参数从代码中调用它,并解析出结果。

        2
  •  1
  •   Joshua Belden    15 年前

    ndepend是一个很好的工具,虽然在我看它的时候并不便宜。如果钱不是一个选择,我会考虑使用反射和 http://en.wikipedia.org/wiki/Cyclomatic_complexity . 它不符合任何字符串的要求,但您可以肯定地测试您创建的程序集。

        3
  •  1
  •   Dimi Takis    15 年前

    您还可以使用反射器和代码度量插件。

        4
  •  0
  •   Ira Baxter    14 年前

    像这样的图书馆必须能够 解析任意语言 片段 ,然后计算分析片段上的复杂性度量。 大多数度量工具最多有一个用于整个语言的解析器, 不只是碎片,所以你很难找到 很多解决方案。

    有一个系统可以为你提供你需要的东西: 我们的DMS软件重组工具包。它提供解析器 适用于多种语言(如Java语言和C语言); 不清楚你想分析什么语言)。 DMS已经被用于实现这些类型的度量 对于几个Langues(Java,C语言,JavaScript,COBOL) 这样做的过程是严格的。 和 dms确实解析了langauge片段 ,令人惊讶的是, 度量实现实际上是在这样的片段上操作的。 您可以定制dms来实现您想要的。 见 http://www.semanticdesigns.com/Products/DMS/DMSToolkit.html 对于派生的度量工具, http://www.semdesigns.com/Products/Metrics/index.html