从.NET确定SLOC和C#和C ++的复杂性

时间:2020-03-06 14:43:25  来源:igfitidea点击:

我已经在项目上使用SourceMonitor两年了,以记录Cand C ++组件的源代码复杂性和基本SLOC(包括注释)。这些用于向我们的客户进行外部报告,因此我无法争论他们的优缺点。

我一直在使用资源库分析工具,该工具能够在任何日期/时间为我提供项目的快照视图。我要添加的下一个阶段是对指定文件和修订版的指标进行缓存。

我知道SourceMonitor可以编写脚本,以允许我提供要测试的文件,并从结果文件CSV或者XML中获取指标。

.NET中是否有一个本机库,我可以用它来做同样的事情-例如。避免产生外部过程并解析结果。

我只需要以下指标:

  • SLOC
  • 评论行数
  • 最复杂方法的复杂性
  • 最复杂方法的名称

我需要在Ccode和普通C ++代码上运行它。

编辑:由于我已经有了提供我想要的GUI和报告的工具,因此需要使用库/ API编写脚本或者生成指标,而无需手动操作。理想情况下,我想获取指定文件/修订(而不是整个项目)的指标,我的实用程序将从版本控制中自动拖动该指标。

注意:我为此创建了一个赏金,并且在它过期时正在放假... NDepends的答案并不令我满意,因为它不查看源代码而是汇编本身!

解决方案

依赖

这不会给我们带来功能上的复杂性,并且无法编写脚本(据我所知),但是VS的SlickEdit小工具具有出色的SLOC报告工具,我们可以在解决方案资源管理器中使用它,并会在文件中提供详细的报告,项目或者解决方案级别。

我们可以在这里获得它:http://www.slickedit.com/content/view/441

我们可以在此处找到CSLOC的开源代码和注释:http://code.google.com/p/projectpilot/source/browse/#svn/trunk/ProjectPilot.Framework/Metrics

尽管我从未找到过可以平等地解析Cand C ++的.NET产品,但确实设法找到了一种易于使用的产品CODECOUNT,它支持这些语言以及更多其他语言。

它有一个简单的命令行,与SourceMonitor不同的是,在CodeCOUNT替换它之前,我的项目一直使用SourceMonitor。