MVCモデルにおける結合度予測に関する研究
村澤 富美恵
1.背景と目的
ソフトウエア開発を容易にするためには、デザインパターンを有効に活用する必要がある。
ソフトウエア構造の代表的なパターンまたはモデルとして以下がある。
@Layer(レイヤ)
APipe&Filter(パイプ&フィルタ)
BBlack board(黒板)
CBroker(ブローカ)
DModel-View-Controller(MVC)
EReflection(自己反映)
特に対話型システムでは、MVCモデルが多く利用されている。ただし、有効性を統計的に確認したデータは少ない。
Smalltalkには、モデル・ビュー・コントローラ(Model-View-Controller:MVC)と呼ばれるデザインパターンが存在する。そこで、MVCモデルが持つ要素間と他の要素モデルとのメッセージ交換比率をMVCの結合度として定義し、結合度の大きさによってMVCモデルが有効であるかを明らかにすることが目的である。
2.研究内容
本研究では、結合度を次のように定義した。
結合度=MVC間でやり取りされるメッセージ数/他のクラスも含めてやり取りされるメッセージ数
(1)Smalltalkの持つ3つの基本構成要素Model-View-Controllerについて調査し、結合度を求めるためにMVCクラス間で交換されるメッセージ数を測定した。
(2)結合度に影響を与えると思われる要因候補について考察した。候補として以下がある。
@それぞれのMVCクラスがもつ変数の数
AそれぞれのMVCクラスがもつメソッドの数
(3)結合度と変数の数、メソッド数の間の相関を分析した。これによって、変数の数、メソッド数が判明するとMVCの結合度予測できる。
4.評価および結果
Smalltalkにあるサンプルプログラムから、MVCを組としたサンプルを取り上げた。変数の数、メソッド数、MVC間でやり取りされるメッセージ数、外部に送っているメッセージ数、内部でのメッセージ数を集計し、評価した。
MVCモデルの調査および相関分析から、MVCモデル間のメッセージ数とMVCモデル間のメソッド数の間に高い相関が認められた。これにより、MVCモデルは結合度が高く、プログラムに有効であるという結果が得られた。
5.まとめ
調査サンプル数は、MVCを組として9サンプルを取り上げた。
変数の数、メソッドの数によって、MVCの有効性が予測できるので事前にMVCモデルの効果が評価できることが判明した。しかしながら、今回のMVCモデルの調査では、継承などを詳細に区別して調査をしていないので、更に詳しく研究を進めていくことが今後の課題である。
参考文献
[1]青木淳: Smalltalkイディオム、ソフトリサーチセンター(1997).
[2]F.ブッシュマン/R.ムニエ/H.ローネスト/P.ゾンメルラード/M.スタル:
ソフトウエアアーキテクチャ(ソフトウエア開発のためのパターン体系)、トッパン(1999).
[3]長谷川勝也:Excelで学ぶ統計学入門(確立・統計編)、技術評論社(1998).
[4]橋本智雄:入門 統計学、共立出版株式会社(1996).