ハンバーガショップの商品をモデリング(改訂)

いろいろ見直してみると、商品についてはカタログ(M1レベル)で、販売商品がインスタンス(M0レベル)で考えるのが良さそうなので再度改訂したいと思います。また、お買い上げの販売商品をもう少しベタベタなモデルにしてみました。

商品クラス

最初のモデルにほぼ戻ってしまいました。安直にモデリングしたほうが変にいじったモデルよりも良いことになってしまいました。orz

お買い上げ

こちらは、やり過ぎかもしれませんが分析台帳で単品とセット商品にバリエーションを分離してみました。

あと、単品販売商品_付属品とセット販売商品_構成商品の制約をSpecificationで明示してベタベタなモデルとしてみました。

だいぶ複雑になったので、試しに、このベタベタのモデルを販売商品のバリエーションを一般化し、販売商品-販売商品明細で簡略化して表現してみます。


ふりかえり

メタレベルを意識することは重要。制約は1つ上のメタモデルで表現されることが多い。
お買い上げモデルは単純化したモデルの方が良さそうに見えてしまうのは僕だけかな?
モデル作成の作業に一般化を含めるべきなのか。
やるとしても一般化は発見的な作業になってしまうから難しいよな。