コード メトリックス値Code metrics values

最新のソフトウェア アプリケーションの複雑さが増すには、信頼性が高く、保守しやすいコードを行う苦労も増加します。The increased complexity of modern software applications also increases the difficulty of making the code reliable and maintainable. コード メトリックスとは、開発者が開発中のコードをより理解できるようにする、ソフトウェアの一連の基準です。Code metrics is a set of software measures that provide developers better insight into the code they are developing. コード メトリックスを利用して、開発者はどの型やメソッドを作成し直してまたはより徹底的にテストする必要がありますを理解できます。By taking advantage of code metrics, developers can understand which types and/or methods should be reworked or more thoroughly tested. 開発チームでは、潜在的なリスクを識別、プロジェクトの現在の状態を把握、およびソフトウェアの開発中に進行状況を追跡できます。Development teams can identify potential risks, understand the current state of a project, and track progress during software development.

開発者は、Visual Studio を使用して、複雑さと、マネージ コードの保守容易性を測定するコード メトリックス データを生成することができます。Developers can use Visual Studio to generate code metrics data that measure the complexity and maintainability of their managed code. ソリューション全体または 1 つのプロジェクトのコード メトリックス データを生成できます。Code metrics data can be generated for an entire solution or a single project.

Visual Studio でコード メトリックス データを生成する方法については、次を参照してください。方法。コード メトリックス データを生成します。For information about how to generate code metrics data in Visual Studio, see How to: Generate code metrics data.

ソフトウェアの測定Software measurements

次の一覧は、Visual Studio を計算するメトリックスの結果をコードに示します。The following list shows the code metrics results that Visual Studio calculates:

  • 保守容易性指数-コードを維持するためのさを表す 0 ~ 100 の範囲のインデックス値を計算します。Maintainability Index - Calculates an index value between 0 and 100 that represents the relative ease of maintaining the code. 大きな値は、保守性を向上を意味します。A high value means better maintainability. 色に評価は、すばやくコードの問題の箇所を識別するために使用できます。Color coded ratings can be used to quickly identify trouble spots in your code. 緑色の評価は 20 ~ 100 の間、コードに適切な保守容易性があることを示します。A green rating is between 20 and 100 and indicates that the code has good maintainability. 黄色の評価が 10 ~ 19 と、コードが中程度の保守であることを示します。A yellow rating is between 10 and 19 and indicates that the code is moderately maintainable. 赤い評価は、0 から 9 までの評価し、保守性が低いことを示します。A red rating is a rating between 0 and 9 and indicates low maintainability. 詳細については、次を参照してください。、保守容易性のインデックスの範囲と意味ブログの投稿。For more information, see the Maintainability index range and meaning blog post.

  • サイクロマティック複雑度-コードの構造の複雑さを測定します。Cyclomatic Complexity - Measures the structural complexity of the code. プログラムのフロー内の異なるコード パスの数を計算することによって作成されます。It is created by calculating the number of different code paths in the flow of the program. 複雑な制御フローのあるプログラムで適切なコード カバレッジを実現するためにさらにテストが必要です、保守性が低下します。A program that has complex control flow requires more tests to achieve good code coverage and is less maintainable. 詳細については、次を参照してください。、サイクロマティック複雑度のウィキペディア エントリします。For more information, see the Wikipedia entry for cyclomatic complexity.

  • 継承の深さ-1 つの基本クラスに至るまでさかのぼってから継承する別のクラスの数を示します。Depth of Inheritance - Indicates the number of different classes that inherit from one another, all the way back to the base class. 継承の深さは、結合の基本クラスの変更がその継承されたクラスのいずれかに影響をクラスに似ています。Depth of Inheritance is similar to class coupling in that a change in a base class can affect any of its inherited classes. 高いほど、この数の詳細度、継承などの基本クラスの変更につながる重大なほどの可能性を変更します。The higher this number, the deeper the inheritance and the higher the potential for base class modifications to result in a breaking change. 継承の深さの値が低いをお勧めし、高の値が正しくありません。For Depth of Inheritance, a low value is good and a high value is bad.

  • クラス結合-パラメーター、ローカル変数、戻り値の型、メソッドの呼び出し、ジェネリックまたはテンプレートのインスタンス化、基底クラス、インターフェイスの実装、外部の型で定義されているフィールドの一意のクラスに結合度を測定し、属性による装飾します。Class Coupling - Measures the coupling to unique classes through parameters, local variables, return types, method calls, generic or template instantiations, base classes, interface implementations, fields defined on external types, and attribute decoration. 優れたソフトウェア デザインでは、型とメソッドの高い凝集度がある必要があります結合度が低いことを決定します。Good software design dictates that types and methods should have high cohesion and low coupling. 高い結合では、再利用およびその他の種類の依存関係が多いため、保守することが難しい設計を示します。High coupling indicates a design that is difficult to reuse and maintain because of its many interdependencies on other types. 詳細については、次を参照してください。、クラス結合度ブログの投稿。For more information, see the Class coupling blog post.

  • 行のコード-コード内の行の概算数を示します。Lines of Code - Indicates the approximate number of lines in the code. カウントは、IL コードに基づいており、ソース コード ファイル内の行の正確な数とはそのためです。The count is based on the IL code and is therefore not the exact number of lines in the source code file. 型またはメソッドが多すぎる作業を実行しようとし、分割する必要があります、高の数は可能性があります。A high count might indicate that a type or method is trying to do too much work and should be split up. また、型またはメソッドの保守が困難いることを示す場合もします。It might also indicate that the type or method might be hard to maintain.

    Note

    コマンド ライン バージョンIL ではなくソース コードを分析するため、コードのメトリックのツールがコードの実際の行数をカウントします。The command-line version of the code metrics tool counts actual lines of code because it analyzes the source code instead of IL.

匿名メソッドAnonymous methods

匿名メソッド名前を持たないメソッドだけです。An anonymous method is just a method that has no name. 匿名メソッドは、コード ブロックをデリゲート パラメーターとして渡すを最も頻繁に使用されます。Anonymous methods are most frequently used to pass a code block as a delegate parameter. メソッドまたはアクセサーは、メソッドを宣言するメンバーに関連付けられているなど、メンバーで宣言されている匿名メソッドのコード メトリックスの結果します。Code metrics results for an anonymous method that's declared in a member, such as a method or accessor, are associated with the member that declares the method. メソッドを呼び出すメンバーに関連付けられていません。They are not associated with the member that calls the method.

生成されたコードGenerated code

一部のソフトウェア ツールとコンパイラは、プロジェクトに追加されると、プロジェクトの開発者は表示されないかを変更しないでくださいコードを生成します。Some software tools and compilers generate code that is added to a project and that the project developer either does not see or should not change. ほとんどの場合、コード メトリックスは、メトリック値を計算するときに生成されたコードを無視します。Mostly, Code Metrics ignores generated code when it calculates the metrics values. これにより、どのような開発者を表示および変更を反映するように、メトリック値です。This enables the metrics values to reflect what the developer can see and change.

Windows フォームに生成されたコードは無視されません、開発者が確認および変更するコードであるためです。Code generated for Windows Forms is not ignored, because it is code that the developer can see and change.

次の手順Next steps