注目キーワード
  1. DFD
  2. DB設計
  3. w2ui

DFD(データフローダイヤグラム)の書き方(5)デシジョン・テーブル

  • 2018年2月13日
  • 2020年5月27日
  • DFD
  • 1901回
  • 2件
DFD

ミニ仕様書を書いていく中で、複数の条件が組み合わさって決定される処理などを、文字だけで表すのが難しい場面があるでしょう。

このような場合には、デシジョン・テーブルを用いることで、複雑な条件を明確にしたり、条件に漏れや重複、それに矛盾が無いことを確認することができます。


デシジョン・テーブル

デシジョン・テーブルは、いわゆるマトリックス表と考えても良いでしょう。縦に条件を、横に選択肢を入れて作成します。

以下の例はオンラインショップで買い物をした時の送料計算の例

<<条件>><<選択肢>>
メンバーシップ会員非会員
購入金額1万円未満1万円以上1万5千円未満1万5千円以上
<<結果>>送料一律500円送料無料送料一律800円送料無料




デシジョン・テーブルの作成

たとえば、美術館の入場料を決める場合の条件をユーザーからヒアリングしたところ、「通常の大人料金は1000円で、中学生以下は400円で、高校・大学生は500円、幼児は無料、65歳以上は600円です」という事でした。

これをそのままに単純な表にすると、以下のような表になると思います。

 <<条件>><<選択肢>>
条件幼児中学生以下高校・大学生大人65歳以上
<<結果>>無料400円500円1000円600円

しかし、これでは条件が年齢と就学状況がごちゃ混ぜになってしまっていますね。これではデシジョンテーブルには成っていません。

以下に、この条件を例として、デシジョン・テーブルの作成手順を説明します。


(1)条件の抽出

いきなり表を作るのではなく、まずは、条件を分解して抽出します。この例の場合では、年齢と就学状況に分けられると考えて、以下のよう分解してみました。

年齢: 幼児 65歳未満 65歳以上

就学状況: 中学生以下 高校・大学生


(2)マトリックスの作成

上記で抽出した条件を整理してマトリックス化すると、以下のような表になるでしょう。表中の – は条件に当てはまらないケースです。

<<条件>><<選択肢>>
年齢幼児65歳未満65歳以上
就学状況中学生以下高校・大学生高校・大学生
<<結果>>無料1000円400円500円600円500円

お気づきだと思いますが、例えば17歳でも就学していなければ大人料金ですし、65歳以上で大学に通っている人は高校・大学生料金となります。

最初の表ではっきりとしていなかった条件が明確になりました。そして、このように条件を明確にした上で、改めてユーザーと仕様の確認をすることが重要です。

デシジョン・テーブルは、ユーザーと対話するにも強力なツールだと思います。条件の整理、仕様の明確化、そのためにデシジョン・テーブルはどんどん使うべきだと思います。    


書籍の紹介

この記事で紹介しているデシジョンテーブルやDFDについては、考案者のトム・デマルコが書いた、「構造化分析とシステム仕様」という書籍の中で詳細な解説がされています。

しっかりと学習したい方は、この書籍をお読みになる事をお勧めします。



以上、「DFD(データフローダイヤグラム)の書き方(5)デシジョン・テーブル」でした。