Document

シナリオの変換・統合と
ルールを用いたシナリオの検証
要求工学WG 第8回WS
(2001年9月6日)
立命館大学理工学部情報学科
大西 淳
2001年9月6日
第8回要求工学WG 宇和島WS
開発現場での問題点


さまざまなビューポイントごとにシナリオを
用意するのが難しい
シナリオが妥当かどうか見極めるのが難し
い
シナリオに関連した研究
1.
2.
3.
4.
5.
格文法に基づくシナリオ記述言語
ある視点で書かれたシナリオを異なる視
点で書かれたシナリオに変換
複数の異なる視点のシナリオの統合
ルールによるシナリオの検証
シナリオの解釈実行によるビジュアルな
要求のアニメーション表示
研究の目的




要求獲得(シナリオを用いた)
要求記述(シナリオの記述と変換・統合)
要求検証(シナリオの妥当性確認)
by 利用者、要求記述者(各ビューポイント)
要求仕様化支援(シナリオからのビジュアル
な要求記述、アクティビティ図、ユースケー
ス記述の作成)
現状の研究内容






テキストによるイベント列としてのシナリオ表現
イベント間の関係(順接、選択、繰り返し、並行、
同期)
動作主体によるビューポイントの設定
異なるビューポイントのシナリオ間の相互変換手
法
異なるビューポイントのシナリオ群の統合手法
シナリオの満たすべきイベント間のルール化と検
証
国際会議プログラム委員長業務








スケジュール決定、CFP作成、掲載依頼、配布
プログラム委員を選び、依頼。名簿作成
投稿論文に番号付け、登録、受理通知
論文リストをプログラム委員に送付
担当希望を受け取り、担当委員を決める
担当委員に査読依頼、論文、査読用紙を送付
査読結果を回収、集計
…
国際会議のプログラム委員業務









プログラム委員長より選ばれ、依頼がくる
承諾の旨と名前、所属等の情報を返す(抜け)
論文リストを受理する
担当希望論文を伝える
プログラム委員長によって担当委員が決まる
担当論文、査読用紙を受理する
査読する(抜け)
査読結果を通知する
プログラム委員会で採否を決める(抜け)
イベント列によるシナリオ


委員長は論文リストを送付(委員長の視点)
委員は論文リストを受理(委員の視点)
イベントの動作主=イベントのビューポイント
ビューポイントを変えたシナリオを生成するこ
とにより、抜けたイベントを発見可能
ビューポイントの変換規則
データフローのイベントの場合
「プログラム委員長から委員に○○を送る」
⇔
「プログラム委員は委員長から○○を受ける
(送られる)」

「決める」、「割り当てる」、「選ぶ」といった動作の場合
も同様に変換可能
異なるビューポイントから書かれた
イベントの内部表現への変換
格文法に基づいたイベント記述言語
 ある視点から書かれたイベントを視点に依
存しない内部表現に変換
「委員長は論文リストを委員に送付する」
「委員は委員長から論文リストを受け取る」
↓
DFLOW
From:委員長, To:委員, Object: 論文リスト

内部表現からイベントへの逆変換
視点に依存しない内部表現から特定の視
点から書かれたイベントに変換する
DFLOW
From:委員長, To:委員, Object: 論文リスト
↓
「委員は論文リストを委員長から受け取る」

シナリオの変換と統合
視点Aの
シナリオ
視点に依存しない
視点Bの
シナリオ
2001年9月6日
内部表現
第8回要求工学WG 宇和島WS
視点A、B
あるいはCの
シナリオ
シナリオの合成(委員長の視点)










スケジュール決定、CFP作成、掲載依頼、配布
プログラム委員を選び、依頼。
委員から承諾、所属情報等を受理し、名簿作成
投稿論文に番号付け、登録、受理通知
論文リストをプログラム委員に送付
担当希望を受け取り、担当委員を決める
担当委員に査読依頼、論文、査読用紙を送付
担当委員は査読する
査読結果を回収、集計
プログラム委員会で採否を決定…
イベント(間)のルール定義




問い合わせにはその回答があるべき
問い合わせのイベント * 回答のイベント
回答がなければ、督促するか再度問い合わせを
する
~回答 [督促|再度問い合わせ]
あるイベントは最初に(最後に)起こる
^あるイベント あるイベント$
あるイベントは3回以上生起しない
0{あるイベント}2
ルールの特長
問題領域によってルールは異なる
例:インタラクティブシステムでは利用者による
コマンド投入イベントの後にシステムからの
コマンド受付・拒否の応答イベントがある
 ルールに現れるイベントは抽象化される
「スタートボタンを押す」(シナリオ中のイベント)
「利用者によるコマンド投入」(ルール中のイベン
ト)

ルールによるシナリオの検証



ルールをあるシナリオが満たすかどうか調
べることによって妥当性確認を支援
ルールによってシナリオのバリエーション
が十分かどうかを確認
ルールからのシナリオ導出も可能
依頼*[返事|~返事 [督促|再依頼]]
合成されたシナリオのルールによる検証



CFP掲載依頼
→学会からの回答がなく再依頼も督促
もない(イベントの抜けを検出)
プログラム委員依頼
→承諾の回答あり
査読依頼
→査読結果の回答あり
評価




プログラム委員長のシナリオからプログラム委員
のシナリオを自動生成
自動生成されたシナリオをプログラム委員に妥
当性確認してもらうことで委員長のシナリオの抜
けを検出
プログラム委員長と委員のそれぞれのシナリオ
を合成し、そこから委員長の視点のシナリオを生
成
ルールによってシナリオの妥当性検証が可能
ルール定義と検証の問題点(1)

シナリオ中のイベントとルール記述中のイ
ベント(例えば回答)との対応を自動的に
とるのは難しい
→ イベントに型をつける
ルール定義と検証の問題点(2)

利用者がルールを定義するのは面倒
→ ドメインごとにルールを予め用意する
ルール定義と検証の問題点(3)

イベントの時間に関する検証ができない
(4週間以内に査読は終了する)
→ イベントの実行時間を定義できるように
する
ルール定義と検証の問題点(4)

イベントの順序(「査読後に採否通知があ
る」)やイベントの存在(「論文は査読され
る」)は検証できるが、「全ての論文は査
読される」、「全ての著者には採否通知が
届く」、「各論文には3人の査読者がつく」
といった量的な表現を含むルールの検証
が難しい
おわりに




ルール定義と検証の問題点の解決
シナリオ言語の設計
ルール記述言語の設計
言語処理系の開発と評価