<< 実践 ユースケースモデリング 代替コース システムエラー | main | 実践 ユースケースモデリング 代替コース 入力検証 範囲・長さ >>

実践 ユースケースモデリング 代替コース 入力データの妥当性検証

ユースケースの代替コースの多くは、入力データの妥当性検証(バリデーション) に関係したものです。

入力データの妥当性検証項目:

・必須チェック
・型チェック(形式チェック)
・長さチェック
・範囲チェック

が主なものですね。

型チェック(形式チェック)

数値項目

例えば、数値項目であれば、正しく数値として処理できる形式で入力されているかのチェックです。
3桁区切りのカンマ入力、正負の記号、全角数字、K(1000)やM(1000000)の使用、通貨記号や数量単位 ( グラム、センチメートル ... ) など、単純に半角の数字のみではなく、一般的なな表記は妥当としたいものです。
コピー&ペーストで入力されることもあるので、前後の空白なども利用者に優しく扱いたいですね。

日付け項目

日付けになると、さらにいろいろな入力形式があります。
YYYY-MM-DD 以外は全てだめ、半角数字のみ、というような厳しい妥当性検査はもちろんやるべきではない。 数字が一つだけだったら、当年・当月のその日または、翌月のその日とか、翌日とか翌週を簡単に指定できたりとかいろいろなやさしさが考えられる。

実装時には、カレンダでクリックを好む人がいますが、個人的には、文字入力のほうがすきです。
ドロップダウンで、1から31を選ぶというのも、良いインタフェースとは思えない。

文字列の場合は、文字種の制限とかがありそうですね。ヨミガナはもちろんカナだけだろうし。

入力データはすべて文字列ですが、数値項目や日付け項目は内部的には数値型や日付型のオブジェクトにする必要がある。データバインディングですね。

ここらへんの基本的な入力データの妥当性検証とデータバインディングの仕組みは、汎用ツールを用意しておきましょう。
実装面で汎用ツールがあれば、ユースケースの代替コースの記述内容も単純化(標準化)できますね。
代替コースで、「型チェック」の詳細を考えずに「型が妥当でなかった場合:」というお約束コースを書くだけで済ませる。

よりアプリケーションよりの型

郵便番号、電話番号、クレジットカード番号、電子メールアドレス、ホームページURL、...など、基本データ型以外に、さまざまな型とその形式妥当性のルールがあります。

こういうものも、ユースケース記述の代替コースとして詳細に仕様を書くのではなく、ドメインオブジェクト側の仕様として記述すべきだと思います。

ユースケースでは、単に「妥当な型でなかった場合:」で済ませる。

ユースケースを書いているときは、
・画面とユーザのアクション
・システムがやるべきこと
・起きる可能性がある例外の場面(代替コース)
を「項目」として「全て」を見つけることを最も重視する。

「全て」を見つけることに集中するには、型チェックの詳細は(今は)やらないほうが良い。

「妥当な型でなかった:」という代替コース自体は、きちんと記述しましょう。実際に起きることだし、その時、ユーザとシステムでどのような相互作用を想定するかを関係者で共通理解にするために。

コメント
コメントする









この記事のトラックバックURL
トラックバック
calendar
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
<< July 2017 >>
システム設計日記を検索
プロフィール
リンク
システム開発日記(実装編)
有限会社 システム設計
twitter @masuda220
selected entries
recent comment
  • 番号より名前。 ニーモニックコードより名前。 【パターン】
    師子乃 (03/10)
  • Smart UI が優れている?
    masuda220 (03/10)
  • Smart UI が優れている?
    kagehiens (03/09)
  • オブジェクト指向プログラミングの教え方?
    masuda220 (12/05)
  • オブジェクト指向プログラミングの教え方?
    ZACKY (12/04)
  • 「オブジェクトの設計力」 スキルアップ講座やります
    masuda220 (08/14)
  • 「オブジェクトの設計力」 スキルアップ講座やります
    kompiro (08/14)
  • 「オブジェクトの設計力」 スキルアップ講座やります
    masuda220 (06/13)
  • 「オブジェクトの設計力」 スキルアップ講座やります
    JHashimoto (06/13)
  • 「オブジェクトの設計力」 スキルアップ講座やります
    masuda220 (02/28)
recent trackback
categories
archives
others
mobile
qrcode
powered
無料ブログ作成サービス JUGEM