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

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

画面定義をHTMLで行い、呼び出しをWebAPIでやる設計手順の試案 その5 CRUD図

2007-04-20 18:48:58 | Weblog

 なぜか、シリーズ化してしまった、「画面定義をHTMLで行い、呼び出しをWebAPIでやる設計手順の試案」です。

 やろうとしてるのは、
・HTMLで画面を作成し、

・AJAXでサーバ呼び出し、結果はXMLで受け取ったものを利用すると

・画面とサーバーが完全に分離する上に
 画面から、逆にさかのぼって要求仕様にまでもっていける
 →COBOLのシステムをWebに置き換えたいけど、ドキュメントもソースも無いときなんかに、利用できる

 で、いままで、以下の手順で、画面からWebAPIを割り出し、ER図まできました。

HTMLからサービスを抽出する
(1)画面をHTMLで作成する(ここがスタート)
(2)アクションなど、イベントを拾うところで、
    onイベント=ファンクション
   として、とにかく、ファンクションをfunctionでつくってしまう
(3)作った関数について
   サーバーアクセスするものは、関数の中に
     sv_access(呼び出し元、呼び出したいサーバーアプリ,"")
   みたいなかんじで、ダミー関数を書く
(4)grepで、(3)のダミー関数(sv_access)を、一覧で取得
(5)検索した内容をファイルに保存し、Excelで読み込み、
   WebAPIのサービス一覧を取得する
(6)でてきた呼び出したいサーバーアプリ=サービスを、
   1サービス1シートで、Excelシートにまとめるクライアント-サーバー分離
(7)クライアント側の画面と、サーバー側を完全に分離するためのダミーCGIを入れます。

●第二正規形の手法を使って、ER図にもっていく
(8)引数を入力データ項目、返り値を出力データ項目とし、
   それらが、一時的なものか、永続的データかを決める。

(9)永続的データをエンティティと属性部分に切り分けます。

(10)エンティティごとに、属性を書き足していきます

(11)一意にできるものがあったら、そいつを主キー、
    なければ番号をつけて主キーにして

(12)エンティティは完成

(13)この場合、繰り返しがあったら、別エンティティにして第一正規形
    エンティティ内で、ある値がきまったら、必ず他の値も決まった値になる
    という第三正規形があったら、分けたかったら分ける。

(14)外部のエンティティの主キーを参照キーとして持てば、
    他の値は持つ必要がなければいいやつは、参照キーだけをもちます。

(15)参照キーと主キーから関係は出ます。
    カーディナリティは、主キーのほうが1、参照キーのほうは、0~N,
    エンティティは(12)で完成したので、

(16)ER図がかけます。


 今回は、前回の(10)でサービスに番号を振っておいて、属性を書き足したとき、そのサービス番号も書いておくと、後述する、検算のとき便利です。と書いた、検算についてです。




■CRUD図を作成し、矛盾を確認する

で、次の作業は、エンティティの属性の生成、書き出し、読み込み、削除が、WebAPIで矛盾なく行われているかを確認するため、CRUD図を描きます(っていっても、属性までやるのはめんどっちかったら、エンティティレベルでもOKだし、これ自体省略しちゃうことも多いと思うけど。。)なので、(18)は、

(18)CRUD図を描いて、検算する

 で、CRUDとは、イラクの。。って、今日2度もしょーもないギャグを書いてもなんなので、まじめにかくと、
ここ http://www.ne.jp/asahi/ikeda/home/PCword/word/CRUD_Diagram.html
にあるような図です。

 横のテーブルのところにエンティティ(ないしはエンティティの属性)、
 縦の機能のところがWebAPIになります。

 ここで、R=読み込みときている場合、C=生成の機能が、順番的に前に呼び出されないとへんです。また、C=生成がない場合は、DBにあらかじめ、データが登録されているマスター項目の内容のはずです。

 マスターで初めからデータがはいってもないし、かつ、だれも作らないのに、読み出したり、更新したら、それはへんです。

 削除は、ないってこともあります。
 1つは、手作業で削除するケース、
 他には、絶対件数が増えない(たとえば、各テーブルの件数を持っているなど)ので削除する必要はないケースです。
 なので、削除がなくてもOKなのですが、あったほうがいいかどうかを考えます。なお、Cする前にDしたらおかしいですし、Cして、Dするだけも変です(つまり、まったく読むことがないのに削除する)Cだけもへんです(つくるだけ、だれもよまない。。いらないジャン>_<!)




 てなことで、矛盾を考えます。
 矛盾してたら、たいてい、WebAPIで引数がたりないか、サービスが足りないか、エンティティが間違っているので、なにが悪いか考えて直しましょう。




で、このシリーズの次回は、DFD(相当)を作ります。

この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 開発の初めから順番に書いて... | トップ | 「ゲームで感動は難しい。ゲ... »
最新の画像もっと見る

Weblog」カテゴリの最新記事