是否有源代码可维护性的评级系统?

我有兴趣找到一些可以分析一些C#文件或整个C#项目/解决方案的软件,并给它一个评分来评估其维护的难易程度。 那里有产品或方法吗?

有一个名为SourceMonitor的工具。 它扫描并分析您的源代码并对其进行评级。 你可以在这里找到它http://www.campwoodsw.com/

实际上有一个称为可维护性指数的软件度量。 由SEI-CMU开发。

它基于Halstead Metrics,Cyclomatic复杂度,LOC和百分比评论。

简而言之,公式为171 – 5.2 * ln(aveV) – 0.23 * aveV(g’) – 16.2 * ln(aveLOC)+ 50 * sin(sqrt(2.4 * perCM))

更多细节: http : //www.sei.cmu.edu/str/descriptions/mitmpm.html

循环复杂性是可维护性的良好指示。 它是通过源代码测量不同路径的数量。

对于C#,请查看这些示例和工具 链接 。

如果使用Visual Studio 2008,则会在IDE中内置许多度量标准。 如果您使用Visual Studio 2005,或者想要一个独立的系统。 devAdvantage / devMetrics是你的答案。 所有这些工具都产生了多种措施,包括@Kevin讨论的Cyclomatic Complexity。

在阅读代码以确定复杂性时,您可以让某人每分钟计算您的WTF 😉

Code Coplexity正在考虑以及其他一些事项(耦合,内聚,inheritance级别),以在Team System工具中制定可维护性分数。 如果您正在运行Visual Studio的Team System SKU,那就是您所追求的重磅炸弹。

你应该检查圈复杂度。 我不知道是否有.net的工具,但如果你搜索它,我打赌你会找到结果。

圈复杂度,即逻辑分支的数量可以衡量模块的测试和维护难度。

没有自动的bulletproff方法来做到这一点。 您可以运行许多类似lint的工具,但它们通常能够指出语法问题,而不是语义问题。 无论如何它是有价值的,即它们可能告诉你有关不可读的代码,有风险的构造等等,但不会告诉你设计不可扩展,代码没有经过测试等。

我相信你需要VS 2008 dev或团队系统。 但是,如果您拥有它,则代码指标function会提供许多不同的指标,包括圈复杂度。 它还将指标上升到“可维护性指数”。

经过很长一段时间的死后, NDepend可以满足您的需求。

Scott Hanselman 有很多关于使用它的信息,并且在他容易消化的播客中有很好的概述。