ドメイン分析をしてみる。

よくある例として、図書館を取り上げてみます。


次のようなユースケースがざっと考えられます。

  1. 図書を登録する(司書のみ)
  2. 図書の場所を調べる
  3. 図書の在庫を調べる
  4. 図書の貸し出しをする(司書のみ)
  5. 図書の返却をする(司書のみ)
  6. 図書の場所を登録する(司書のみ)


粒度は、「ユーザーマニュアルの章」になるようにしました。
ICONIXプロセスに基づいています。)

さて、ここで私がいつもやっている感じでDBレイアウトを考えてみました。

書籍DB

  • 書籍id
  • 書籍名
  • 著者
  • 出版社
  • ISBN
  • 場所id


在庫DB

  • 書籍id
  • 在庫数


場所DB

  • 場所id
  • 棚名
  • 分類


司書DB

  • id
  • pass


書籍DB:在庫DB=1:1
書籍DB:場所DB=1:1
という感じです。
さて、全てのユースケースについて分析してたらお試しにはならないので、
1.図書を登録する(司書のみ)
について分析してみます。
まずはユースケース記述を書きます。


基本処理
司書はログイン画面でidとpassを入力し、OKボタンをクリックする。


システムはidとpassが正しいことを確認する。
システムは場所を全て取得し、書籍登録画面を表示する。


司書は書籍名、著者、出版社、IDBN、在庫数、棚名、分類を入力する。
司書は場所リストから場所を選択する。登録したい場所が無い場合は、場所を登録してから選択する。
司書は在庫数を入力する。
司書は登録ボタンをクリックする。


システムは入力漏れが無いことを確認する。
システムは在庫数がゼロでないことを確認する。
システムは書籍を登録する。


代替処理
システムはidとpassが正しくなかった場合、メッセージボックスで警告する。
システムは入力漏れがあった場合、メッセージボックスで警告し、その項目をハイライトし、
在庫数がゼロの場合、メッセージボックスで警告し、在庫数テキストをハイライトする。


基本処理と代替処理しか書かないのは、ICONIXプロセスに基づいているからです。
これらについて、ロバストネス図を書くと、このようになりました。

あ、今みると

  • システムは入力漏れが無いことを確認する。
  • システムは在庫数がゼロでないことを確認する。
  • 代替手順

を書き忘れた・・・。けど、まぁこんな感じでしょう。
うん、すんなりとここまでこれました。
図の作成にはフリーのツールjudeを使いました。作った図を簡単にjpg、pngで保存できるので使いやすいですね。