ᢤ⢋ 䠖
5.5 操作モデル→イベントフロー図変換( STEP8)
STEP7で変換した操作モデルを,QVTによる変換規則(図5.9)に従って,イベントフ
ロー図に変換する.例えば,環境エージェント,ソフトウェアエージェントをそれぞれアク ターとソフトウェア機能にマッピングし,イベントと操作をメッセージにマッピングする.
図 5.9上段左,右のモデルは,それぞれ操作モデルとイベントフロー図の変換テンプレー トのメタモデルである.左側のモデルは,図 5.4の出力側のモデルと同じものである.右 側のモデルは,ユースケースモデルのメタモデル(図 4.10)におけるUseCaseDescription の部分(図の右側部分)に基づいている.すなわち,アクター,ソフトウェア機能(メイ ンソフトウェア機能またはサブソフトウェア機能),エンティティオブジェクトからなる ライフラインと,それらライフライン間のメッセージからなるインタラクションを使って,
洗練パターンに合ったイベントフローを構成する.また,インタラクションはインタラク ションフラグメントで構成され,複合フラグメントもインタラクションフラグメントのひ
5.5. 操作モデル→イベントフロー図変換(STEP8) 67
08&8&'>@ ,QWHJUDWLRQ8VHFDVHGLDJUDPVZLWKKLHUDUFKLFDOUHODWLRQV 08&8&'>@
58&>@>@᧶⚓嫛ኡዙ栱≑ሥቮ⮘㙪俟㨫ዃዙኖዙኖ⦂ት⒕揜 IRUHDFK8&'ಬ᧶8&'>@ቑ尐侯ቊሥቮ⮘㙪俟㨫ዃዙኖዙኖ⦂
58&>L᧶ዃዙኖዙኖ⦂ቑኡዙ䟹⚆@>M᧶⮘㙪俟㨫ዃዙኖዙኖ⦂䟹⚆ @ 8&'ಬ᧷
IRUHDFKL ^ IRUHDFKM
LI58&>L @>M@ቒₙ⇜ቑዃዙኖዙኖ⦂ት㖐ቇ ^
0&᧶᧸䶻ㆤ㟿᧶ₙ⇜ቑዃዙኖዙኖ⦂᧺᧸䶻ㆤ㟿᧶ₚ⇜ቑዃዙኖዙኖ᧺ት ኻዙንሺ᧨ቀቑ俟㨫ት䶻ㆤ㟿ⅲ⏴ሼቮ
0&8&'ಬಬ᧶8&'ಬቑₙ⇜ዃዙኖዙኖ⦂8&'ಬ᧷
58&>L@>Mಬಬ᧶ₙ⇜ዃዙኖዙኖ⦂ቑ㫋侜⇜函 @ 8&'ಬಬ᧷
`
`0&᧶0&8&'᧶ₙ⇜ዃዙኖዙኖ⦂8&'᧶ₚ⇜ዃዙኖዙኖ⦂
0&8&'8&'᧶
LI8&' __8&' ዙኖ⒕屲ኮኜዙዐ ^
UHSODFH8&᧶8&'₼ቑ8&'ቑ尹ዃዙኖዙኖ ZLWK8&'᧷
8&ቋ8&'ቑቿኌኜዙት㻝▥䔈▥ቊ栱抲Ⅷሴቮ᧷
8&ቋ8&'ቑኅዐኣኀኣኀት㻝▥䔈▥ቊ栱抲Ⅷሴቮ᧷
` HOVHLI 8&' ⒕━ዘ倀㽊ኮኜዙዐ ^
UHSODFH8&᧶8&'₼ቑ8&'ቑ尹ዃዙኖዙኖ ZLWK8&'᧷
8&ቋ8&'ቑቿኌኜዙት楕侓栱≑ቊ栱抲Ⅷሴቮ᧷
8&ቋ8&'ቑኅዐኣኀኣኀት楕侓栱≑ቊ栱抲Ⅷሴቮ᧷
` HOVH^
68&V᧶8&'ቑኒኳዃዙኖዙኖ刳
UHSODFH8&᧶8&'₼ቑ8&'ቑ尹ዃዙኖዙኖ ZLWK68&V᧷
8&'ቑቿኌኜዙት栱抲Ⅷሴቮ᧷
8&'ቑኅዐኣኀኣኀት栱抲Ⅷሴቮ᧷
`
䠖
䝴䞊䝇䜿䞊䝇ᅗ⤫ྜ
図 5.8: ユースケース図統合アルゴリズム
䠄 䠅
Where
RP2SHUDWLRQ0RGHO
,I5HILQHPHQW3DWWHUQ 'HFRPSRVLWLRQ%\&DVHV^5HILQHPHQW3DWWHUQ7R&RPELQHG)UDJPHQWDOWUSFI(YHQW7R0HVVDJHIURP$FWRUHYP`
HOVHLI5HILQHPHQW3DWWHUQ *XDUG,QWURGXFWLRQ^5HILQHPHQW3DWWHUQ7R&RPELQHG)UDJPHQWRSWUSFI(YHQW7R0HVVDJHIURP$FWRUHYP`
HOVHLI5HILQHPHQW3DWWHUQ 'LYLGH$QG&RQTXHU^5HILQHPHQW3DWWHUQ7R&RPELQHG)UDJPHQWSDUUSFI(YHQW7R0HVVDJHWR$FWRUHYP`
HOVH^5HILQHPHQW3DWWHUQ7R,QWHUDFWLRQ)UDJPHQWUSLI (YHQW7R0HVVDJHWR$FWRUHYP`
(QYLURQPHQW$JHQW7R$FWRUHDD(QYLURQPHQW$JHQW7R$FWRUHDD (QYLURQPHQW$JHQW7R$FWRUHDD (QYLURQPHQW$JHQW7R$FWRUHDD
6RIWZDUH$JHQW7R0DLQ6RIWZDUH)XQFWLRQVDPVI6RIWZDUH$JHQW7R6XE6RIWZDUH)XQFWLRQVDVVI 6RIWZDUH$JHQW7R6XE6RIWZDUH)XQFWLRQVDVVI 6RIWZDUH$JHQW7R6XE6RIWZDUH)XQFWLRQVDVVI
(QWLW\7R(QWLW\2EMHFWHHR(QWLW\7R(QWLW\2EMHFWHHR(QWLW\7R(QWLW\2EMHFWHHR(QWLW\7R(QWLW\2EMHFWHHR (YHQW7R0HVVDJHIURP$FWRUHYP2SHUDWLRQ7R0HVVDJHWR6XEVRIWZDUH)XQFWLRQRP
2SHUDWLRQ7R0HVVDJHWR6XEVRIWZDUH)XQFWLRQRP(YHQW7R0HVVDJHWR$FWRUHYP HG(YHQWIORZ'LDJUDP
P0HVVDJHIURP$FWRU
PVI0DLQ6RIWZDUH)XQFWLRQ
LI,QWHUDFWLRQ)UDJPHQW HR(QWLW\2EMHFW
D$FWRU
FI&RPELQHG)UDJPHQW L,QWHUDFWLRQ
P0HVVDJHWR$FWRU
P0HVVDJHWR$FWRU
VVI6XE6RIWZDUH)XQFWLRQ
P0HVVDJHWR6XE6RIWZDUH)XQFWLRQ
P0HVVDJHWR6XE6RIWZDUH)XQFWLRQ
VVI6XE6RIWZDUH)XQFWLRQ
D$FWRU D$FWRU
HR(QWLW\2EMHFW HR(QWLW\2EMHFW R2SHUDWLRQ
US5HILQHPHQW3DWWHUQ R2SHUDWLRQ
VD6RIWZDUH$JHQW
H(QWLW\
VD6RIWZDUH$JHQW
H(QWLW\
H(QWLW\
HY(9HQW HY(9HQW HY(9HQW
HD(QYLURQPHQW$JHQW
HD(QYLURQPHQW$JHQW R2SHUDWLRQ H(QWLW\
VD6RIWZDUH$JHQW VD6RIWZDUH$JHQW HY(9HQW
HD(QYLURQPHQW$JHQW HD(QYLURQPHQW$JHQW
D$FWRU
VVI6XE6RIWZDUH)XQFWLRQ HR(QWLW\2EMHFW
P0HVVDJHIURP$FWRU
図 5.9: 操作モデル→イベントフロー図変換規則(QVT)
とつである.洗練パターンの種類によって,単純なインタラクションフラグメントを使っ たり,複合フラグメントを使ったりする.すなわち,ケース分解の場合はオルタネートの 複合フラグメント,ガード導入の場合はオプションの複合フラグメント,分割・統治の場 合はパラレルの複合フラグメント,その他の場合は単純なインタラクションフラグメント をそれぞれ使う.下段のWhere節の規則に従って,左右モデルのモデル要素間をマッピン グする.
次に,操作モデルからイベントフロー図への変換アルゴリズムを疑似コードにより具体 化する.変換アルゴリズムの抜粋として,ケース分解洗練パターンの変換部分を図 5.10に
示す.STEP7の変換結果操作モデルを,変換テンプレート図 4.8の“操作モデル→イベン
トフロー図”で置換え(3,4行および22,23行等),モデル要素間で情報をマッピングする
(31–37行).変換テンプレートよりも操作数が多かった場合には,必要なモデル要素を追
加する(26–30行).
5.5. 操作モデル→イベントフロー図変換(STEP8) 69
7(2*>@7UDQVIRUPDWLRQIURP2SHUDWLRQPRGHOVWR(YHQWIORZGLDJUDPVZLWK2*>@
7(2*>@
IRUHDFK2*ಬ᧶2*>@坓䳜ሸቯሧቮ⮘㙪俟㨫㝜⇫ኤወ ^ VZLWFK㾦傃ኮኜዙዐ ^
ዘዘዘዘዘ
FDVHዙኖ⒕屲᧶
ዙኖ⒕屲ኁዐእኲዊዙ⦂⮘㙪ኣዐኴዉዙእ^
RJRSQ᧶⮘㙪俟㨫㝜⇫ኤወቑ㝜⇫㟿
RSRSQ᧶㝜⇫ኤወ⮘㙪ኣዐኴዉዙእቑ㝜⇫㟿 LIRJRSQ !RSRSQ ^
ኁኲኁዐቋሺ᧨ቿኌኜዙ᧨ኒኳኚኲእኃኅቿ㱚㒟㳮厌᧨
ኅዐኣኀኣኀትRJRSQ RSRSQቃሴ抌┯ሼቮ᧷
DOWቑ䦇℡⇫䞷ኇዐኦትRJRSQ RSRSQቃሴ抌┯ሼቮ᧷
ₙቑ嫛ቊ抌┯ሺቂ䦇℡⇫䞷ኇዐኦቋኁኲኁዐቇሧ᧨
⸩⨚䤓ቍኁዐእኲዊዙኔዙዐኖት抌岧ሼቮ᧷
`
ኚኲእኃኅቿኅዙንኄዐእትቀቑ㖾咭ሧት⸩券ሼቮኒኳኚኲእ ኃኅቿ㱚㒟㳮厌ኻአዐኍሼቮ᧷
俟㨫ኁዐእት䞮㒟ሼቮኚኲእኃኅቿኅዙንኄዐእትቀቑ㖾咭ሧት
⸩券ሼቮኾኁዐኚኲእኃኅቿ㱚㒟㳮厌ኻአዐኍሼቮ᧷
䜿⬒ኅዙንኄዐእትቀቑቡቡቿኌኜዙ函㙪ራቮ᧷
ኅዐኣኀኣኀትቀቑቡቡ⺍㉫ሸሾቮ᧷
⚓ዙኖቑ栚ⱚኁዐእትቿኌኜዙሮቬኾኁዐኚኲእኃኅቿ㱚㒟㳮厌 ቛቑ汕╤ኾአኘዙንኻአዐኍሼቮ᧷
㝜⇫ትኾኁዐኚኲእኃኅቿ㱚㒟㳮厌ሮቬ⚓ኒኳኚኲእኃኅቿ㱚㒟㳮厌 ቛቑ汕╤ኾአኘዙንኻአዐኍሼቮ᧷
俑ℕኁዐእትኾኁዐኚኲእኃኅቿ㱚㒟㳮厌ሮቬቿኌኜዙቛቑ
⸮嫛俟㨫ኾአኘዙንኻአዐኍሼቮ᧷
`
()'>QH@⮘㙪俟㨫ኁዐእኲዊዙ⦂揜⒦ ዙኖ⒕屲ኁዐእኲዊዙ⦂⮘㙪 ኣዐኴዉዙእ᧷
QH QH᧷
EUHDN᧷
ዘዘዘዘዘ
`
`
UHWXUQ()'>@᧷
䠖
᧯స䝰䝕䝹 䜲䝧䞁䝖䝣䝻䞊ᅗ
図 5.10: 操作モデル→イベントフロー図変換アルゴリズムの抜粋(ケース分解)
䠄 䠅
Where
RP2SHUDWLRQ0RGHO
,I5HILQHPHQW3DWWHUQ 'HFRPSRVLWLRQ%\&DVHV^(9HQW7R%RXQGDU\2EMHFWHYER(9HQW7R%RXQGDU\2EMHFWHYER (9HQW7R%RXQGDU\2EMHFWHYERDQGERDQGERERVSHFLDOL]HGLQWRERDQGER`
HOVHLI5HILQHPHQW3DWWHUQ 'LYLGH$QG&RQTXHU^(9HQW7R%RXQGDU\2EMHFWHYER(9HQW7R%RXQGDU\2EMHFWHYER (9HQW7R%RXQGDU\2EMHFWHYER(9HQW7R%RXQGDU\2EMHFWHYERERFRPSRVHGRIERDQGER`
HOVH^(9HQW7R%RXQGDU\2EMHFWHYER(9HQW7R%RXQGDU\2EMHFWHYER(9HQW7R%RXQGDU\2EMHFWHYER`
5HILQHPHQW3DWWHUQ7R2FFXUHQFHUSRF
(QYLURQPHQW$JHQW7R$FWRUHDD(QYLURQPHQW$JHQW7R$FWRUHDD (QYLURQPHQW$JHQW7R$FWRUHDD (QYLURQPHQW$JHQW7R$FWRUHDD
(QWLW\7R(QWLW\2EMHFWHHR(QWLW\7R(QWLW\2EMHFWHHR(QWLW\7R(QWLW\2EMHFWHHR(QWLW\7R(QWLW\2EMHFWHHR 2SHUDWLRQ7R&RQWUROOHURF2SHUDWLRQ7R&RQWUROOHURF2SHUDWLRQ7R&RQWUROOHURF
UG5REXVWQHVV'LDJUDP
F&RQWUROOHU ER%RXQGDU\2EMHFW
HR(QWLW\2EMHFW D$FWRU
RF2FFXUHQFH
F&RQWUROOHU ER%RXQGDU\2EMHFW
F&RQWUROOHU ER%RXQGDU\2EMHFW D$FWRU
D$FWRU
HR(QWLW\2EMHFW HR(QWLW\2EMHFW HR(QWLW\2EMHFW ER%RXQGDU\2EMHFW
D$FWRU
ER%RXQGDU\2EMHFW R2SHUDWLRQ
US5HILQHPHQW3DWWHUQ R2SHUDWLRQ
VD6RIWZDUH$JHQW
H(QWLW\
VD6RIWZDUH$JHQW
H(QWLW\
H(QWLW\
HY(9HQW HY(9HQW HY(9HQW
HD(QYLURQPHQW$JHQW HD(QYLURQPHQW$JHQW R2SHUDWLRQ H(QWLW\
VD6RIWZDUH$JHQW VD6RIWZDUH$JHQW HY(9HQW
HD(QYLURQPHQW$JHQW HD(QYLURQPHQW$JHQW
図 5.11: 操作モデル→ロバストネス図変換規則(QVT)