<< 実践 ユースケースモデリング 代替コース 入力データの妥当性検証 | main | 実践 ユースケースモデリング 代替コース 入力検証 不一致、重複 >>

実践 ユースケースモデリング 代替コース 入力検証 範囲・長さ

ユースケース記述の代替コース。入力データの妥当性検証で、型の妥当性がOKなら、次は、文字列の長さ、値の範囲の妥当性を検証する。

文字列の長さ

文字列(String)型は、汎用的なデータ型。
型の妥当性検査で書いたように、e-Mail アドレスや電話番号は、型として妥当性検証されているので「文字列の長さチェック」の対象外です。

つまり、文字列の長さチェックは、「文字列(String)型」という汎用の入れ物を使った場合のチェック。ほんとうは、このチェックは少ないほうが良いんだと思う。つまり、「商品名称」も文字列データとしてではなく、意味のあるドメインオブジェクトとして、型チェックの一部として、文字数をチェックする。

実際には、私たちも、文字列型で処理して、長さチェックをやっちゃっているんですけどね。

文字列の長さは、論理的な正しいルールを決定できないことが多い。
例えば「商品名称」は、何文字以上、何文字以下であるべきか、決定できますか?

「妥当な長さ」というのは、常識的なところを誰かが決めてしまえばそれでよい。
字数の議論はあまり意味がなく、決まっていること、それも時間をかけずにとっとと決めてしまうことが実践的だと思います。

私たちは、入力の説明の時に「N文字以内で」と書いた時に違和感がなければ、それで良いという感じで適当(?)に決めてしまいます。 商品名称が100文字以内(最大100文字)というのは私はかなり違和感があります。 そんなに長い商品名はへんだと思う。みなさんはどうでしょう?

最初文字数も1文字以上というのは違和感がありますが、結構1文字以上(つまり空白はだめ)にしているかな?

値の範囲

値の範囲は、ビジネスルールとして厳密に確認・定義すべきことが多い。○○以上と◇◇以下という定義ですね。

数値型や日付け型という汎用のデータ型で扱う場合には単独のロジックを書くけど、「予定日」というオブジェクトは、明日から1年以内の値だけで、作成できる、というルールは、「予定日」クラスに実装して、妥当性検査としては「型チェック」で良いのではと思っています。

ユースケース記述では、代替コースは、「型が妥当でなかった場合:」というように。

まあこうやって、型のチェックにいろいろロジックをカプセル化していけば、ユースケースの代替コース記述は簡単になりますね。

もちろん、型の定義を詳細にやる必要があるわけですが、それは、ユースケースモデリングではなく、ドメインモデリングからクラス設計の流れ、つまり静的モデリングのほうがやっていく。

ユースケース記述では、入力したら「妥当性検証」があることを代替コースとして洗い出し、妥当でなかった場合のユーザとシステムの対話モデルを明確にすることに集中する。

妥当性の詳細は、ユースケースの検討ではなく、ドメインモデル(クラス設計)の課題として扱う、というのが良いのでは、と考えています。
(もうちょっと実践してみて、それが良さそうか検証したいと思います。)

コメント
コメントする









この記事のトラックバックURL
トラックバック
calendar
     12
3456789
10111213141516
17181920212223
24252627282930
<< September 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