ステキな一日

IT技術やトレンディな話題を中心に個人的なメモを書き綴っていきます。

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

ミニ仕様書を書いていく中で、複数の条件が組み合わさって決定される処理などを、文字だけで表すのが難しい場面があるでしょう。 このような場合には、デシジョン・テーブルを用いることで、複雑な条件を明確にしたり、条件に漏れや重複、それに矛盾が無いことを確認することができます。

【広告】

デシジョン・テーブル

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

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

<<条件>> <<選択肢>>
メンバーシップ 会員 非会員
購入金額 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)デシジョン・テーブル」でした。

【広告】