ソフトウェアエンジニアリングシンポジウム2011のワークショップ4 要求工学の「シナリオを用いた要求定義」で聞いてきた話を報告してみる。
■概要
1.シナリオ概説
2.シナリオ言語SCEL
3.シナリオを用いた要求支援
-シナリオの視点変換
-シナリオの統合
■1.シナリオ概説
「要求工学」ソフトウエアテクノロジーシリーズ9 「3.シナリオ」
JISX0028.02.15(人工知能関係)
ここでは
ユーザーが目標を達成するために行う行動と
そこから得られるイベントを
時系列に沿って記述したものであり
ある状況に限定したシステムの具体的な利用例
良いところ
システムの使用法や手順をユーザーの始点に沿ってあらわすのに向いている
対話型のシステムの要求定義・設計に有用
シナリオの構成要素
・アクター
・アクターとその環境に関する背景情報
・アクターの目標(副目標)
・アクションとイベントの系列
シナリオの表現手段
・物語風の文章
・箇条書き
・絵
・ビデオのような動画像
・ストーリーボード
・フローチャート、シーケンス図、状態遷移図
・制限言語、形式言語
シナリオの分類観点
・表現方法
・形式化の度合い
・内容(中小度、文脈、議論、範囲)
・目的
・シナリオの使用法(どの開発時点で使用するか)
ユースケース
・ヤコブソンが提案したシナリオの一形態、システムの分析と仕様化のために用いられる
・外部との相互作用を用いてシステムを記述するというブラックボックスの視点を仮定
・自然言語によってアクタとシステムの相互作用を順番に記述
ユースケース記述
■2.シナリオ言語SCEL
制限言語を用いたシナリオ記述
・制限言語
言語の表現範囲を制限して、機会での処理、解釈を容易にする目的で制限を課した言語
利点
・端的に、単一の形式で記述できる。単語や文章の意味をぶれを抑えることができる
・目的や動作の粒度をそろえることができる
→書くべきでない振りまいを書きにくくすることができる
・機械的に処理・解釈できる
シナリオ言語SCEL(せる)
・要求フレームモデルに基づく
格文法に基づいた
・種々の制御構造を記述できる
・アクタの視点ごとの分析ができる
・視点が異なるシナリオの統合やシナリオの視点変換、差分生成、ルールを用いた検証ができる
シナリオ記述言語SCELの要素
・タイトル
・ビューポイント(注目するアクターの視点)
→主語、目的語
・イベント文列(イベント文と時間的順序関係)
・イベント文
・時間的順序関係(順接、if-then-else,平行動機)
・事前条件
・事後条件
格文法と格構造
・イベント文を「述語(同士)+名詞句」として記述
・文中の名詞句(型)との関係を構造(格構造)として定義
・顧客はシステムに著者名を入力する
入力する(表層)/データフロー(深層)
この概念は「どこから」「どこに」「なにが」流れるのかという情報が必要
顧客:どこから:源泉格「は」、「が」
システム:どこに:目標「に」
著者名:なにが:対象「を」
・動詞辞書と要求フレーム
動詞を中心とした格構造をドメインごとに決めておく
それぞれに格構造を定義する
源泉格
目標格
目的格
道具格
動作主格
・シナリオ言語の特徴
視点に依存しない内部表現に変換が可能
統合・視点変換・ルールによる検証が可能
・名詞辞書
それぞれの格に入れられる名詞句の型が、格構造によって規定されている
ドメインごとに利用されている名詞と型をあらかじめ対応付けておく
・SCELの有用性
日本語の文法を制限する、語彙を絞り込む
特定のアクタからの視点の振る舞いをシナリオの視点として明示できる
■3.シナリオを用いた要求支援
・シナリオ視点変換
→イベントの抜けや順序間違いを発見できる
・異なる視点のシナリオ群の統合
・シナリオの検証
・例外シナリオ作成支援
正常シナリオと代替、例外シナリオ
1つの正常シナリオに対して、複数の代替、例外シナリオ
例:正常シナリオ カード払い
代替シナリオ 現金払い
例外シナリオ カードが読めない
代替、例外シナリオはわかりにくい
→例外シナリオ作成支援
・差分分析
■演習のやり方
・正常シナリオを書く
・必要ない修飾語を落とす
・格文法を決める
・文法と語彙から逸脱しないように将来システムのシナリオを記述
・制限を緩和
・問題点と改善点
→表裏一体、否定表現=問題点、肯定表現=改善点
午前中の発表については、別のエントリで
■概要
1.シナリオ概説
2.シナリオ言語SCEL
3.シナリオを用いた要求支援
-シナリオの視点変換
-シナリオの統合
■1.シナリオ概説
「要求工学」ソフトウエアテクノロジーシリーズ9 「3.シナリオ」
JISX0028.02.15(人工知能関係)
ここでは
ユーザーが目標を達成するために行う行動と
そこから得られるイベントを
時系列に沿って記述したものであり
ある状況に限定したシステムの具体的な利用例
良いところ
システムの使用法や手順をユーザーの始点に沿ってあらわすのに向いている
対話型のシステムの要求定義・設計に有用
シナリオの構成要素
・アクター
・アクターとその環境に関する背景情報
・アクターの目標(副目標)
・アクションとイベントの系列
シナリオの表現手段
・物語風の文章
・箇条書き
・絵
・ビデオのような動画像
・ストーリーボード
・フローチャート、シーケンス図、状態遷移図
・制限言語、形式言語
シナリオの分類観点
・表現方法
・形式化の度合い
・内容(中小度、文脈、議論、範囲)
・目的
・シナリオの使用法(どの開発時点で使用するか)
ユースケース
・ヤコブソンが提案したシナリオの一形態、システムの分析と仕様化のために用いられる
・外部との相互作用を用いてシステムを記述するというブラックボックスの視点を仮定
・自然言語によってアクタとシステムの相互作用を順番に記述
ユースケース記述
■2.シナリオ言語SCEL
制限言語を用いたシナリオ記述
・制限言語
言語の表現範囲を制限して、機会での処理、解釈を容易にする目的で制限を課した言語
利点
・端的に、単一の形式で記述できる。単語や文章の意味をぶれを抑えることができる
・目的や動作の粒度をそろえることができる
→書くべきでない振りまいを書きにくくすることができる
・機械的に処理・解釈できる
シナリオ言語SCEL(せる)
・要求フレームモデルに基づく
格文法に基づいた
・種々の制御構造を記述できる
・アクタの視点ごとの分析ができる
・視点が異なるシナリオの統合やシナリオの視点変換、差分生成、ルールを用いた検証ができる
シナリオ記述言語SCELの要素
・タイトル
・ビューポイント(注目するアクターの視点)
→主語、目的語
・イベント文列(イベント文と時間的順序関係)
・イベント文
・時間的順序関係(順接、if-then-else,平行動機)
・事前条件
・事後条件
格文法と格構造
・イベント文を「述語(同士)+名詞句」として記述
・文中の名詞句(型)との関係を構造(格構造)として定義
・顧客はシステムに著者名を入力する
入力する(表層)/データフロー(深層)
この概念は「どこから」「どこに」「なにが」流れるのかという情報が必要
顧客:どこから:源泉格「は」、「が」
システム:どこに:目標「に」
著者名:なにが:対象「を」
・動詞辞書と要求フレーム
動詞を中心とした格構造をドメインごとに決めておく
それぞれに格構造を定義する
源泉格
目標格
目的格
道具格
動作主格
・シナリオ言語の特徴
視点に依存しない内部表現に変換が可能
統合・視点変換・ルールによる検証が可能
・名詞辞書
それぞれの格に入れられる名詞句の型が、格構造によって規定されている
ドメインごとに利用されている名詞と型をあらかじめ対応付けておく
・SCELの有用性
日本語の文法を制限する、語彙を絞り込む
特定のアクタからの視点の振る舞いをシナリオの視点として明示できる
■3.シナリオを用いた要求支援
・シナリオ視点変換
→イベントの抜けや順序間違いを発見できる
・異なる視点のシナリオ群の統合
・シナリオの検証
・例外シナリオ作成支援
正常シナリオと代替、例外シナリオ
1つの正常シナリオに対して、複数の代替、例外シナリオ
例:正常シナリオ カード払い
代替シナリオ 現金払い
例外シナリオ カードが読めない
代替、例外シナリオはわかりにくい
→例外シナリオ作成支援
・差分分析
■演習のやり方
・正常シナリオを書く
・必要ない修飾語を落とす
・格文法を決める
・文法と語彙から逸脱しないように将来システムのシナリオを記述
・制限を緩和
・問題点と改善点
→表裏一体、否定表現=問題点、肯定表現=改善点
午前中の発表については、別のエントリで