Proceedings Template - WORD - (社)情報処理学会ソフトウェア工学

構造および語の類似性に基づくアナリシスパターンの自動抽出
野本悠太郎
久保淳人
鷲崎弘宜
深澤良彰
早稲田大学理工学術院
基幹理工学研究科
情報理工学専攻
青山メディア研究所
早稲田大学理工学術院
基幹理工学研究科
情報理工学専攻
早稲田大学理工学術院
基幹理工学研究科
情報理工学専攻
kubo@nii.ac.jp
ytr-n
@akane.waseda.jp
あらまし
ソフトウェア開発における分析の工程においては,アナ
リシスパターンが利用される.しかし,アナリシスパター
ンを既存の資産から抽出するにはコストがかかるため,要
求やモデルの資産が蓄積されているにも関わらずパターン
が抽出されていないことがある.そこで我々は,アナリシ
スパターンを自動抽出する手法を提案する.本手法におい
ては,対応した要求とモデルの資産の集合を構造および語
の類似性に基づいて解析し,共通部分を特定することによ
って,アナリシスパターンを自動抽出する.本手法を用い
ることで,コストをかけることなくアナリシスパターンを
抽出することができる.
Keywords
ア ナ リ シ ス パ タ ー ン , パ タ ー ン 抽 出 , UML(Unified
Modeling Language),概念辞書(シソーラス)
1. はじめに
オブジェクト指向のソフトウェア開発においては,製品
に関する要求の理解性を向上させるためにモデリングを活
用する.開発の初期段階である分析工程においては,モデ
ルを作成して開発対象の要求を様々な方向から捉える.分
析を経験していくにつれ,似たような要求からモデルを作
成することが起こりうる.そのため,分析段階ではアナリ
シスパターン(分析パターン)を用いる[1].アナリシスパタ
ーンとは,優れたモデルを導出する過程をパターン化した
ものである.分析時に頻出するパターンであり,実際のソ
フトウェアの実装ではなく,開発に対する要求と,開発す
るシステムの構造を反映した典型的なモデルを示したもの
である.
アナリシスパターンを用いることでモデルの作成が容易
になり,ソフトウェアの再利用性向上が実現できる.現在,
数多くのアナリシスパターンが定義されている[1][2][3].
アナリシスパターンには,ドメインに特化した特化型パタ
ーンと,ドメインを超えて再利用可能な汎用型パターンが
存在する.しかし,アナリシスパターンの抽出はワークシ
ョップなど人手を介したものでありコストがかかる.また,
アナリシスパターンを抽出する際には,抽出元の資産の構
成に応じて,共通ドメインから集められていればそのドメ
インに特化したパターンを,異なる様々なドメインから集
められていればドメインを超えて再利用可能な汎用的なパ
ターンをそれぞれ抽出できることが望ましい.
washizaki@waseda.jp fukazawa@waseda.jp
そこで我々は,対応した複数の要求とモデルの集合から
共通部分を特定してアナリシスパターンを自動抽出する手
法を提案する(以下,本手法とする).対応した複数の要
求とモデルとは,同じソフトウェア開発の元となった要求
記述などの要求と,クラス図などのモデルである.モデル
資産のみからのアナリシスパターン抽出では,要求やドメ
インの記述との関連が分からないため,モデルと要求を対
応付けた抽出が必要と考えられる.ドメインによっては要
求とモデルが対応付けられ,資産として蓄積されている.
また,単に共通部分を特定するのみでは汎用的なパター
ンは抽出できないため,クラス名間の類似度を測定する.
これにより,モデルを抽象化して扱うことができるように
なるため,異なるドメインを入力として与えた場合は,汎
用的なパターンが抽出できる.さらに,パターンの適用を
支援するため,パターンの具象度を定義することで,抽出
したパターンの特化・汎用の程度を定量的に区別する.
モデルのみを提示しても,要求やドメインの記述との関
連が分からず,効率的な再利用が可能なアナリシスパター
ンとなりえないため,関連している要求を提示する.その
際,異なるドメインの記述が混在してしまうため,関連し
ている要求を定量化することで,パターン適用の参考とす
る.本手法を用いることで,コストをかけることなく特化
型と汎用型のアナリシスパターンを抽出することができる
と考えられる.
以降,本稿では 2 章でアナリシスパターンの背景と抽出
に関する問題を述べる.3 章で要素技術や具体的な手法を
説明する.4 章で実験結果の評価と考察を検討する.5 章
で関連研究を挙げる.6 章で総括と今後の課題を示す.
2. アナリシスパターンの抽出に関する問題
2.1 アナリシスパターン
オ ブ ジ ェ ク ト 指 向 開 発 に お い て は , 例 え ば UML
(Unified Modeling Language)のクラス図を用いてモデルを
作成する.モデルとは,要求の特徴を捉え抽象化したシス
テムのモデルである.分析段階で用いられるソフトウェア
パターンをアナリシスパターンと呼ぶ.アナリシスパター
ンは,ソフトウェア開発を行うドメインで必要となるデー
タや概念を明確化し,要求や対象世界の記述からモデルを
作成する過程をパターン化する.
多くのソフトウェアパターンは,特定のドメインや実装
技術に特化したものと,汎用的なものに分けることができ
る.汎用的なアナリシスパターンの基本となる「もの-こと
-もの」パターンの構造を図 1 に示す[1].単純に主体とな
る「もの」と対象となる「もの」を関連付けるのではなく,
記録すべき「こと」を概念として書き出すことで,変更に
強くわかりやすいモデルの作成を支援する.
ドメインに特化したアナリシスパターンとして,Martin
Fowler の『アナリシスパターン』が挙げられる[2].例とし
て,「責任関係の知識レベルパターン」の構造を図 2 に示
す[3].「責任関係の知識レベルパターン」に対応する要求
として,(1)組織構造に階層あるいはより複雑なリンクがあ
る,(2)新たな種類のリンクが現れる,(3)構造の変更履歴
を保持する,が挙げられる.「責任関係の知識レベルパタ
ーン」を適用する例題として,勤怠システムのモデル作成
を考える.このシステムには組織と人,組織と組織の関係
が含まれ契約や雇用が関係するので,「責任関係の知識レ
ベルパターン」が適用できる.派遣先や派遣者が変動して
もそれが追跡可能であることを考慮に入れた組織構造のモ
デルを作成することができ,パーティ間に柔軟性を持たせ
た構造をモデリングすることができる.
図 1.「もの―こと―もの」パターンの構造[1]
産が蓄積されているにも関わらずアナリシスパターンが抽
出されていないことが多い[4][5].
さらに,抽象度の観点から,抽出元の資産の構成に応じ
て,共通ドメインから集められていればそのドメインに特
化したパターンを,異なる様々なドメインから集められて
いればドメインを超えて再利用可能な汎用的なパターンを
それぞれ抽出できる必要がある.図 1 と図 2 を区別するよ
うに,抽出したパターンの特化・汎用の度合を示すことも
望まれる.
また,アナリシスパターンにおいては,要求段階で得ら
れた情報をパターン化することでモデル作成を簡略化する.
そのため,モデル資産のみからのアナリシスパターン抽出
では,要求やドメインの記述との関連が分からず,効率的
な再利用が可能なアナリシスパターンとなりえない.前述
の例題を考える場合,図 2 のみではパターンを適用する背
景との関連が理解できないためモデルの作成が困難となる.
よって,モデルと要求を対応付けた抽出が必要と考えられ
る.
我々は,これらの問題を解決するため,アナリシスパタ
ーンを自動抽出する手法を提案する.また,対応した要求
とモデルの資産からの抽出を行うことによって,適切なパ
ターンを抽出し,その抽象度も示す.
3. 構造および語の類似性に基づくアナリシ
スパターンの自動抽出
アナリシスパターン抽出にかかるコストの問題を解消す
るため,我々はアナリシスパターンを自動で抽出する手法
を提案する.入力となる資産 Set x を式(1)で定義する.引
数 x は,入力する資産を表わす.複数の対応付いたモデル
M x と要求 D x の資産の組を入力として,パターンのモデ
ル構造と対応した要求記述が出力される.
図 2.Fowler の「責任関係の知識レベル」パターンの構造[3]
2.2 現状のアナリシスパターン抽出の問題
点
アナリシスパターン抽出に関する問題点を挙げる.

アナリシスパターンは抽出し尽くされていない可能
性がある

パターンの抽象度が適切に示されていない

モデルのみからでは,適切なパターンが抽出できな
い
これまでアナリシスパターンは数多く定義されているが,
ソフトウェア開発におけるドメインの多様さや進展の速さ
により,特化型のパターンは抽出されていない可能性があ
る.また,汎用型のパターンについても抽出し尽くされて
いない可能性が考えられる.しかし,現在アナリシスパタ
ーンを自動で抽出する有効な仕組みがないため,アナリシ
スパターンの抽出にはコストがかかり,要求とモデルの資
Set x  (M x , Dx )
(1)
本手法における対応付いた要求とモデルの資産とは,同
じソフトウェア開発の元となった要求と UML クラス図の
組である.対応付いた要求とモデルの例として,飛行船シ
ステムにおける要求とモデルを図 3,4 に示す.図 3 にお
ける記述が図 4 において抽象化してモデリングされている.
本システムは Java で実装され,要求をテキストファイル形
式(.txt)に,UML クラス図を XMI 形式(.xmi)に変換して入力
する.モデル資産のみからでもパターンを抽出することが
できるが,要求やドメインの記述との関連が分からず効率
的な再利用が可能なアナリシスパターンが抽出できない.
本手法においては,対応付けられた要求とモデルの資産
の集合から共通部分を特定して,アナリシスパターンを自
動抽出する.入力として与えるモデル資産の構成に応じて,
共通ドメインから集められていればそのドメインに特化し
たパターンを,異なる様々なドメインから集められていれ
ばドメインを超えて再利用可能な汎用的なパターンをそれ
ぞれ抽出する.パターンを抽出する際はモデルを抽象化し
てそれらの類似性を求めてモデルを汎用的に扱うため,異
なる様々なドメインから集められたモデルでも共通部分を
特定できる.
例として,図 5 に示した 2 つのモデル「エレベータ―フ
ロア表示」(エレベータシステム)と「飛行制御-画面表
示」(図 4 の飛行船システムから抜粋)について考える.
この 2 つのモデルの場合,「エレベータ」と「飛行制御」
が概念的にコントローラで類似し,「フロア表示」と「画
面表示」が概念的にディスプレイで類似している.このた
め,アナリシスパターンのモデル構造として,抽象化され
たモデル「コントローラ―ディスプレイ」が抽出できる.
また,特化・汎用の度合を定量的に示すため,概念的に類
似した構造の具象度を定義し測定する.具象度を利用する
ことにより,扱うドメインにそのパターンが適用可能か判
定できる.
さらに,概念的に類似した構造と対応している要求の記
述をそれぞれの要求から選択する.異なるドメインの記述
が混在してしまうため,選択された各要求の集合から,概
念的に類似した構造との関連の強さを定量化して表すこと
で,パターン適用の参考とする.これにより,抽出された
構造を用いる背景となる要求がわかりやすくなるため,よ
り効率的なアナリシスパターンとなる.
本手法においては,モデルとして UML クラス図を扱う
ため,モデルがクラスの集合として構成されている.入力
本手法の全体像を図 6 に示し,概要を以下に記述する.
以降の節においてそれぞれ詳細に説明する.
となるモデル M x を式(2)で定義する.モデル M x は,ク
3.1 単語の抜出:要求記述の中で,利用されている単語
を抜き出す.
ラスの集合 C x と各クラス間の関連の集合 R x の組と考え
ることができる.
M x  (C x , Rx )
C x  {c x1 , c x 2 ,, c xf }
(2)
Rx  {rx1 , rx 2 ,, rxg }  C x  C x
※
3.2 クラス名の限定:3.1 で抜き出された単語を名前に持
つクラスに限定する.
3.3 クラス名間の類似度の測定:クラス名間の類似度を
測定することで,入力したモデル(クラスの集合)間の類
似度を測定する.
3.4 類似した構造の抽出:3.3 の結果から,入力したモデ
ル間において類似した構造を抽出する.
f : C x の要素数
※ g : R x の要素数
モデルの類似性を求めるためにはクラス名間の類似度を
測定する必要がある.クラス名 cn xf と cn xf に含まれる単語
3:5 具象度の測定:類似した構造の特化・汎用の度合を
定量的に示すため,具象度を定義し測定する.
3.6 要求の定量化:類似した構造と入力した要求との関
連度合を定量化する.
cw xfh を式(3)で定義する.クラス名 cn xf はクラス C x の要
素と考えられる.また,クラス名 cn xf には単語 cw xfh が含
まれている.
cn xf  cx f
K (cn xf )  {cwxf 1 , cwxf 2 ,, cwxfh }
(3)
図 3.要求記述の例
※ K (cn xf ) : cn xf を形態素解析し得られる単語の集合
※ h : K (cn xf ) の要素数
クラス名間の類似度は単語間の意味の類似度で求められ
る.単語間の意味の類似度を定量的に表す方法として,本
手法においては単語間の類似度を測定する.クラス名に使
われている単語間の類似度が高いほど,クラス間の類似度
が高いと判断できる.図 5 の例の場合「フロア表示」と
「画面表示」は単語間の類似度が高いため,概念的に「デ
ィスプレイ」で類似したと考えられる.
モデルの集合からは概念的に類似したモデル構造が抽出
される(例えば図 5 の「コントローラ―ディスプレイ」).
図 4.モデルの例
図 5.モデルを抽象化した例
図 6.提案手法の全体像
3.1 単語の抜出
要求記述は,句点や改行で分割し,シナリオ S xu の集合
として扱うことができる.各シナリオ S xu を形態素解析す
ることにより,それぞれの要求において利用されている,
すべての単語 wxjv を抜き出すことができる.入力された要
求 Dx を式(4)で定義する.
Dx  {S x1 , S x 2 ,, S xu }
K ( S xj )  {wxj1 , wxj 2 ,, wxjv }
(4)
※ K ( S xj ) : S xj を形態素解析し得られる単語の集合
※ u : Dx の要素数
※ v : K ( S xj ) の要素数
た WordNet::Similarity において pathLength 法を用いること
により,2 単語間の類似度を測ることができる.WordNet
の各単語には上位語となる単語が木構造として体系づけら
れている.
2 単語間の類似度を測る場合は,それぞれの単語の上位
単語をたどり共通する単語を求める.2 単語がたどった全
単語数(パス数+1)の逆数が 2 単語間の類似度と定義さ
れている.単語 w1 , w2 間の類似度 wSim( w1 , w2 ) の定義を
式(5)に示す. wSim( w1 , w2 ) が大きいほど単語 w1 , w2 間の
類似度は高くなる.また,例として図 5 におけるクラス
「 フ ロ ア 表 示 」 と 「 画 面 表 示 」 で 使 わ れ て いるフロア
(floor)と画面(screen)の木構造を図 7 に示す.式(5)よ
り , フ ロ ア ( floor ) と 画 面 ( screen ) の 類 似 度
wSim( floor , screen) 
1
 0.25 となる.
3 1
wSim ( w1 , w2 ) 
3.2 クラス名の限定
3.1 において抜き出した単語の集合 K ( S xj ) の要素が,ク
1
n 1
(5)
※ n :単語 w1 , w2 間のパス数
ラス名に含まれている単語の集合 K (cn xp ) の要素と,1つ
でも一致するクラスのみを扱うことによって,要求とモデ
ルの対応が取れたアナリシスパターンを抽出することが可
能となる.
モデルの集合のみからであっても抽象化されたモデルを
抽出することはできるが,抽出したモデルを適用する際の
要求が明確にならないため,効率的な再利用が可能なアナ
リシスパターンとならない.
図 7.floor と screen の木構造
概念的に類似した構造を抽出するため,すべてのモデル
のクラス名間の類似度を測定する.クラス名 cn xa , cn yb 間
の類似度 cSim (cnxa , cn yb ) の定義を式(6)に示す.
3.3 クラス名間の類似度の測定
本手法においては 2 単語間の類似度を測定するために,
WordNet[6]をもとに作られたツールの WordNet::Similarity
を用いる.
WordNet は英語の同義語や類義語などを分類し体系付け
た概念辞書(シソーラス)である.WordNet をもとに作られ
fx
cSim (cn xa , cn yb ) 
fy
 Max(wSim(cw
j 1 k 1
xaj
Max( f x , f y )
, cw ybk ))
(6)
も高い組み合わせを類似したクラスの組み合わせとして特
定し, ot に含まれるクラスを除いて同様の測定を繰り返す.
※ f x , f y : cn xa , cn yb の要素 cwxaj , cwybk の数
※1つの単語は1度しか使わない
i 1
クラス名 cn xa , cn yb 間の類似度は, cn xa , cn yb を形態素解
析して wSim(cwxa j, cwyb k ) を測定し,単語間の類似度が最
Av (ot ) 
も高い組み合わせを特定する.特定された単語を除いて同
様の計算を単語数が尐ないクラス名の単語数分繰り返し和
を求め,単語数の多いクラス名の単語数で割る.
cSim (cnxa , cn yb ) が大きいほどクラス間の類似度は高くな
ca , cb  ot
る.和  は,1 つの単語が複数の単語と対応付かないよ
うにするために,単語数の尐ないクラス名の単語数分繰り
返す.単語数の多いクラス名の単語数分で割るのは,対応
付かなかった単語の分だけ類似度が低くなると考えたため
である.
クラス名間の類似度の測定として「フロア表示
(floor−display)」と「画面表示(screen−display)」の測定例を,
図 8 に示す.図 8 から, wSim(display , display )  1.00 が最
1.00  0.25
 0.63 と な
2
る.
a 1 b  2
n(n  1) 
a
, cb ))
1
2
(8)
※クラス ca , cb は全体を通して1度しか使わない
Av (ot ) で特定されたすべての各組み合わせ ot において,
2 つずつの組み合わせに対して,各モデルで対応したクラ
ス同士の関連を調べる.すべてのモデルにおいて ot に対応
したクラス同士が関連をもっている場合に,概念的に類似
した構造として抽出する.概念的に類似した構造として抽
出する場合を以下に示す.
o j  {c xj x , c yj y ,  , ciji }
o k  {c xk x , c yk y ,  , ciki }
rx ( j  k )  (c xj x , c xk x ), ry ( j  k )  (c yj y , c yk y ),  , ri ( j  k )  (ciji , ciki )
wSim
(d i s p l a, dyi s p l a) と
y wSim( floor , screen) の和を最大
cSim ( floor  display , screen  display ) 
 (cSim (c
ab
大になっている.それぞれのクラス名の display を除くと,
最 大 の 類 似 度 は wSim( floor , screen)  0.25 で あ る .
単語数 2 で割ることで,クラス名「フロア表示
(floor−display)」と「画面表示(screen−display)」の類似度を
定義する.図 8 から,
i
※
j x , j y ,, ji と k x , k y ,, ki は任意の値
※
rx ( j k ) , ry ( j k ) ,, ri ( j k ) が す べ て 存 在 す る 場 合 に ,
o j , ok と rl  (rx ( j k ) , ry ( j k ) ,, ri ( j k ) ) を類似した構造とし
て抽出する
抽出された o j , ok と rl の集合を M p と定義し,式(9)に
示す.
M p  (C p , R p )
C p  {o1 , o2 ,, o f }
R p  {r1 , r2 ,, rg }  C f  C f
図 8.クラス名間の類似度の測定例
各 o j に対して,抽象化したクラス名を付け,パターン
3.4 類似した構造の抽出
入力した各モデルから 1 つずつクラスを選択したすべて
の組み合わせについて考える.入力となるクラスの集合
C1 , C2 ,, Ci における,すべての組み合わせの集合 O の定
義を式(7)に示す.引数 i は入力する資産の数を表す.
は集合
A
A の要素数を示す.
O  {o1 , o2 ,, ot }  C1  C2   Ci
i
t   Ck
(9)
(7)
k 1
すべての組み合わせである, O の各要素 ot に対して,ク
ラス名間の類似度の平均を求める. ot におけるクラス名間
の類似度の平均 Av (ot ) の定義を式(8)に示す. Av (ot ) が最
構 成 ク ラ ス 名 と 定 義 す る . パ タ ー ン 構 成 ク ラス名は,
WordNet::Similarity を用いて組み合わせ内で対応づいた単
語同士の上位単語を求め,最初に共通した単語を取り出す.
図 7 における,「floor」と「screen」の最初に共通した単
語は「surface」である.単語数の尐ないクラス名の単語数
分取り出し,日本語に翻訳した語をパターン構成クラス名
とする.パターン構成クラス名の例として,図 5 における
「フロア表示」と「画面表示」のパターン構成クラス名は
「ディスプレイ」となっている.
3.5 具象度の測定
3.4 で抽出した M p について具象度を定義する.具象度
を求めることにより,抽出されたパターンの特化・汎用の
度合を判断できる.
類似した構造の具象度合は,各クラス名間の類似度
Av (Ot ) と , 関 連 rx ( j k ) , ry ( j k ) ,, ri ( j k ) の 類 似 度
r S i(m
rx ( j k ) , ry ( j k ) ,, ri ( j k ) ) によるものと考えられる.
本手法においては,クラス図の関連を木構造として構築し
た.クラス図の関連の木構造を図 9 に示す.
※ W( p  x ) : C p の要素と対応する C x の要素のクラス名 cn xf に
含まれる単語の集合
4. 実験・評価
本手法の実験として,同一ドメインにおける対応付いた
要求とモデルの資産からの特化型パターンの抽出と,異な
るドメインにおける対応付いた要求とモデルの資産からの
汎用型パターンの抽出を行った.
また,抽出したパターンを適用したモデルを作成するこ
とで,パターンの抽象度や要求の必要性について評価した.
また,ET ロボコン 2009 に出場し,モデル資産のみから,
本手法を用いて抽出したパターンをモデルに適用した.
図 9.クラス図の関連の木構造
図 9 の木構造は,種類の類似性よりも,方向の類似性を
より類似度が大きいとして構築した.これは,関連の方向
がクラス間の関連において,強い意味合いを持つと考えら
れるからである.本手法では関連 rx ( j k ) , ry ( j k ) ,, ri ( j k )
の類似度 rSim(rx ( j k ) , ry ( j k ) , , ri ( j k ) ) を,図 9 において
本手法においては,クラス名や要求記述を単語に分割す
る た め , 形 態 素 解 析 と し て Sen を 用 い る [7] . ま た ,
WordNet::Similarity は英語のみに対応しているため,クラ
ス名を日本語から英語に翻訳する.翻訳は web 上の Google
翻訳を用いる[8].
pathLength 法 を 適 用 す る こ と に よ り 定 義 し た . 類 似 度
rSim(rx ( j k ) , ry ( j k ) ,, ri ( j k ) ) は,正規化した数値で表現
4.1 同一ドメインからの特化型パターンの
抽出
され,似た関連を持つほど値が大きくなる. M p における
web に公開されている,エレベータシステムの対応した
要求とモデルの組 SetX , SetY [9][10]を本手法の入力として
具象度 E ( M p ) の定義を式(10)に示す.
Cp
E (M p ) 
 Av(o
f 1
パターン抽出実験を行った.使用した要求とモデルの組
DX , M X , DY , M Y を図 10,11,12,13 に示す.また,抽
Rp
f
)
Cp

 rSim(r
x ( j k )
g 1
, ry ( j k ) ,, ri ( j k ) )
(10)
Rp
具象度 E ( M p ) は,クラス名間の類似度 Av (Ot ) と,関
連 rx ( j k ) , ry ( j k ) ,, ri ( j k ) の類似度
rSim(rx ( j k ) , ry ( j k ) ,, ri ( j k ) ) の,それぞれの平均を乗算
したものとして定義した.
3.6 関連のある要求の順位付け
類似した構造と入力した各要求との対応を調べる.シナ
リオ S xu と類似した構造との関連の強さ sr ( S xu ) の定義を
式(11)に示す.類似した構造に利用されるクラス C x のク
ラス名 cn xf に含まれる単語 cw xfh が,シナリオ S xu に含ま
れる割合を sr ( S xu ) とする.異なるドメインの記述が混在
してしまうため,類似した構造と要求の関連の強さを定量
化して付与することで,パターンを適用する背景の理解を
支援できる.
sr ( S xu ) 
W( p  x )  K ( S xu )
K ( S xu )
(11)
出したパターンを図 14,15 に示し「エレベータパター
ン」とする.図 15 における<要求 D X >以下の記述が要求
D X において抽出したパターンと関連のあるシナリオ S xu
であり,[ s ]がそのシナリオ S xu と抽出したパターンとの
関連の強さ sr ( S xu ) である.
図 14,15 からエレベータシステムに関するモデルとそ
れに対応した要求の記述が表わされているため,エレベー
タシステムに関するアナリシスパターンが抽出できたと考
えられる.また,「エレベータパターン」の構造は具象度
が 0.45 となり「コントローラパターン」(後述)の具象度
0.13 よりも高い.
web に公開されている,エレベータシステムに関する要
求記述 D [11]について,「エレベータパターン」を定性
的に適用した.要求記述 D を図 16 に,適用して得られた
モデルを図 17 に示す.
図 17 における「エレベータ」「ドア」「ボタン」につ
いて「エレベータパターン」が適用されている.要求 D
に沿って,図 17 のモデルが適切に作成されている.図 17
のモデル作成において「エレベータパターン」のパターン
構成クラス名と同じクラス名を付けることができた.「エ
レベータパターン」を適用することによって,要求 D の
みからのモデル作成に比べてクラス名とモデルの構造が再
利用できるため,モデル作成にかかるコストが削減されて
いることが分かる.
図 17.要求 D にエレベータパターンを適用した結果
図 10.要求 D X [9]
4.2 異なるドメインからの汎用型パターン
の抽出
飛行船システムの対応した要求とモデルの組 Set Z [12]と
資産 Set X [9]を本手法の入力としてパターン抽出実験を行
った.飛行船システムの DZ , M Z を図 18,19 に示す.また,
抽出したパターンを図 20,21 に示し「コントローラパタ
ーン」とする.
図 11.モデル M X [9]
図 12.要求 DY [10]
図 20,21 から組み込みソフトウェアに汎用的なモデル
とそれに対応した要求の記述が表わされているため,組み
込みソフトウェアに関する汎用的なアナリシスパターンが
抽出できたと考えられる.また,「コントローラパター
ン」の構造は具象度が 0.13 となり「エレベータパターン」
の具象度 0.45 よりも低い.
web に公開されている,自動販売機システムに関する要
求記述 D [13]について,「コントローラパターン」を定
性的に適用した.要求記述 D を図 22 に,適用して得られ
たモデルを図 23 に示す.
図 13.モデル M Y [10]
図 23 において,「自動販売機コントローラ」「金銭返
却部」「商品排出部」「金額表示ディスプレイ」「判定」
「返却」「排出」について「コントローラパターン」が適
用されている.要求 D に沿って図 23 のモデルが適切に作
成されている.図 23 のモデル作成において,「コントロ
ーラパターン」が「エレベータパターン」に比べて抽象度
が高いため,クラス名の変更が多く必要であった.「コン
トローラパターン」を適用することによって,要求 D の
図 14.エレベータパターンのモデル
みからのモデル作成に比べてクラス名とモデルの構造が再
利用できるため,モデル作成にかかるコストが削減されて
いることが分かる.
図 15.エレベータパターンの要求
図 18.要求 DZ [12]
図 16.要求 D [11]
図 19.モデル M Z [12]
sr( S xu ) の値が低いシナリオ S xu は,「コントローラパタ
図 20.コントローラパターンのモデル
ーン」のモデルとの関連度が弱いと感じられ,適用が困難
であった.汎用型パターンの場合は,異なるドメインから
要求を集めるため,要求の定量化を参考にすることで,パ
ターン適用の参考になるとわかる.
モデル作成コストの指標として,パターン内のクラス名
と関連において適用時に変更せずに利用した回数と,すべ
てのクラス名と関連の数との割合を再利用率として求める.
再利用率,適用領域の広さ,具象度の関係を表 1 に示す.
適用領域の広さは各実験において入力としたモデルと要求
の資産のドメインから定性的に判定した.
図 21.コントローラパターンの要求
図 22.要求 D [13]
表 1 から「エレベータパターン」は適用領域が狭いがモ
デルを作成する際の再利用率が高いため,特化型のパター
ンであると分かる.「コントローラパターン」は,適用領
域が広いがモデルを作成する際の再利用率が低く,汎用型
のパターンであると分かる.具象度については「エレベー
タパターン」が「コントローラパターン」に比べて高くな
っている.以上から具象度を利用することにより,扱うド
メインにそのパターンが適用可能か判定できると考えられ,
具象度の正当性が得られる.システムの利用者は,具象度
を利用することによって抽出されたパターンが特化型か汎
用型か判断でき,扱うドメインにそのパターンが適用可能
か判定できる.
本手法を用いることによって,特化型パターンだけでな
く汎用型のパターンも抽出することができる.適切な具象
度によって,効率的な再利用が可能なアナリシスパターン
が自動抽出され,抽出にかかるコストの削減が実現できた.
表 1.再利用率・適用領域・具象度の関係
図 23.要求 D にコントローラパターンを適用した結果
4.3 モデル作成によるパターン評価
本手法において,抽出したパターンを適用したモデル作
成を行い,パターンの評価を行った.この実験の評価基準
を挙げる.

抽出したパターンを適用したモデルを作成することで,
要求の必要性を評価する

各モデル作成から,再利用率と具象度の関係を考察し,
具象度の有用性を評価する
「エレベータパターン」の適用において,図 15 の要求
を理解した上で,要求 D から図 17 のモデル作成を行った.
「エレベータパターン」の要求と要求 D が同じドメイン
であることから,パターンの要求が容易に理解できた.特
化型パターンの場合は,同一ドメインから要求を集めるた
め,要求の定量化を参考にする必要があまりないとわかる.
「コントローラパターン」の適用において,図 21 の要
求を理解した上で,要求 D から図 23 のモデル作成を行っ
た.「コントローラパターン」の要求と要求 D が異なる
ドメインであることから,パターンの要求を適用する際,
適用パターン
再利用率
ドメイン
具象度
エレベータパターン
0.80
狭い
0.45
コントローラパターン
0.43
広い
0.13
4.4 被験者のモデル作成によるパターン評
価
本手法において,被験者によるパターン評価を行った.
被験者は,UML の経験が約 3 年の学生 15 名である.被験
者に要求記述を渡し,クラス図を作成させた.それぞれの
学生に対して,パターンの構造と要求を提示した場合,パ
ターンの構造のみを提示した場合,何も提示しなかった場
合において,実験を行った.この実験の評価基準を挙げる.

各場合においての,クラス図作成にかかるコスト
(時間)の違いを計測し評価する

各場合において,作成されたクラス図の品質を確認
することで,パターンの有用性を評価する
この実験は,特化型パターンである,図 14,15 の「エレ
ベータパターン」を対象とする.被験者に提示した要求記
述は図 16 の要求 D である.また,提示したパターン,ク
ラス図作成時間,クラス図適合率の関係を図 24 に示す.
何も提示しなかった場合は,クラスの適切な抽出が行わ
れていないことが目立った.特に,図 16 の要求 D におい
て重要な,「ボタン」や「ドア」のクラスが抽出されてお
らず,適切なモデルが作成されていなかった.また,クラ
ス名の付け方が不適切であった.さらに,関連の方向や種
類が適切な表現になっておらず,理解性の低いモデルが作
成されていた.よって,本手法を用いることで,効率的な
再利用が可能なアナリシスパターンを抽出できる.
4.5 モデル資産のみからのパターン抽出
図 24.提示したパターン・クラス図作成時間・クラス図
適合率の関係
クラス図作成にかかるコストの違いについて,パターン
の構造と要求を提示した場合,パターンの構造のみを提示
した場合,何も提示しなかった場合のクラス図作成時間
(秒)の平均はそれぞれ,545.9,494.1,477.1 となった.
また,最大値はそれぞれ,727.4,822.9,692.1,最小値は
それぞれ,343.9,234.7,340.4 となった.クラス図作成時
間は,各場合において,大きな違いがないことがわかる.
これは,パターンの構造や要求を提示した場合,それらを
理解するために時間を要したためだと考えられる.
パターンの構造と要求を提示した場合と構造のみを提示
した場合を比較すると,パターンの構造のみを提示した被
験者によっては,クラス図作成にかかるコストが大きくな
っている.これは,パターンの要求がないため,構造の理
解に時間を要したためだと考えられる.よって,モデルの
みを提示しても,要求との関連が分からず,効率的な再利
用が可能なパターンとなりえないため,関連している要求
を定量化して提示する必要性がある.
作成されたクラス図の品質について,各被験者が作成し
たクラス図と図 17 を比較し,クラス名と関連が一致して
いる割合をクラス図適合率(%)として求める.パターン
の構造と要求を提示した場合,パターンの構造のみを提示
した場合,何も提示しなかった場合のクラス図適合率の平
均は,それぞれ 65.0,58.3,28.3 となった.また,最大値
はそれぞれ,75.0,75.0,41.7,最小値はそれぞれ,58.3,
33.3,16.7 となった.
構造と要求を提示した場合は,「エレベータパターン」
の要求を理解した上で,「エレベータパターン」のモデル
を適用し,図 17 のクラス図と類似したモデルが作成され
ていた.パターンの構造のみを提示した場合は,「エレベ
ータパターン」のモデルが提示された意図が理解できてい
なかったためか,不適切な適用をしている被験者がいた.
よって,モデルのみを提示しても,要求との関連が分から
ず,効率的な再利用が可能なパターンとなりえないため,
関連している要求を定量化して提示する必要性がある.
ET ロボコン 2009 の東京大会に参戦し,本手法の適用を
試 み た . ET ロ ボ コ ン ( Embedded Technology Software
Design Robot Contest)とは,組込みソフトウェア分野にお
ける技術教育をテーマに,レゴ,マインドストームの車体
で決められたコースを自律走行する競技である[14].同一
のハードウェアのもと,走行だけでなく UML 等で分析・
設計したソフトウェアの技術を競う.コンテストは競技部
門とモデル部門を併せたものが総合結果となる.
我々は,過去の ET ロボコンにおいて,優秀な成績を収
めた 3 つのチームのモデル資産からパターンを抽出し,そ
のパターンを適用したモデルを提出した.入力として用い
た各モデルはクラスが 20 以上ずつ存在した.それぞれの
資産には,要求に関する記述が存在しなかったため,モデ
ルのみからのパターン抽出を行った.抽出したパターンを
「ロボコンパターン」とし,図 25 に示す.
図 25 から,ロボコンに関するモデルが表わされている.
ET ロボコンのように,極めて限られたドメインに関する
要求から作られたモデルには,背景に同様の要求が存在す
るため,モデルのみからでもパターンが抽出でき,効率的
な再利用が可能であると考えられる.
ET ロボコン 2009 の東京大会の総合結果は 27 チーム中 9
位であったが,競技部門が 14 位であったことから,モデ
ル部門においては,高い評価であったと考えられる.この
ことからも,本手法の有用性がうかがえる.
図 25.ロボコンパターンのモデル
5. 関連研究
Tonella らは,既存のオブジェクト指向プログラムソース
コードからオブジェクト指向デザインパターンを発見する
手法を提案している[15].継承や関連,メソッドの呼び出
し等の関係を共有するクラス群を識別するため,コンセプ
ト分析(Concept Analysis)手法を用いている.この手法にお
いては,モデルの構造のみを解析することによってデザイ
ンパターンを抽出している.対して本手法は,モデルと要
求の対応関係を用いることで,抽出されたパターンに至る
背景を知ることができ,効率的な再利用が可能なアナリシ
スパターンを抽出することが可能である.
Lappe らは,ケーススタディの集合から共通部分を発見
し一般化することでパターンを得るワークショップ型のパ
ターン抽出手法を提案している[4].また,久保らは,ソフ
トウェア要求獲得に関する熟練者に対してインタビューを
行い,Lappe らの手法の変形を用いて互いに深く関連する
一連のパターンを得ることによって,その手法の有効性を
示している[5].対して本手法は,アナリシスパターンを自
動抽出することによって,抽出に人手を介すコストを削減
することが可能である.
John らは,ドメインにおけるコア資産を発見する技術と
して CaVE(Commonality and Variability Extraction Approach)
を提案している[16].これは,ユーザドキュメントや開発
ドキュメントに特化して,ドメインのバリエーションポイ
ントとバリアントを発見する方法である.この手法におい
てはドメインの可変性を抽出するのに対し,本手法はシス
テムを自動化してアナリシスパターンを抽出する.
6. おわりに
オブジェクト指向のソフトウェア開発における分析段階
においては,アナリシスパターンを用いることで,モデル
の作成が容易になる.しかし,アナリシスパターンの抽出
は,ワークショップなど人手を介したものであり,コスト
がかかる.さらに,抽出元の資産の構成に応じて,特化・
汎用型パターンをそれぞれ抽出できる必要があり,抽出し
たパターンの特化・汎用の度合を示すことも望まれる.
我々は,対応付いた要求とモデルの集合から,共通部分
を特定してアナリシスパターンを自動抽出する手法を提案
し,その有効性を検証した.対応した要求とモデルの資産
を構造および語の類似性に基づいて解析することにより,
具象度を利用したアナリシスパターンの自動抽出が確認で
きた.本手法を用いることで,コストをかけることなく,
新しく効率的な再利用が可能なアナリシスパターンを抽出
できる.
今後の課題として,本手法においては「属性」「操作」
「ロール名」「多重度」は考慮せずクラス名のみを解析し
ている.これらを扱うことで,より効率的な再利用が可能
なアナリシスパターンの抽出が可能になると考えられる.
また,汎用型パターンの抽出において,抽出した構造と
要求の抽象度に大きな違いがある.言語解析などを利用す
ることで,より理解度の高い汎用型アナリシスパターンの
抽出が可能になると考えられる.
さらに,実験において,抽出された 2 つのパターンの具
象度を比較することで,特化型と汎用型のアナリシスパタ
ーンとした.今後さらに多くの実験を行うことで,具象度
に閾値を設け,より適切に特化型と汎用型のアナリシスパ
ターンを判別したい.
7. 参考文献
[1] 鷲崎弘宜,太田健一郎.2005.よくわかるソフトウェ
ア・パターン これから学ぶ人のデザインパターン入
門.日経ソフトウェア.日経 BP 社.2005 年 6 月号
[2] M.Fowler.1996.Analysis Patterns : REUSABLE
OBJECT MODELS.Pearson Education
[3] パターンワーキンググループ.2005.ソフトウェアパ
ターン入門―基礎から応用へ―.ソフト・リサーチ・
センター
[4] L.Hagge,K.Lappe.2005.Sharing Requirements
Engineering Experience Using Patterns.. IEEESoftware.
Vol.22. No.1
[5] 久保淳人,鷲崎弘宜,深澤良彰.2005.パターンマイ
ニングによるソフトウェア要求の獲得知識の記述.第
12 回ソフトウェア工学の基礎ワークショップ.
FOSE2005in 仙台
[6] Princeton University.WordNet.
http://wordnet.princeton.edu/
[7] 形態素解析システム Sen.
http://chasen.naist.jp/hiki/ChaSen/
[8] Google 翻訳.http://translate.google.co.jp/
[9] 株式会社オージス総研.UML とオブジェクト指向分
析・設計が開発リスクを軽減する.http://www.ogisri.co.jp/otc/hiroba/technical/DDJ/index.html
[10] 森武俊.知能ソフトウェア(2005 年度)過去のエレベー
タのページ.東京大学.http://www.ics.t.utokyo.ac.jp/tmori/lectures/is/2005/elevator/elevator.html
[11] 牛尾遼平.2007.定理証明技法を用いたユースケース
の追加支援システムの研究.北陸先端科学技術大学院
大学修士論文
[12] 和歌山大学,アーツテックラボ,徳島大学.2008.
MDD ロボットチャレンジ 2008 モデル審査用資料.チ
ーム WEST.情報処理学会.MDD2008(Model Driven
Development)
[13] 吉田誠一.良いユースケースを書くための発想法.
http://www.aerith.net/index-j.html
[14] ET ロボコン 2009.2009.
http://www.etrobo.jp/ETROBO2009/
[15] P.Tonella,G.Antoniol.1999.Object Oriented Design
Pattern Inference.Proc.ICSM’99(International Conference
on Science and Technology of Synthetic Metals)
[16] John,I,Doerr,J,Schmid,K.2003.User Documentation
Based Product Line Modeling.Fraun-hofer IESE,IESEReport No.004