パターン編(1) 注文書を表現するヘッダー明細パターン
業務上非常によく出てくるパターンとして「ヘッダー明細」を取り上げます。基本編(1) まずはクラス図の「顧客ー注文」の先にあるものです。
[スクリプト]
モデリングしてますか?
このビデオシリーズ、パターン編の第1回目は、ヘッダー明細パターンというのを、やってみたいと思います。
このパターンは非常に、よく使われるので、色々な場面で出てきます。
「注文」のパターンを考える
今回は、前回基礎編でご説明した「クラス図」で出てきた、「顧客」やそれに対する「注文」がありましたね。
その「注文」を、詳しくみていきたいと思います。
前回の通り、「顧客」には「名前」と「メールアドレス」があって「注文」には、「日付」があり「金額」がありますね。
このような描き方になっていますが、一般的に、「注文」というのは複数の商品からなっていますよね。
「注文書」を思い浮かべてください。
よくビジネスで使われているので、皆さん、当然見た事があると思いますが、注文書には、お客さまの名前、件名があり、金額があります。メールアドレスや電話番号もあると思います。そして上部には、注文の日付がありますね。それから注文の番号があります。
次に、自分の会社の名前があって、下部には合計金額の内訳があります。内訳として、品名、単価、数量、金額があります。
つまり、この例でいくと、「ロゴマークデザイン」というデザイン料として単価が1万円、数量が1ケ、金額が1万円となり、「タオル」の単価が1000円が10ケで2万円となっています。それで、金額の欄を足したものが、合計の金額となっているわけです。
注文書をモデリングしてみる
非常によく出てくるフォーマットと思いますので、これをモデリングしてみたいと思います。
この「注文」の中に「金額」がありますが、「金額」の下をみていくと、1行1行クラスとして表現しています。
その1行の事を、「注文行」という事もありますし、「注文明細」と呼ぶ事もありますね。そこには、「単価」があって、「数量」があります。「注文」は、「注文明細」を保持していますよね。
もし「注文」がなくなれば、「注文明細」の意味が無くなるわけですから、正確に描くと、「注文」の多重度は1になります。
「注文」には、複数の「注文明細」があり、そして「注文明細」に「単価」と「数量」があり、これを掛け算したものが、1つの行の
商品に対する金額になります。
これを足し合わせたものが、注文全体の金額になるというパターンになっています。この強い保持している関係を、UMLでは「コンポジット」という黒い四角で表します。
このように全体があって、部分が行に分かれていて、それぞれの行の合計が、全体になっている、というのをヘッダー明細パターンと
呼んで、注文も、注文明細も、例えば見積もりや、売上に対して、このようなパターンが成り立ちます。
もう1度、先ほどの注文書で復習すると、1行1行書かれているものが、注文明細になるんですね。
「商品」という概念があって、「商品」との関係を描くことによってもう少し注文書全体を、細かくみていきたいと思います。
まとめ
このようなUMLを使ったパターンは、多く本が出ていますので、また次回紹介したいと思います。
例えば、細川さんが書かれた、「UMLによる一気通貫DBシステム設計 (DB Magazine SELECTION)」という本でも、パターンについて紹介されています。
今回のようなパターンを知っておくと、実際のモデリングに、非常に役立つと思います。
では、次回、全体像を見ていきましょう。それでは。
1 Comment »