質問
複数の出口点を持つ関数の循環的複雑度をどのように見つけますか? wikiページは述べています pは、決定点とSの数であり、P-S + 2は、出口点の数である。
それは複数の独立したパスにつながる可能性としてしかし、より多くの出口点は、循環的複雑度を高めるべきではないのですか?
乾杯、
アマン
解決
なぜ NDependのののトライアルを試してみませんか?これは、サイクロマティック複雑さや他の多くのコードメトリクスを計算します。
他のヒント
CC措置直線的に独立したパス。出口点は、このようにCC減少、彼らはパスを終了し、コードにパスを追加していない(または非常に少なくともでは、彼らは確かにののCCを増加させないでください)。
別の言い方をすると、出口点を追加する唯一の方法は、複数のパス(IFなどの条件)を追加することです。それ以外の場合は、「裸の」出口点後のコードが到達不能であるため、複雑さを加える条件文ではなく、出口点である。
おかげでマイケル。私は質問を投稿した後、私は私のミスを実現していました。私のミスは、(ソースファイルを使用しています)JavaNcssとXdepend観測から茎 (jarファイルを使用する)の両方の複数の出口点を有していたコードの一部のためにCCを過大評価するように見えました。私はここのコードはを掲載しています。 しかし、式のp-S + 2答えは4であるように思わを使用すると、私は行方不明ですいくつかの簡単な説明がありますか?
@Richard:私はXdepend(NDependのの非.NETバージョン)を試してみました。それは良いツールを探します。それはjarファイルを使用する場合でも、それは(彼らのドキュメントに受け入れられている)CCを過大評価します。この段階で、私はさまざまなツールを模索しています。あなたは、任意のより良い1を知っていますか?
乾杯ます。