これがstan4jの複雑さのメトリクスです。
日食クラス構造分析ツール。
私はこのツールとメトリクスが好きです。私はメトリックを統計、インジケーター、警告メッセージとして扱います。一部のメソッドまたは一部のクラスが実際に複雑なロジックを持っているために、それらを監視し、リファクタリングする必要があるかどうかを確認するか、注意深く確認する必要があります。それらはエラーが発生しやすいです。また、複雑なものから単純なものまで学ぶのが好きなので、ソースコードを学ぶための分析ツールとしても使用しています。実際には、Robert C. Martin Metrics、Chidamber&Kemerer Metrics、Count Metricsなどの他の指標が含まれていますが、これが一番好きです。
複雑さのメトリクス
循環的複雑度のメトリクス
循環的複雑度(CC)
メソッドの循環的複雑度は、メソッドの制御フローグラフ内の決定ポイントの数を1つ増やしたものです。決定ポイントは、if / for / whileステートメント、case / catch句、および同様のソースコード要素で発生します。これらの要素では、制御フローが線形ではありません。単一の(ソースコード)ステートメントによって導入される(バイトコード)決定ポイントの数は、ブール式の複雑さなどに応じて異なる場合があります。メソッドの循環的複雑度の値が高いほど、メソッドの制御フローグラフのすべてのブランチをテストするために必要なテストケースが多くなります。
平均循環的複雑度
アプリケーション、ライブラリ、パッケージツリー、またはパッケージのすべてのメソッドにわたる循環的複雑度メトリックの平均値。
ファットメトリック
アーティファクトのファットメトリックは、アーティファクトの適切な依存関係グラフのエッジの数です。依存関係グラフのタイプは、メトリックバリアントと選択したアーティファクトによって異なります。
Fat
アプリケーション、ライブラリ、またはパッケージツリーのFatメトリックは、そのサブツリー依存関係グラフのエッジカウントです。このグラフには、パッケージツリー階層内のすべてのアーティファクトの子が含まれているため、リーフパッケージも含まれています。(コンポジションビューで適切なグラフを表示するには、構造エクスプローラーのフラットパッケージトグルを無効にする必要があります。選択したアーティファクトがライブラリの場合は[ライブラリの表示]トグルを有効にする必要があります。それ以外の場合は無効にする必要があります。)
パッケージのFatメトリックは、そのユニット依存関係グラフのエッジカウントです。このグラフには、パッケージのすべてのトップレベルクラスが含まれています。
クラスのFatメトリックは、そのメンバーグラフのエッジカウントです。このグラフには、クラスのすべてのフィールド、メソッド、およびメンバークラスが含まれています。(このグラフとFat値は、コード分析がクラスではなく詳細レベルのメンバーで実行された場合にのみ使用できます。)
ライブラリ依存関係のファット(Fat-ライブラリ)
アプリケーションのライブラリ依存関係のファットメトリックは、ライブラリ依存関係グラフのエッジカウントです。このグラフには、アプリケーションのすべてのライブラリが含まれています。(コンポジションビューで適切なグラフを表示するには、構造エクスプローラーの[ライブラリの表示]トグルを有効にする必要があります。)
フラットパッケージ依存関係のファット(Fat-パッケージ)
アプリケーションのフラットパッケージ依存関係のファットメトリックは、フラットパッケージ依存関係グラフのエッジカウントです。このグラフには、アプリケーションのすべてのパッケージが含まれています。(コンポジションビューで適切なグラフを表示するには、構造エクスプローラーのフラットパッケージトグルを有効にし、ライブラリの表示トグルを無効にする必要があります。)
ライブラリのFatfor Flat Package Dependenciesメトリックは、フラットパッケージ依存関係グラフのエッジカウントです。このグラフには、ライブラリのすべてのパッケージが含まれています。(コンポジションビューで適切なグラフを表示するには、構造エクスプローラーのフラットパッケージとライブラリの表示の切り替えを有効にする必要があります。)
トップレベルクラスの依存関係のファット(Fat-ユニット)
アプリケーションまたはライブラリのトップレベルクラスの依存関係のファットメトリックは、そのユニット依存関係グラフのエッジカウントです。このグラフには、アプリケーションまたはライブラリのすべての最上位クラスが含まれています。(妥当なアプリケーションの場合、大きすぎて視覚化できないため、コンポジションビューに表示できません。ユニット依存関係グラフはパッケージに対してのみ表示できます。)
the number of StyleCop warnings + 10 * the number of FxCop warnings + 2 to the power of the number of disabled warning types
です。そのメトリックの値が可能な限り小さくなった後でのみ、人間がコードのレビューを開始する価値があります(私の意見では)。要約すると、単純な式ではなく洗練されたツールがコード品質の向上に役立ちます。しかし、これはおそらくトピックから外れています。