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

时间:2008-09-24 14:09:10

标签: c# sdlc

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

11 个答案:

答案 0 :(得分:7)

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

找到它

答案 1 :(得分:7)

实际上有一个名为可维护性指数的软件指标。由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

答案 2 :(得分:6)

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

对于C#,请查看这些exampleslinks for tools

答案 3 :(得分:2)

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

答案 4 :(得分:2)

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

答案 5 :(得分:1)

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

答案 6 :(得分:0)

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

答案 7 :(得分:0)

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

答案 8 :(得分:0)

没有自动的bulletproff方式来执行此操作。你可以运行一些 lint-like 工具,但它们通常能够指出语法问题,而不是语义问题。无论如何它是有价值的,即它们可能告诉你有关不可读的代码,有风险的构造等等,但不会告诉你设计不可扩展,代码没有经过测试等。

答案 9 :(得分:0)

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

答案 10 :(得分:0)

经过很长一段时间后跳入,NDepend可以满足你的需求,而且还有更多。

Scott Hanselman has a lot of information on using it以及他的轻松digested podcast中的一个很好的概述。