DOA設計手法との出会い

システムの品質を向上させるため、DOAを勉強しているのだけれども...

従来の方法は、
1.プログラムを依頼され、顧客の要望を伺う。
2.VBACCESS、.NETなどプラットフォーム、ライブラリを用意する。

3.とりあえずテーブルを作ってサンプルデータを用意する。
4.パネル(フォーム)を作る。
([前へ]、[次へ]、[新規]、[変更]、[削除]、[実行]、[取消]、[閉じる]の
 ボタンを用意)
5.テキストボックスを並べ、データベースを読み出し表示する。
6.表示されているテーブルの主キーを元に[削除]ボタンの機能を作成する。
7.レコードの編集機能を[変更]ボタンに紐付ける。
8.レコードの新規追加を[新規]ボタンに紐付ける。

9.レコードの主キーが揺らぐ、属性が追加される。

3〜9を対症療法で繰り返す。

10.運用を始めてから、または、運用後に組織変更等があり対応を求められる。
 (はたちを過ぎると、3ヶ月もすると作ったときの記憶は薄れてくるので、
 修正に苦労する。)
11.運用を始めているころには、多くのテーブルが存在し、
  その編集パネルも合わせて修正せざるを得ない。

上記手順を改めデータ中心に
多くのリソースエンティティ、イベントエンティティの複合キーと
代理キーを意識して、それを受けるパネル、コードを考えながら、
設計しようとしても、デッドロック状態になってしまう。


単純な話、代理キーに逃げれば、目先の実装は進むが、
「代理キーを組み合わせた複合キー」まで必要になったらアウト。
当然組織変更や、期間単価の変更に対応せざるを得ないのだから、
ここから実装に進んでも従来と変わらない。


現実に実装までたどり着くのはなかなかだ。誠に難解な「知恵の輪」を
手にしてしまった。

 HATさん、渡辺さん、「複合キーは必須だということ」は、
ガッテン!、ガッテン!、ガッテン!