第 5 章 評価および考察 31
5.1.2 JPetStore における評価
services層-domain層である.xが記されているセルは層状構造に違反する依存関 係であることを示す.
この結果から,servicesパッケージを意味的に等価なservices’に交換しwebパッ ケージがservices’パッケージを利用するコストはバージョン2.0よりバージョン3.0 の方が小さいと推定する.domainパッケージを意味的に等価なパッケージdomain’
に交換した場合,webパッケージがdomain’パッケージを使用するためにかかる コストはバージョン2.0よりバージョン3.0の方が小さく,servicesパッケージが
domain’パッケージを利用するコストはバージョン2.0よりバージョン3.0の方が
大きいと推定する.
平成19年度修士論文
早稲田大学大学院 理工学研究科 情報・ネットワーク専攻 深澤研究室
"!#$ %"&'(!! (*)+, (*-&./!01!'
2$3!"!'4,56
2$3!"!'4,76
7
8 9 8 8
図 5.6: JPetStoreにおけるpresentationパッケージのCRSSヒストグラム
! "#%$! &'(%)%)*+,
-,. )/)%/%0 1
-,. )/)%/%0!21
3%4 5!3 +3%4
図 5.7: JPetStoreにおけるserviceパッケージのCRSSヒストグラム
"!#$ %&'& $!()+*-,. (+/'!!$
0&1 !&!$234
5
0&1 !&!$264
6
7 587 7
図 5.8: JPetStoreにおけるpersistenceパッケージのCRSSヒストグラム
! "# $# %&'()*',+-./ 0 1!
243 ! 1!15*6 7
243 ! 1!15 7 8
8 91: *9 8 88;981:
図 5.9: JPetStoreにおけるdomainパッケージのCRSSヒストグラム
平成19年度修士論文
早稲田大学大学院 理工学研究科 情報・ネットワーク専攻 深澤研究室
JPetstoreのパッケージサイズは全てのバージョンにおいて10以下であった.こ
こではパッケージサイズを10として考える.また,パッケージ内のクラスは互い に依存しているものと仮定する.すなわち,パッケージ内のクラス1つのCRSSは 10となる.
presentationパッケージのは24個のクラスからなるため,presentationパッケー ジには3個のパッケージが存在する(パッケージサイズが10のパッケージが2個,
パッケージサイズが4のパッケージが1個).仮定に従えば,少なくともCRSSが 6∼10の範囲内のクラスが20個存在し,CRSSが1∼5の範囲内のクラスが4個存 在することになり,presentationパッケージで得られたCRSSヒストグラムに分布 にしたがうことができる.したがってpresentationパッケージでは,循環依存が発 生しないパッケージ構造を構築することできる..
serviceパッケージはバージョン3.0で2個,バージョン4.0で3個のクラスが存 在するため,serviceパッケージには1個のパッケージが存在する.仮定に従えば,
少なくともCRSSが1∼5の範囲内のクラスが2個または3個存在するため,service パッケージで得られたCRSSヒストグラムに分布にしたがうことができる.した
がってserviceパッケージ内では,循環依存が発生しないパッケージ構造を構築す
ることできる.
persistenceパッケージはバージョン3.0で16個のクラスが存在するため2個の パッケージが存在し(パッケージサイズが10のパッケージが1個,パッケージサイ ズが6のパッケージが1個),バージョン4.0で14個のクラスが存在するため2個 のパッケージが存在する(パッケージサイズが10のパッケージが1個,パッケージ サイズが4のパッケージが1個).仮定が成り立つとすれば,少なくともバージョ ン3.0ではCRSS6が∼10の範囲内のクラスが16個存在し,バージョン4.0では少 なくともCRSSが1∼5の範囲内のクラスが4個,CRSSが6∼10の範囲内のクラス が10個存在する.したがって,得られたCRSSヒストグラムからpersistenceパッ ケージでは,循環依存が発生しないパッケージ構造を構築することできる.
domainパッケージのクラスバージョン3.0で10個,バージョン4.0で9個のクラ スが存在するため,domainパッケージには1個のパッケージが存在する.仮定が 成り立つとすれば,少なくともCRSSが6∼10の範囲内のクラスが10個または9個 存在するため,得られたCRSSの分布を満たすことができる.したがって,domain パッケージ内では,循環依存が発生しないパッケージ構造を構築することできる.
以上から,JPetStoreはバージョン3.0,4.0の各層において,循環依存が発生し ないパッケージ構造を構築することできる.xPetstore同様,パッケージ構造のク リティカルパスの長さはCRSSヒストグラムから判断することはできない.
JPetStoreの各層交換可能性
各層の交換可能性はCBL値から分析する.JPetStoreのバージョン3.0,4.0の presentation,service,persistence,domainのCBL値の結果を図5.10,図5.11に 示す.
x 0.113 0.15 0.183
domain
x x
-persistence
x x
x 0.0208 service
x x
x x
presentation
domain persistence service
presentation
図 5.10: JPetStore3.0各層のCBL値
x 0.119 0.259 0.0463
domain
x x
0.238
-persistence
x x
x 0.0833 service
x x
x x
presentation
domain persistence service
presentation
図 5.11: JPetStore4.0各層のCBL値 バージョン3.0から4.0へ変更する際,CBLが増加した層間はpresentation-service,
service-domain,persistence-domainである.CBLが減少した層間は persistence-domainである.service-persistence層間の依存関係はバージョン4.0で導入された ため,バージョン3.0と比較することはできない.xが記されているセルは層状構 造に違反する依存関係であることを示し,-は依存関係は認められているが存在し ていないことを表す.