設計書なき開発の進め方 #5

※タイトルをちょっと短くしました。

しばらくモデリングについて書いてみようと思う。

ECサイトでは、ビジネスは次のように進むことが一般的だ。

  1. 利用者が注文をする
  2. 利用者が入金をする(クレジット決済など)
  3. サービス提供者が出荷をする

これをモデル化すると、次のようなモデルが考えられる。

f:id:nakaken0629:20120918003421j:plain

どちらをとるか? ここでは入金と出荷が並列に注文と関係するモデルを取りたい。なぜかと言えば、今回のケースでは確かに入金をしないと出荷ができないのでもう一方のほうが理にかなっているかもしれない。しかし一般的には出荷は必ずしも入金を必要としない。入金と出荷が前後する可能性も無いとはいえない。しかし注文が無いのに一方的な出荷はあり得ない。なので後々のことを考えれば注文を中心に捉え、入金や出荷を並列に注文に属する情報として捉える。入金と出荷の関係はUML上では注文の制約としてコメントで記載する。実装では注文クラスで定義するメソッドで実現することになるだろう。