モデリングコンテスト

オブジェクト倶楽部モデリングコンテストを実施している。

http://www.objectclub.jp/community/modeling/modeling_contest2/

実は、モデリング道場のメーリングリストを立ち上げた時に、事務局の方から”師範代にならないか”と声をかけていただいたが、丁重に辞退した。何しろイラストの似顔絵を掲載されるのは恥ずかしいし、参加されている方達の顔が見えないメーリングリストで先生として振る舞うのはちょっと気が引けるので。とはいえ今回のコンテストでは、問題文のレビューや、作品の審査などをボランティアでお手伝いしている。
今回は54件もの応募があったのにはとにかく驚いた。応募の多さだけでなく、モデルの内容についても色々発見というか驚きがあった。

まず感じたのは、割と凝ったモデルが多いことである。特に、継承表現を使う人が多いのには少々驚いた。しかもインスタンスを列挙する代わりに継承表現を使っている例が少なくない。これはたとえば「品目」のサブタイプとして「背広」「ワイシャツ」「ブラウス」などを定義するような表現である。本来「背広」「ワイシャツ」「ブラウス」は、インスタンスを列挙しているだけなので、クラスにする必要はない。もちろんクラスにした方が直感的には理解しやすくなる面もあるが、クラスが状況によって集合を指したり、要素を指したりするのはイマイチだと思う。また実際にシステム化する際に書くRDBスキーマと整合性を取れなるのも有り難くない。1対1関連を書いている人が多いのもちょっとびっくりだった。

ERモデリングだと正規化のルールがあり、主キーを明示しないといけないので、自由度が少ない。椿先生のTH記法や渡辺幸三さん記法だと、モデルの配置規則も決めているので、さらにブレが少ない。
オブジェクトモデリングは、継承記法を使って全体集合−部分集合を明示できることや、主キーの決定を後回しにできることがメリットだと思っていたが、自由度の高さはデメリットでもあることを感じた。
そういえば、ひがさん(id:higayasuo)も「ダイコン時代の設計手法 - モデリング」で、

データモデリングは、

の2つのアプローチが考えられます。
どちらを選択するのかは好みの問題なのですが、
DOAの方をお勧めします。

と書いてたっけ..

http://d.hatena.ne.jp/higayasuo/20040609#1086738237