電子情報通信学会論文誌 2002/10 Vol. J85–D–I No. 10

研究速報

ると，あるソフトウェア属性のために n 個のメトリックスが考案されているのであれば ，それらによって n主成分・相関分析によるメト リックスの定量的検証法
阿萬裕久†（ 正員）

健司†

山崎山田宏之†（ 正員）野田松太郎†

次元の情報が得られなければならない．さもなくば ，いくつかのメトリックスが冗長であることになる．
従来 ，メト リック スが 新し く提案され ると きは ，A Quantitative Method of Verifying Metrics Using Principal
Component Analysis and Correlation Analysis

Weyuker [3] や Briand ら [4] の定性的な検証法（対象

Hirohisa AMAN† , Regular Member,とするソフトウェア属性に関する数学的性質を利用）

Kenji YAMASAKI† , Nonmember,
Hiroyuki YAMADA† , Regular Member,や，開発現場での測定データとの関係（ 例えば ，複雑and Matu-Tarow NODA † , Nonmember†

さ メト リックスによる測定値と実際に含まれていた

愛媛大学工学部情報工学科，松山市

フォールト 数との相関 [5] 等 ）を調べる定量的な検証

Department of Computer Science, Faculty of Engineering,法が使われてきた．しかしながら，新しく提案される

Ehime University, Bunkyo-cho 3, Matsuyama-shi, 790–8577
Japan

メトリックスを含めていくつかのメトリックスが与えられたとき，（ 1 ）“それらによって対象としているソあらましあるソフトウェア属性を測定するためのフトウェア属性のどれだけの側面を表現できるのか，”

メトリックスがいくつか与えられたとき，それぞれは（ 2 ）“冗長なメトリックスは含まれていないか ” といっ異なった視点から独立した測定値を提供しなければなた視点での検証は行われていない．新しいメトリック

らない．換言すると，n 個のメトリックスが与えられスが提案され，たとえ従来の検証法によってその有効ていれば ，それらによって n 次元の情報が得られな性が示されたとしても，そのメトリックスによる測定ければならない．さもなくば ，いくつかのメトリックが既存のいくつかのメトリックスを合成することで実スが冗長であることになる．そこで本論文では，メト現されるようではその有意性は低い．そのため本論文リックスを定量的に検証する一つの方法として，主成では，上述の（1），（2）のような視点での検証を実現分分析・相関分析を用いる方法を提案している．提案

するため，主成分分析並びに相関分析 [6] を用いて メ

手法は ，いくつかの メト リックスが与えられたとき，面を表現できるのか，（ 2 ）冗長なメトリックスは含まトリックスを定量的に検証する方法を提案する．
2. メト リックスの定量的検証法
あるソフトウェア属性に対し ，n 個のメトリックスれていないか，という 2 点について検証を行うことがµk (k = 1, . . . , n) が存在しているものとする．このとできる．

き，これらのメトリックスの検証法を以下に提案する：（ 1 ）対象としているソフトウェア属性のどれだけの側

キーワード

メトリックス，主成分分析，相関分析

1. ま え が き（ 1 ） N 個のソフトウェアを無作為に抽出し，各メト リックスによる測定を行う．その結果，各メトリッ

ソフトウェアの設計・開発を支援する一つの有効な方法として，ソフトウェアのもつ様々な属性を評価・クス値を成分とした n 次元ベクトルが N 個得られる．

その各ベクトルを xi (i = 1, . . . , N ) と表す．

予測することが挙げられる．そのための尺度をソフト（ 2 ） xi (i = 1, . . . , N ) に対し ，各成分間の相関ウェアメトリックス，あるいは単にメトリックスとい係数を算出し，相関行列 R を求める．

う．メトリックスは，明確な測定目標をもち，その上（ 3 ） 相関行列 R の 固 有値を 算出する ．ここでで客観的かつ正確にソフトウェア属性を測定しなけれは ，各固有値を λj (j = 1, . . . , n) とする．ただし ，ばならない [1]．ソフトウェア属性としては，複雑さ・λ1 > λ2 > · · · > λn である．λj に対応する固有ベク凝集度・結合度等があるが，一般にそのような属性にトルは第 j 主成分と呼ばれている（ 注 1 ）．

は様々な側面があり，単一のメトリックスで適切に測（ 4 ） 各主成分の累積寄与率 αj (j = 1, . . . , n) を定することは難しい [2]．そのため，一つのソフトウェ算出する：

ア属性を測定するためにいくつもの異なったメトリックスが考案され，それらを組み合わせることで目的の属性を正確にとらえようとしている．その際，各メトX ,Xjαj =n

λtt=1

λt .

t=1

リックスは，それぞれ異なった視点から独立してソフ（ 注 1）
：通常，主成分分析では共分散行列の固有値・固有ベクトルを用いるが，各トウェア属性を測定していなければならない．換言す

データの単位が異なっている場合はそれらを正規化しなければならない．これは1000

電子情報通信学会論文誌 D–I Vol. J85–D–I

相関行列を用いることを意味する．詳し くは文献 [6] を参照されたい．

No. 10 pp. 1000–1002 2002 年 10 月

レタPー

た だ し ，λj は 相 関 行 列 R の 固 有 値で あ るた め ，
nt=1 λt= n であ る．なお，累積寄与率 αj とは ，（ lack of cohesion in methods-1 ）及び LCOM2 では，“ メソッド 同士が同一の属性にアクセスしているか否

第 1 主成分から第 j 主成分までの j 個の固有ベクトか ” に 着目し ，そのような組合せの数等を用いるこルを基底とした j 次元空間でもって，もとの n 次元とで クラス凝集度を 測定し ている ．また ，LCOM3ベクトルの αj × 100 (%) の情報を表現できることを意味する．

∼ LCOM5 及び TCC（ tight class cohesion ），LCC（ loose class cohesion ）では，“ メソッド 間での属性の（ 5 ） 今，n 次元の情報をより低次元で表現すると共通利用” や “ メソッド 呼出し ” をメソッド 間での結合したときに，望ましい累積寄与率の下限を τ とする．

関係ととらえ，そのような関係の広がりや密度等を用

すなわち，全データの τ × 100 (%) の情報を表現でいてクラス凝集度を測定している．ICH（ informationきれば 十分であるとする．そこで αj ≥ τ となるよflow-based cohesion ）では，メソッド 呼出しの回数並うな最小の j を求める．もし j < n ならば ，測定さびにメソッド のパラメータ数を利用してクラス凝集度れたメト リックス値には現実には n 次元の広がりはを測定している．これらの詳細については文献 [10] をないことになる．すなわち，n 個の メト リックス µk

参照されたい．

(k = 1, . . . , n) のうち，いくつかは冗長であると考えることができる．逆に j = n ならば，n 個のメトリッ個を無作為に 抽出し ，これら八つの メト リックスをクスはいずれを欠くこともできないことがわかる．

使って測定を行った．その結果に対して主成分分析を

なお，τ の値について，本論文では文献 [7] に従いτ = 0.95 とする．

施し，その累積寄与率を算出すると表 2 に示す結果が冗長なメトリックスの選定には，各メトリックス間累積寄与率は第 5 主成分で 0.95 を超えている．つ今回，Sun Java 2 SDK 1.3.1 付属のクラスから 67得られた．の相関係数（ 相関行列 R の各成分；対角成分を除く）

まり今回の実験データは，現実的には 8 次元の広がりを用いればよい．つまり，m (≤ n − j) 個のメトリッはもっていない．このことから，いくつかのメトリックスを冗長とする場合，まず最も相関の強いメトリックスは冗長であると推察される．そこで，各メト リックス対を選び ，ど ちらか一方を冗長なメトリックスとクス値間の相関を調べたところ表 3 に示す結果が得らみなす．そして，その メト リックスの存在を無視し ，同じ 操作を m − 1 回繰り返せばよい．ただし ，本論

表 1 クラス凝集度メトリックス
Table 1 Class cohesion metrics.

文では相関係数の絶対値が 0.8 以上であるときを “強い相関” とみなし [8]，相関係数の絶対値が 0.8 未満であるようなメトリックス対についてはこの選定の対象外とする．

✷3. 適 用 例
前章で述べた検証法の適用例として，本章ではクラス凝集度メトリックスに対する検証実験の結果を示す．
凝集度は，モジュール内での要素間の機能的な関係付けの強さの度合とし て定義されている [9]．高い凝集度のモジュールでは，全要素が単一の機能を実現することに関係しており，開発・保守・再利用が容易で，フォールトも含まれにくいといわれている [10]．オブ
ジェクト指向ソフトウェアでは，メソッド や属性をクラスの要素とみなすことで，クラスをモジュールに見立てることができる．つまり，クラスに対しても凝集度の概念を適用できる．
これまでにクラス凝集度メトリックスとしては表 1に 示し た八つが 知られ ている．この うち，LCOM1

メトリックス
LCOM1
LCOM2
LCOM3
LCOM4
LCOM5
TCC
LCC
ICH

説明
属性を共有していないメソッド 対の数
LCOM1 –（ 共有しているメソッド 対の数）
属性参照に基づいてグループ化されたメソッド 集合の数
LCOM3 に メソッド 呼出しを加味したもの
メソッド ・属性間結合のクラス内での密度メソッドによる属性共有の比率
TCC に間接アクセスを加味したもの
パラメータ数で重み付けされたメソッド
呼出し回数

表 2 主成分分析の結果：累積寄与率Table 2 Result of pricipal component analysis:accumulated contribution rate.
主成分
累積寄与率
第 1 主成分0.508
第 2 主成分0.733
第 3 主成分0.845
第 4 主成分0.945
第 5 主成分0.977
第 6 主成分0.995
第 7 主成分0.999
第 8 主成分1.0001001

電子情報通信学会論文誌 2002/10 Vol. J85–D–I No. 10

Table 3LCOM1
LCOM2
LCOM3
LCOM4
LCOM5TCC
LCC
ICH

LCOM11

表 3 各メトリックス間の相関係数
Correlation coeﬃcients between each of metrics pairs.
LCOM20.999
1

LCOM30.882
0.885
1LCOM40.896
0.887
0.860
1LCOM50.0321
0.03290.0676
0.0612
1れた．

LCOM1，LCOM2，LCOM3，LCOM4 それぞれの

[1]

文献

N.E. Fenton and S.L. Pﬂeeger, Software Metrics:

N. Fenton, “Software measurement: a necessary scientiﬁc basis,” IEEE Trans. Software Eng., vol.20,no.3, pp.199–206, March 1994.

メト リックスを用いて測定を行うことも可能である．
[3]

E.J. Weyuker, “Evaluating software complexity measures,” IEEE Trans. Software Eng., vol.14, no.9,できる情報が現実的には 5 次元であることに対応し ，表 2 の累積寄与率とも符合する．なお，今回の測定サICH
0.437
0.448
0.692
0.316
0.0372−0.0145−0.122
1

Publishing Company, Boston 1997.
[2]

ずれか一つと LCOM5，TCC，LCC，ICH の五つの
このことは，既存のクラス凝集度メトリックスで測定

LCC−0.118−0.119−0.169−0.186−0.2830.727
1

A Rigorous and Practical Approach, 2nd ed., PWS

間の相関係数はいずれも 0.8 を上回っており，強い正の相関が 確認できる．そのため，これらのうちのいTCC−0.0739−0.0746−0.0752−0.161−0.171
1

pp.1357–1365, Sept. 1988.
[4]

L.C. Briand, S. Morasca, and V.R. Basili, “Property-ンプルの抽出数及び抽出範囲は必ずしも十分ではない

based software engineering measurement,” IEEE

ため，この結果の意味するところが真に一般的である

Trans. Software Eng., vol.22, no.1, pp.68–85, Jan.

かど うかを判定するのは難しい．この問題は，より多1996.
[5]

V.R. Basili, L.C. Briand, and W.L. Melo, “A valida-

くのサンプルをより広範囲にわたって抽出することでtion of object-oriented design metrics as quality in-解決される．
4. む す び
本論文では，メトリックスを定量的に検証する一つ

dicators,” IEEE Trans. Software Eng., vol.22, no.10,
pp.751–761, Oct. 1996.
[6]

塩谷

[7]

本多正久，インフォメーション・アナリストのための多変提案した．本手法は，いくつかのメトリックスが与え[8]

量解析の実際，産能大学出版部，東京，1993.
宮本一郎，よくわかる統計学概要，学術図書，東京，1993.

られたとき，（ 1 ）対象としているソフトウェア属性の[9]

片山卓也，土居範久，鳥居宏次（ 監訳），ソフトウェア工学大事典，朝倉書店，東京，1998.

[10]

L.C. Briand, J.W. Daly, and J. Wüst, “A uni-の方法として，主成分分析・相関分析を用いる方法をどれだけの側面を表現できるのか，（ 2 ）冗長な メト

實，多変量解析概論，朝倉書店，東京，1990.

リックスは含まれていないか，という 2 点について検ﬁed framework for cohesion measurement in object-

証を行うことができる．本手法を従来の検証法と組みoriented systems,” Empirical Software Engineering,合わせることで，より的確なメトリックスの検証が可

vol.3, pp.65–117, 1998.

能になると考えられる．

1002（ 平成 14 年 3 月 25 日受付，5 月 15 日再受付）