第 5 章 レビューとテストの用途を考慮した仕様記述フレームワークの提案 79
5.1.1 ディシジョンテーブルの構成を用いた仕様記述フレームワーク
本節では, ディシジョンテーブルに対応づけた仕様記述フレームワークについて述べ る. ディシジョンテーブルとは, 条件の組み合わせとアクションの関係を表現したもの である. 一般に, ディシジョンテーブルにおいて, 処理の内容をアクションと呼び, 条件 の組み合わせとアクションの関係をルールと呼ぶことがある. ディシジョンテーブルは, 仕様や設計やテストなどにおいて広く用いられている. ATM の仕様を表したディシジョ ンテーブルの例を表5.1に示す. これは,現金を引き出す場合の一部の仕様をディシジョ ンテーブルを用いて表したものである. ディシジョンテーブルは,大きく条件の組み合わ せとアクションから構成される. 読み方は,ディシジョンテーブルのルールの列を番号ご とに縦に読んでいく. ここで, 「 Y 」は YES を表し, 「 N 」は NO を, ダッシュ記号
「−」は, 条件が判定の対象外であることを表している. 以下に, 番号が 1 のルールを用 いてディシジョンテーブルについて説明する. 「ユーザが有効なカードを挿入」という 条件が「 N 」の場合は, 「ユーザが有効な暗証番号を入力」などの条件が「−」となっ ており,暗証番号の照合や, 残高確認は行わないことを表している. これらの条件の組み
84 第 5 章 レビューとテストの用途を考慮した仕様記述フレームワークの提案
図5.2 提案の仕様記述スタイルと図5.1の仕様記述例との対応関係
合わせの結果, 「カードの受け付けを拒否する」というアクションが選択されることを 表している.
ここで,ディシジョンテーブルを作成する上で,次の 2点に注意する必要がある.
• アクションの選択は, 条件が評価される順番に依存しないようにする必要がある. つまり,ある条件判定によって,内部状態が遷移したり,他の条件判定に使用する変 数を更新するようなことがないようにする必要がある.
• アクションの選択はディシジョンテーブルの条件によって決定し, 記載されていな い入力条件には依存しないようにする必要がある. つまり, アクションを選択す るために必要な,全ての条件がディシジョンテーブルに記載されていなければなら ない.
以上の2 つの注意点のうち, 1つ目の注意点である条件間の依存関係は,仕様を記述する 上で必要なことが多い. この点について5.1.3節において解決方法を議論する.
本研究において提案する仕様記述フレームワークの構成は, このディシジョンテーブ
九州大学大学院 システム情報科学府 情報工学専攻
5.1. ラベル付き条件による仕様記述フレームワークの提案 85 表5.1 ATM の仕様を表したディシジョンテーブルの例
ルール
条件 1 2 3 4 5
ユーザが有効なカードを挿入 N Y Y Y Y ユーザが有効な暗証番号を入力 - N N Y Y 無効な暗証番号を3回入力 - N Y N N 引き出し額が残高以内 - - - N Y アクション
カードの受け付けを拒否する Y N N N N 暗証番号の再入力を促す N Y N N N カードを差し押さえる N N Y N N 要求額の再入力を促す N N N Y N 要求額の現金を払い出す N N N N Y
ルの構成を参考にしている. その理由は次の2 つである.
• ディシジョンテーブルは, 仕様を簡潔な構造で表現することがきる. また, 一覧性 にも優れている. そのため, この構造を仕様記述フレームワークに適用することで, フレームワークもまた簡潔になると考えたためである.
• ディシジョンテーブルは, テストとの親和性が良い. 5.2節において述べる, 形式仕 様記述を利用した仕様に基づくテストのテスト設計に,ディシジョンテーブルを用 いている. 仕様記述フレームワークの構成を,テストにおいて用いるディシジョン テーブルの構成と合わせておくことで, 仕様とテスト項目の対応関係が明確になる と考えた. これにより, 仕様から体系的にテスト項目を抽出することができるよう になるため, 仕様とテスト項目のレビューも容易になると考えたためである.
次に, 仕様記述フレームワークの構成を議論する. 表5.1に示したように, ディシジョ ンテーブルは,大きく条件の組み合わせとアクションに分かれている. 本研究では, ディ シジョンテーブルとの対応関係を明確にするために, 仕様記述を,条件の組み合わせの仕 様に関して記述した箇所と,アクションの仕様を記述した箇所に分けた. 前者を仕様記述 フレームワークのAction Selection 部 と呼び, 後者を仕様記述フレームワークのAction
86 第 5 章 レビューとテストの用途を考慮した仕様記述フレームワークの提案
図5.3 Action Selection 部とAction Requirement 部の構成例
Requirement部と呼ぶこととする.
次の5.1.2節では仕様記述フレームワークの基本型について述べる. 仕様記述フレーム
ワークの基本型とは, Action Selection 部内では条件の判定のみを行い, 条件判定中に入 力データや内部状態を変更する必要がない簡単な仕様記述の構造である. その次の5.1.3
節ではAction Selection 部内で入力データや内部状態を変更しながら条件判定を行う必
要がある仕様記述フレームワークの拡張型を提案する. これは, 5.1.1節のディシジョン テーブルを作成する上での注意事項として述べた, 条件間に依存関係がある場合に用い る仕様記述フレームワークである. 例えば, 暗号化したデータを入力とする場合, 暗号化 データの復号に関する Action Selection 部の条件記述と, 入力データを復号処理した後 に,復号した入力データに関する条件を記述したAction Selection部が必要になる. この
ように, Action Selection 部内で処理が必要な仕組みを仕様記述フレームワークの拡張型
と呼ぶこととする.