decision table / 決定表 / 判断表 / デシジョンテーブル
複数の判定条件の組み合わせと、それに対応する判定結果をまとめた表のこと。プログラムのロジック記述や仕様整理、ソフトウェアテスト(注1)におけるテスト設計、BRMS(注2)などでのビジネスルール作成などに利用される。
例えば「小学生以下は子供料金」「水曜日は女性半額」「学生証の提示があれば学割を適用」といったいくつかの条件を持つ料金体系にような、判定条件が複数ある問題で最終的な判定結果を導くには、個々の条件のルールや関係性を網羅的に見ていく必要がある。このような条件と結果の複合的関係を簡潔に表現する視覚化ツールがディシジョンテーブルである。
日本工業規格(『JIS X 0125 ? 決定表』)で規格が定められているが、実際にはさまざまな流儀のものが使われている。なお、JIS X 0125では「問題の記述において起こり得るすべての条件と、それに対して実行すべき動作とを組み合わせた表」という定義になっている。
ディシジョンテーブルは、ある問題に関する複数の条件についてその成立/不成立の組み合わせを表形式に展開し、それぞれの場合に対応する結果(行動)を示したものである。いわゆる真理値表(※)を変形したツールで、行方向に条件と行動、列方向に規則(場合分けされた条件の組み合わせ)を記入することが多い。論理表現なので自然文の文章よりもロジックを明確に表すことができる。
※ 真理値表は論理式を表形式にしたものだが、ディシジョンテーブルは論理式を考えずに単なる整理表として作る場合もある
結婚相手判定 | |||||||||
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | ||
条件 | 高身長ですか? | N | N | N | N | Y | Y | Y | Y |
高学歴ですか? | N | N | Y | Y | N | N | Y | Y | |
高収入ですか? | N | Y | N | Y | N | Y | N | Y | |
行動 | 結婚する | X | |||||||
相手にしない | X | X | X | X | X | X | X |
ディシジョンテーブルは、「条件記述部」「条件指定部」「行動記述部」「行動指定部」の4つの主要部分からなる。条件記述部の上に表見出し部(表の内容や用途を書く)を置く場合もある。主要部分の区切りは、伝統的記法に従うならば2重線を使用する。
表見出し部
table header |
規則見出し部
rules |
条件記述部
condition stub |
条件指定部
condition entries |
行動記述部
action stub |
行動指定部
action entries |
条件記述部には、問題で判定条件となっているすべての命題を(質問形式で)記入する。条件指定部には条件記述部の質問に対する答えを「Y」ないし「N」で書く。「Y」はYes=条件が成立している(真)、「N」はNo=条件が不成立である(偽)を表す。空欄や「-」、「I」も条件が発生しない、真偽に関係がない、どちらでもよいの意味でY/Nと併用される。また、「Y」の代わりに「T」や「1」、「N」の代わりに「F」や「0」を使うこともある。
行動記述部には問題の結果となるすべての行動を簡潔な文章で記入する。行動指定部にはその行動を実行するか否かを「X」や空欄で示す。「X」はexecute=実行で、同じ列(条件指定部に表れた規則)の結果として行動記述部の内容を行うことを表す。空欄ないし「-」は実行しないことを意味する。
ディシジョンテーブルがコンピュータ関連で利用されるようになったのは1950年代の半ば、米国GE(ゼネラルエレクトリック)の製造サービス部に始まるとされる。これはプログラムのロジックをディシジョンテーブルで作成し、パンチカード化してコンピュータに入力するというものだった。すぐに他社でも実験や応用が相次ぎ、1960年代にはディシジョンテーブルをCOBOLやFORTRANのコードに出力するディシジョンテーブルプリプロセッサの試みが多くのメインフレーマで実施されている。また、1970年代にはソフトウェアテスト分野でテストケース作成ツールの1つとして紹介された。BRMSなどのルールシステムには、ルールの入力にディシジョンテーブルを利用するものがある。
ディシジョンテーブルは条件(入力、原因)と行動(出力、結果)の関係を漏れなく検討するためのものである。条件指定部では可能なすべての条件の組み合わせ(規則、場合)を出現させることが基本となる。ただし、条件が多くなると表が巨大になり全体が分かりにくくなるので、表の分割あるいは圧縮などのテクニックが用いられる。
▼『ソフトウェアテスト技法ドリル――テスト設計の考え方と実際』 秋山浩一=著/日科技連出版社=著/2010年10月
▼『はじめて学ぶソフトウェアのテスト技法』 リー・コープランド=著/宗雅彦=訳/日経BP社/2005年11月(『A Practitioner's Guide to Software Test Design』の邦訳)
▼『ソフトウェアテスト技法――自動化、品質保証、そしてバグの未然防止のために』 ボーリス・バイザー=著/小野間彰、山浦恒央=訳/日経BP出版センター/1994年2月(『Software Testing Techniques, 2nd Edition』の邦訳)
▼『デシジョン・テーブル入門』 ハーマン・マグダニエル=著/岸田孝一=訳/松平誠=解説/日本経営出版会/1970年5月(『An Introduction to Decision Logic Tables』の邦訳)
▼『デシジョンテーブルによるプログラムフローチャート』 清田進=著/日刊工業新聞社/1971年10月
▼『テーブル化による思考整理学』 マリオン・L・ヒューズ、リチャード・M・シャンク、エリナー・S▼スタイン=著/石尾登=監訳/日本能率協会/1972年1月(『Decision Tables』の邦訳)
Copyright © ITmedia, Inc. All Rights Reserved.