<< 実践 ユースケースモデリング 代替コース 不一致、重複 | main | 木のぬくもりと あそびの中から 生まれた形たち展 >>

実践 ユースケースモデリング 代替コース 入力バリデーション

ICONIXプロセスでは、ユースケースモデリングで徹底的に「代替コース」(雨の日のシナリオ)を発見することを強調しています。
「代替コース」の多くは、入力データの妥当性検証(バリデーション : validation ) です。
入力バリデーションの対象を見つけ、丁寧に実装すれば、安心して使える良いソフトウェアが作れる。

入力データの妥当性検証は、おもなパータンを一度マスターしてしまえば、代替コースの発見、実装、テストがとても楽ができる。
いろいろなユースケースに登場するので、開発チームで、基本パターンを整理し、モデリングや実装の約束ごとをきめておけば、無駄な作業が減らせる。システムの振る舞いが一貫したものになり、利用者にわかりやすいソフトウェアになる。

Webアプリケーションの入力バリデーション

フレームワークが基本パターンを用意しているので、最低限、そのパターンはマスターしましょう。

Struts の Validator
Ruby on Rails の validates_*

が参考になります。
(実装技術として使わなくても、バリデーションの基本パターンの理解に役に立ちます)

データベース制約

入力データの妥当性検証は、ドメインモデルのビジネスロジック(ビジネスルール)を画面で表現したものです。

このビジネスロジックは、データベースでもカラム定義や「制約」として実装します。

カラム定義はデータ型とサイズを定義する。いちおうのドメイン(問題領域)の知識。

より豊かなドメインの知識は、データベース制約を使って実装できる。
データベース制約を理解すると、ドメインの知識の発見に役に立ちます。ユースケースモデリングの「代替コース」の発見のネタになります。

データベース制約の種類は、
・一意制約
・Not Null 制約(必須)
・主キー制約
・外部キー(参照)制約
・検査(Chaeck)制約 フォーマット検査や範囲検査
ですね。

PostgreSQL 制約
Oracle 制約

が参考になります。

XML スキーマの型チェック

XMLは、ドメインモデルを テキストで実装する技術ですね。
文書定義が DTD から XML スキーマ に発展して、データの妥当性検証ルールの記述能力が格段に向上しました。

XMLの妥当性検証は「型の定義」と「型の制限(Restriction)」という考え方で統一しています。
XMLのデータ妥当性検証は、画面からの入力データの妥当性検証と目的は同じですから、とても参考になります。

XML Schema 型チェックと制限 ( Restriction )


Webアプリケーションのフレームワークのバリデーションのパターン、データベース制約、XMLスキーマの型の制限、この三つをマスターすれば、ユースケースモデリングの「代替コース」の発見がとても楽になるし、定義内容が洗練されます。

コメント
コメントする









この記事のトラックバックURL
トラックバック
calendar
   1234
567891011
12131415161718
19202122232425
2627282930  
<< November 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