イベント文③ - 立命館大学

シナリオのアニメーション表示による
妥当性確認支援
立命館大学大学院 理工学研究科
ソフトウェア工学研究室
首藤寛樹 大西 淳
1
発表内容
1.研究の背景・目的
2.シナリオ記述言語SLAF
3.ビジュアルな要求とシナリオ情報への変換
4.アニメーション表示による妥当性確認支援
5.まとめと今後の課題
2
研究の背景
 要求分析においてシナリオは有効
ー ステイクホルダ間で知識を共有
 シナリオの妥当性確認時の問題点
【1】 利用者や顧客にとって,自分たちが直接関わ
るイベントと関わらないイベントが混在するため,
理解するのが難しい
【2】 利用者や顧客にとって,文章で記述された
シナリオから,システムの動的な振る舞いを
正確に把握するのは難しい
 シナリオ記述言語(SLAF)
ー 本研究室で開発した制限言語
ー SLAFに用意された視点の変換手法により,
【1】の問題点を解決可能
3
本研究の目的
問題点【2】
文章で記述されたシナリオから,
システムの動的な振る舞いを正確に把握するのは難しい
日本語で記述されたシナリオの振る舞いをア
ニメーション表示することによって,利用者や
顧客による妥当性確認を支援する
・・・・・
・・・・
・・・
・・・・・
・・・・・
・・・・
・・・・・・・
・・・
日本語シナリオ
アニメーション表示
4
シナリオ記述言語SLAF
◎イベント文
- 要求フレームモデルに基づいて定義された
格構造に従って記述
ー アクションと格構造を表す深層表現へ変換することで,
情報の抜けを機械的に発見することができる
(例)
動作対象格
投稿者は 論文を 郵便で 送る
源泉格
アクション
動作
対象格
源泉格
目標格
道具格
(任意)
DFLOW
論文
投稿者
ー
郵便
DFLOW
目標格
道具格
(任意)
5
SLAFで記述されたシナリオの構成
 タイトル
 視点(システムを捉える際の立場)
 イベント文列
ー イベント文
ー 時間的順序(順接,if-then-else,並行同期,
繰り返し)
 事前条件・事後条件(今回は省略)
6
SLAFで書かれたシナリオの例
タイトル
視点
[電話での書籍注文]
[利用者,会社]
{
利用者は 会社に 電話で 本の名前を 伝える
会社は 在庫情報を 確認する
if(在庫がある) then
利用者は 会社から 電話で 購入可能である旨を 聞く
利用者は 会社に 電話で 配送先を 伝える
利用者は 会社から 電話で 振込先を 聞く
利用者は 銀行に お金を 振り込む
会社は 銀行から 口座情報を 得る
銀行は 指定した金額と 振込み金額を 照合する
if(振込み金額が正しい) then
会社は 倉庫に Eメールで 出荷指示を 送る
利用者は 倉庫から トラックで 本を 届けられる
else
利用者は 会社から 電話で 振込みが間違っている旨を 伝えられる
fi
else
利用者は 会社から 電話で 在庫がない旨を 聞く
fi
}
イベント文列
7
ビジュアルな要求とシナリオ情報への変換
02
01
03
・
・
利用者は会社から電話で・・
利用者は会社に電話で・・
利用者は会社から電話で・・
・
・
・
日本語シナリオ
ビジュアルな要求
02
01
03
・
・
ビジュアルな要求に
対応したシナリオ情報
(後述)
8
ビジュアルな要求
ビジュアルな要求記述言語VRDL
ー アイコン画像と矢印を用いてフロー要求を定義
ー 実体間のフロー:矢印
矢印の根元にフロー要求の送り手
矢印の先にフロー要求の受け手
矢印に重ねてデータとデバイス(任意)を配置
ー VRDLは要求フレームモデルに基づいている
アイコン辞書
アクション
動作
対象格
源泉格
目標格
道具格
(任意)
DFLOW
本
倉庫
利用者
トラック
深層表現への変換が可能
9
ビジュアルな要求の記述例
銀行
1)空間による分割
実体であるアイコンを
階層化する.
利用者
会社
倉庫
VRDLでの記述例
「電話を用いての書籍購入」
2)時間による分割
複雑な業務を,ある
時間的な区切り
(シーン)で分割
複雑な要求の
記述も可能
10
ビジュアルな要求の生成
イベント文のみ抽出
イベント文①
イベント文②
if then
イベント文③
else
イベント文④
・
・
登場アクタ数から,
アイコン座標情報を生成
(正多角形の頂点に配置)
イベント文①
イベント文②
イベント文③
イベント文④
・
・
アイコン
座標情報
11
ビジュアルな要求の生成
イベント文①
イベント文②
イベント文③
日本語
シナリオ
01
付加履歴
会社は倉庫に出荷指示を電話で伝える
イベント文
01
アクション
動作対象格
DFLOW 出荷指示
源泉格
目標格
道具格
会社
倉庫
電話
ビジュアルな要求
深層表現
アイコン辞書
アイコン
座標情報
12
ビジュアルな要求の生成
イベント文①
イベント文②
イベント文③
日本語
シナリオ
01
02
付加履歴
利用者は倉庫からトラックで本を届けられる
イベント文
02
アクション
動作対象格
源泉格
DFLOW
本
倉庫
目標格
01
道具格
利用者 トラック
ビジュアルな要求
深層表現
アイコン辞書
アイコン
座標情報
13
ビジュアルな要求の生成
イベント文①
イベント文②
イベント文③
日本語
シナリオ
01
02
exception
付加履歴
会社は指定した金額と振込み金額を照合する
イベント文
データフロー
ではない
02
アクション
動作対象格
源泉格
目標格
01
道具格
ビジュアルな要求
深層表現
アイコン辞書
アイコン
座標情報
14
シナリオ情報の生成
日本語シナリオ
イベント1(DFLOW)
イベント2(RET)
if(在庫がある)
then
イベント2(DFLOW)
イベント3(DFLOW)
else
イベント4(DFLOW)
fi
01
exception
if(在庫がある)
then
02
03
else
04
fi
付加履歴に対し,日本語シナリオ内の
時間的順序を当てはめる
15
ビジュアルな要求とシナリオ情報を用いたアニメーション
02
01
03
ビジュアルな要求
02
01
03
・
・
ビジュアルな要求に
対応したシナリオ情報
アニメーションシステム
16
アニメーションシステム
利用者は会社に電話で配送先を伝える
日本語表示部
銀行
利用者
会社
アニメーション
表示部
倉庫
17
アニメーションシステム
利用者は会社に電話で配送先を伝える
利用者は会社から電話で振込先を聞く
銀行
利用者
会社
倉庫
直前のフロー
現在のフロー
18
アニメーションシステム
会社は指定した金額と振込み金額を照合する
銀行
利用者
会社
倉庫
イベント文がフロー要求でない場合
アニメーション表示を網掛け表示し,
イベント文の内容がデータフローに
関係していないことを強調
19
アニメーションシステム
デモンストレーション
日本語表現に関する制約事項
*アニメーションシステム上に表示される日本語イベント文は,
深層表現から生成した文章が使われるため,意味的には
変わらないが,表現方法が変化するケースがある
20
アニメーション表示による妥当性確認支援
日本語シナリオのアニメーション表示により,
フロー要求に起こりうる,以下に示す三種類の
誤りの発見を導くことができる.
a) フローの誤り
データの送り手と受け手のどちらか,あるい
は両方が誤って記述されること
b) 生起順序の誤り
シナリオが本来記述されるべきフロー要求の
生起順序を満たしていないこと
c) フロー要求の抜け
シナリオ内に本来記述されているべき
フロー要求が記述されていないこと
21
フローの誤り
[電話での書籍注文]
[利用者,会社]
{
利用者は 会社に 電話で 本の名前を 伝える
会社は 在庫情報を 確認する
if(在庫がある) then
利用者は 会社から 電話で 購入可能である旨を 聞く
利用者は 会社に 電話で 配送先を 伝える
利用者は 会社に 電話で 振込先を 伝える
利用者は 銀行に お金を 振り込む
会社は 銀行から 口座情報を 得る
銀行は 指定した金額と 振込み金額を 照合する
if(振込み金額が正しい) then
会社は 倉庫に Eメールで 出荷指示を 送る
利用者は 倉庫から トラックで 本を 届けられる
else
利用者は 会社から 電話で
振込みが間違っている旨を 伝えられる
fi
else
利用者は 会社から 電話で 在庫がない旨を 聞く
fi
}
誤りを混入した日本語シナリオ
シナリオはアクタ間の相互作用
を表している
→連続するフローが重なった場合や,
突然フローが発生した場合,フロー方向の
記述ミスが発生している可能性がある
22
フローの誤り
[電話での書籍注文]
[利用者,会社]
{
利用者は 会社に 電話で 本の名前を 伝える
会社は 在庫情報を 確認する
if(在庫がある) then
利用者は 会社から 電話で 購入可能である旨を 聞く
利用者は 会社に 電話で 配送先を 伝える
利用者は 会社に 電話で 振込先を 伝える
利用者は 銀行に お金を 振り込む
会社は 銀行から 口座情報を 得る
利用者は会社から電話で振込先を聞く
銀行は 指定した金額と 振込み金額を 照合する
if(振込み金額が正しい) then
会社は 倉庫に Eメールで 出荷指示を 送る
利用者は 倉庫から トラックで 本を 届けられる
else
利用者は 会社から 電話で
振込みが間違っている旨を 伝えられる
fi
else
利用者は 会社から 電話で 在庫がない旨を 聞く
fi
}
誤りを混入した日本語シナリオ
シナリオはアクタ間の相互作用
を表している
→連続するフローが重なった場合や,
突然フローが発生した場合,フロー方向の
記述ミスが発生している可能性がある
23
まとめ
解決すべき問題点
文章で記述されたシナリオから,
文章で記述されたシナリオから,
システムの動的な振る舞いを正確に把握するのは難しい
システムの動的な振る舞いを正確に把握するのは難しい
解決案
日本語シナリオをアニメーション表示させることによって,
フロー方向やフロー間の時間的順序を可視化する.
結果
利用者や顧客にとってフロー要求に特化したシナリオの
妥当性確認が容易になった.
24
今後の課題
本手法の有効性を確認するための
評価実験を行う
現段階のアニメーションシステムで表現可能な
要求はフロー要求のみであり,フロー要求以外の
要求のアニメーション化を実現する
25
26