設置
それでは、インストールから始めましょう。 PHP Dependを使用するには、PEARが必要です。
pdependチャンネルをpearに登録します。
94:bin sergeypanarin$ ./pear channel-discover pear.pdepend.org
Adding Channel "pear.pdepend.org" succeeded
Discovery of channel "pear.pdepend.org" succeeded
インストール:
94:bin sergeypanarin$ ./pear install pdepend/PHP_Depend-beta
Did not download optional dependencies: pecl/imagick, use --alldeps to download automatically
pdepend/PHP_Depend can optionally use package "pecl/imagick" (version >= 2.2.0b2)
downloading PHP_Depend-0.9.9.tgz ...
Starting to download PHP_Depend-0.9.9.tgz (291,705 bytes)
.............................................................done: 291,705 bytes
install ok: channel://pear.pdepend.org/PHP_Depend-0.9.9
インストールを確認します。
94:bin sergeypanarin$ ./pdepend --version
PHP_Depend 0.9.9 by Manuel Pichler
アナライザー自体のソースコードでテスト実行を開始します。
94:bin sergeypanarin$ ./pdepend --summary-xml=/Users/sergeypanarin/PDepend/summary.xml --jdepend-chart=/Users/sergeypanarin/PDepend/jdepend.svg --overview-pyramid=/Users/sergeypanarin/PDepend/pyramid.svg /Users/sergeypanarin/PEAR/PEAR/PHP/Depend
PHP_Depend 0.9.9 by Manuel Pichler
Parsing source files:
............................................................ 60
............................................................ 120
................................. 153
Executing CyclomaticComplexity-Analyzer:
............................................................ 1200
...... 1335
Executing ClassLevel-Analyzer:
............................................................ 1200
1204
Executing CodeRank-Analyzer:
........ 180
Executing Coupling-Analyzer:
............................................................ 1200
................. 1545
Executing Dependency-Analyzer:
......................................................... 1160
Executing Hierarchy-Analyzer:
............................................................ 1200
........ 1370
Executing Inheritance-Analyzer:
...................... 443
Executing NodeCount-Analyzer:
........................................................ 1123
Executing NodeLoc-Analyzer:
............................................................ 1200
... 1276
Executing NPathComplexity-Analyzer:
............................................................ 1200
...... 1335
Generating pdepend log files, this may take a moment.
Time: 00:27; Memory: 48.00Mb
結果のファイルはここからダウンロードできます-results_0.zip
結果の解釈
結果の構成には3つのファイルが含まれます。
- summary.xml-完全なソース分析結果
- jdepend.svg
- pyramid.svg
最後の2つのファイルについて詳しく説明します。
jdepend.svg
各「ボール」には、特定のパッケージフォルダーのファイルが表示されます(svgファイルでは、ボールにカーソルを合わせると、パッケージ名のツールチップがポップアップ表示されます)。 ボールのサイズは、パッケージ内の抽象クラスと特定クラスの数によって決まります。
x軸は抽象化比を表し、y軸は不安定性比を表します。
直線は、これらの係数間の最適な比率を表します。
抽象化率(A)は、分析されたパッケージ内のクラスの総数に対する抽象クラスおよびインターフェースの数の比率です。 0から1の値を取ります。0の場合、1が絶対抽象の場合、パッケージは完全に特定です。
求心性結合(Ca)は、現在のパケットのクラスに依存するパケットの数です。
遠心接続の係数 (遠心性結合、Ce)-現在のパッケージのクラスが依存するパケットの数。
不安定性係数 (不安定性比、I)は、遠心性結合係数と結合係数の合計との比です:I = Ce /(Ce + Ca)。 変更に対するパッケージの復元力を示します。 0から1の値を取ります。0の場合、絶対に安定したパッケージと見なされます(他のパッケージにまったく依存しない)、1が絶対に不安定な(他のパッケージに依存しない完全に依存するパッケージ)と見なされます。
pyramid.svg
データはピラミッドの形で表示されます。これは、その外面に、下のレベルと現在のレベルからの特性の値の比として得られる係数があるためです。 係数の値は、低、中、高の値の範囲に入るかどうかに応じて「色付き」です。
つまり、たとえば、0.176 = CYCLO / LOCです。
使用されている略語について詳しく説明します。
左側:
CYCLO (Cyclomatic Complexity)-パケットの循環的複雑度(if、for、foreachなどのコード内の分岐数に基づく)。
LOC (コードの行)-コードの行数。
NOM (メソッドの数+関数)-クラスメソッドの数+関数の数。
NOC (クラスの数)-クラスの数。
NOP (パッケージ数)-パケットの数。
AHH (平均階層の高さ)-階層の平均の深さ。
AND (派生クラスの平均数)-派生クラスの平均数。
右側に:
FANOUT (呼び出されたクラスの数)-クラスの使用数(明らかに、クラスオブジェクトの作成数)。
CALLS (操作呼び出しの数)-メソッドおよび関数呼び出しの数。
PSメリークリスマスと新年あけましておめでとうございます!