ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

「バックスラッシュモデル」って、別に「モデル駆動型開発」に”しなければ”、あり得る話の気が。。

2005-05-01 11:56:43 | 開発ネタ
 「バックスラッシュモデル」っていうのが、あるようだ(ここをみた

 要するに、単体~システムテストまで「(動的検証フェイズ)をざっくり切り落とした考え方」だそうな。

 これ、モデル駆動型開発(MDD)にするから、目新しい話で、そうじゃなかったら、あり得る話ですよねえ??




まず、比較のため
「バックスラッシュモデル」でない方法で作る「システム」


・ある顧客マスタ(既存)をもとに、ダイレクトメールを送るシステムを作ります
 →送るDMは1プログラムにつき、1種類のDM、顧客の抽出条件も1種類
  (DMの種類が変わったり、顧客の抽出条件が変わる場合、別プログラムを作る)

これをStruts、MySQLでつくるとしたら、多分、テストをすると思うんですよ。




「バックスラッシュモデル」で作るかもしれない「システム」


まったく同じシステム、つまり

・ある顧客マスタをもとに、ダイレクトメールを送るシステムを作ります
 →送るDMは1プログラムにつき、1種類のDM、顧客の抽出条件も1種類
  (DMの種類が変わったり、顧客の抽出条件が変わる場合、別プログラムを作る)

これをAccessで作るとしてください。

そうすると、
1.Accessで、既存の顧客マスタをインポートする
2.DMの出力の可変内容、選択条件を設定したクエリを作る
  可変内容は、
   ・ある位置に、項目をそのまま出力する場合は、項目名のみ
   ・項目名に、文章が付け加わる場合は、連結する文字もつけて設定
    例えば
     「○○様のご来店を心から、お待ちしております。」
    のような、項目名に、文章が付け加わる場合、クエリの項目に
     あいさつ文1:[顧客マスタ].[氏名] & "様のご来店を心から、お待ちしております。"
    と設定する
3.クエリを基にしたレポートをデザインビューで作成
4.出力

 たぶん、1から4の間、テストする人もいるかもしれないけど、Accessに慣れてる人は、テストしない気がする。
 できたものを、出力する前にちょっとプレビューするかもしれないけど、それで、出力させてしまい、その結果をざっと確認するだけのような気がする。
 これ、Accessでやったから、テストということも考えられるけど、ExcelとWordの差込印刷でもできるわけで、その場合、テストする可能性は、もっと少ないと思う。

 おお、テストしてないぞ!




 このAccessで作った例を、「そもそも、システムじゃない!」と議論するかもしれないが、Javaで作ったほうは、システムっぽいですよね。なら、Accessだって、使うツールがちがうだけだから、やっぱ、システムじゃない??

 そーやって考えると、たぶん、「システムを作るとき、テストしないですむ条件」っていうのがあって、それは、こんなかんじ??

・そのツール(Javaの場合は、Java開発環境、Accessの場合、Accessそのもの)を使って作れるものが、予測できる
  Java開発環境があっても、どんなものができるか、予測できません。
  Accessの場合、どんなものができるか予測できます。

・作業手順が明確で、その手順は、枯れている。
  上記のDMをAccessで作成する場合は、上のとおり

・ツールも枯れていて、想定の範囲内に動く

・仕様と、できるものの対応が明確である
 今回の場合、DMと検索条件が決まっているので、できるものが明確。

・間違える要素があまりなく、間違えたとしても、そんなに大きな被害がない
 Accessの場合、使い方がわかれば、あまり間違える要素は、打ち間違い以外ない。
 打ち間違いは、ある程度、Accessが、はじいてくれる
 上記のDMの場合、間違えたとしても、たいした被害がない。

これ以外にもあるかもしれないけど、こんな感じのツール&適用範囲であれば、テストは省略可能だと思います。




っていうことは、モデル駆動型開発(MDD)でテストが省略できるようになるとしたら

・そのツールで、何ができるか、はっきりわかる
・MDDにおける、要件定義からプログラミングまでの手法が明確であり、枯れている
・そのツールが枯れている
・要求仕様と、欲しいシステムの対応が明確である
・間違える要素があまりなく、間違えたとしても、そんなに大きな被害がない

なら、できるようになるかもしれない。
うーん、まだ、ずーっと先のような気がする。

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする