全体の本は、コードメトリクスに書かれているので、あなたは、あなたがより具体的な質問をしていることを幸運です。 Javaの循環型複雑さの場合、循環型の複雑さ5または6を超えるメソッドの数を見つけることができます(ここで数を選択します)。この数がメソッドの数の一定割合を超えると、サイクロマティック全体の複雑さが低くなります。パーセンテージの良い数値は、プロジェクトのサイズに完全に依存します。したがって、メソッドの数だけではなく、メソッドの数を減らすことができます。プロジェクトが成長するにつれてそれをより安定にするための平方根または対数。
たぶん、このような何か:
public double evaluateCyclomaticComplexity(List<MethodStat> methodStats) {
int bad = 0;
for (MethodStat methodStat : methodStats)
if (methodStat.getCyclomaticComplexity() >= 6)
bad++;
double denominator = Math.sqrt(methodStats.size());
return bad * 100.0/denominator;
}
数がここで返さ小さく、より良いです。 の場合、実際にはが悪いプロジェクトの場合は、100より大きい何かが返されます。
分母関数は、コードベースが成長するにつれて複雑さがどのくらい速いかを表す必要があります。一般的に、コードが拡張されて保守可能な状態になるにつれて、CCが関数ごとに低くなるようにしたいので、プロジェクトサイズが大きくなるにつれて成長が遅くなるものが最適です。
最終的には、コードメトリクスは正当化するのが難しく、数字を使って「保守性」を表すオープンソースソフトウェアに関するいくつかのジャーナル論文を読んだ後で証明することができます。十分な時間が費やされれば、ここで思いつくことができます。