メトリクス

約100種類のメトリクス分析

ソフトウェアメトリクスは、ソフトウェアの品質を定量的に評価するものとして、多くの開発現場で利用されています。Understandは、ソースコードを解析し、100種類に及ぶソフトウェアメトリクスを計測、レポートします。その中には、複雑度を表すCyclomatic複雑度(サイクロマチック複雑度)や、結合性を表わすLCOM(結合性の欠如)、CBO(結合されたクラスの数)、規模を表すLOC(コード行数)などが含まれています。
また、2種類のメトリクス値を視覚的に表現するメトリクスツリーマップも用意されており、プロジェクトのメトリクスの全体像を捉えるのに役立ちます。
Understandによるメトリクス分析結果から、ソースコードの品質を確認できます。

分析するメトリクス(抜粋)

  • 複雑度メトリクス
メトリクス C/C++ C# VB.NET Java Web
Cyclomatic複雑度(サイクロマチック複雑度)
Cyclomatic Complexity
●
コード例
● ● ● ●
Modified Cyclomatic複雑度
Modified Cyclomatic Complexity
●
コード例
● ● ● ●
Strict Cyclomatic複雑度
Strict Cyclomatic Complexity
●
コード例
● ● ● ●
Essential複雑度
Essential Complexity
●
コード例
● ● ● ●
Cyclomatic複雑度の平均・最大値・総和
Average, Max, and Sum Cyclomatic Complexity
●
コード例
● ● ● ●
Modified Cyclomatric複雑度の平均・最大値・総和
Average, Max, and Sum Modified Cyclomatic Complexity
●
コード例
● ● ● ●
Strict Cyclomatric複雑度の平均・最大値・総和
Average, Max, and Sum Strict Cyclomatic Complexity
●
コード例
● ● ● ●
Essential複雑度の平均・最大値・総和
Average, Max, and Sum Essential Complexity
●
コード例
● ● ● ●
実行可能パス数
Paths
●
コード例
● ● ● ●
ネスト数
Nesting
●
コード例
● ● ● ●
ノット値
Knots
●
コード例
- - - -
関数に対する入力・出力の数
Inputs, Outputs
●
コード例
● - ● -


  • カウントメトリクス
メトリクス C/C++ C# VB.NET Java Web
ファイル数
Number of Files
● ● ● ● ●
関数の数
Function
● ● ● ● ●
物理行数
Physical Lines
●
コード例
● ● ● ●
空白行数
Blank Lines of Code
●
コード例
● ● ● ●
コード行数
Source Lines of Code
●
コード例
● ● ● ●
宣言コード行数
Declarative Lines of Code
●
コード例
● - ● -
実行可能コード行数
Executable Lines of Code
●
コード例
● - ● -
コメント行数
Lines with Comments
●
コード例
● ● ● ●
非アクティブ行数
Inactive Lines
●
コード例
- - - -
プリプロセッサ行数
Preprocessor Lines
●
コード例
- - - -
ステートメント数
Declarative Statements
●
コード例
● ● ● ●
コメント率
Comment to Code Ratio
●
コード例
● ● ● ●


  • オブジェクト指向メトリクス
メトリクス C/C++ C# VB.NET Java Web
クラス数
Classes
●
コード例
● ● ● ●
基底クラス数
Base Classes
●
コード例
● ● ● -
派生クラス数
Number of Children
●
コード例
● ● ● -
メソッド数
Methods
●
コード例
● ● ●  -
クラスメソッド数
Class Methods
●
コード例
● ● ● -
クラス変数の数
Class Variables
●
コード例
● ● ● -
インスタンスメソッド数
Instance Methods
●
コード例
● ● ● -
インスタンス変数の数
Instance Variables
●
コード例
● ● ● -
クラス結合度
Coupling Between Objects
●
コード例
● - ● -
継承ツリー構造の最大深度
Depth of Inheritance Tree
●
コード例
● ● ● -
クラス凝集度の欠如
Lack of Cohesion in Methods
●
コード例
● ● ● -
※ 分析可能なメトリクスの一覧については、お問い合わせ先までお問い合わせください。
※ システム規模のアーキテクチャメトリクスは、Lattixで分析できます。

メトリクスツリーマップ

メトリクス値をコードの大きさや色の濃さによって可視化します。マップ内の四角はコードファイルを表しており、大きさでコードサイズを表現し、色の濃さでメトリクス値を表現します。メトリクスツリーマップの粒度や四角の大きさにマップするメトリクス、色の濃さにマップするメトリクスは事前に任意のものを指定できるので、さまざまなメトリクスを大きさと色に結び付けて表現することで、コードのいろいろな面を視覚化するのに役立ちます。

解析対象言語

  • Ada
  • Objective-C/C++
  • FORTRAN
  • Python

  • Assembly
  • C#
  • Java
  • VHDL

  • C/C++
  • VB.NET
  • Pascal
  • Web (PHP, HTML, CSS, JavaScript, TypeScript)

※ 対象言語によって、分析できるメトリクスが異なります。体験版でお試しください。
※ C/C++、Objective-C/C++、C#、VB.NET、Java、Python、Webが弊社テクニカルサポートの対象です。

ソースコード解析ツール Understandに
関するお問い合わせ

  • テクマトリックス株式会社
    東京本社

    ソフトウェアエンジニアリング事業部

    03-4405-7853

メールでのお問い合わせ
scitools-info@techmatrix.co.jp

お問い合わせ

製品についてやテクマトリックスについてなど、
こちらよりお気軽にお問い合わせいただけます。