メトリクス
約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が弊社テクニカルサポートの対象です。
※ C/C++、Objective-C/C++、C#、VB.NET、Java、Python、Webが弊社テクニカルサポートの対象です。
イベント・セミナー
ソースコード解析ツール Understandに
関するお問い合わせ
テクマトリックス株式会社
東京本社ソフトウェアエンジニアリング事業部
03-4405-7853
- メールでのお問い合わせ
- scitools-info@techmatrix.co.jp