オブジェクトの広場はオージス総研グループのエンジニアによる技術発表サイトです

モデリング

モデリングカフェ 第10回:ひな壇をモデリングする

モデリングカフェ「Square」~UMLでモデリングを愉しもう~
オージス総研 組み込みソリューション部
田中恒  赤坂英彦
2007年3月8日

毎回、身近にあるモノや出来事など、簡単な【お題】を出題し、皆様にモデリングをして頂きます。次回の記事で、皆様の解答モデルの中から3つほど取り上げて、コメントを付けていくかたちで進めていきます。

読者プレゼント~第10回記念!豪華プレゼント~

第10回を記念して、人気の高い下記 UML モデリングツールのライセンスを抽選で 10名の方 にプレゼントいたします。

Enterprise Architect デスクトップ版 : 3名
Elapiz スタンダードエディション Pro 版 : 4名
JUDE Professional 版 : 3名
EAロゴ
Elapizロゴ
JUDEロゴ
 

上記モデリングツールのライセンスをご希望の方は、メールの文面に 「XXX ほしい」 (例:Elapiz Pro ほしい) と一言添えて、
ご希望のモデリングツールの評価版でモデリングしたモデルファイルをご送付ください。

プレゼントは各種モデリングツールの評価版をご利用の方限定です。

UMLモデリングツールをお持ちでない方は、この機会に是非ご応募ください。

応募方法は、解答モデルの送付についてをご覧ください。

特別スポンサー

スポンサーの皆様からプレゼントのご提供をいただきました。心から感謝いたします。

目次
  1. 前回の問題(サンタクロース)
  2. 読者解答モデル
  3. 解答例
  4. 今月号の問題 (出題)
  5. 解答モデルの送付について
  6. 参考文献
  7. Elapiz (いらぴす)当選者発表

1.前回の問題(サンタクロース)

前回の問題をもう一度確認しておきましょう。

【お題09】サンタクロース

毎年クリスマス、たかし君はサンタさんからプレゼントをもらっています。今年は、サッカーボールをお願いしました。早くクリスマスが来ないかな、と楽しみにしています。

毎年クリスマスの夜、たかし君のお父さんは、こっそりたかし君の枕元にプレゼントを置きます。今年はサッカーボールをプレゼントします。

お題(サンタクロース)

上記の文章を読んで、サンタクロースをモデリングしてください。 不足する情報は適宜補っていただいて結構です。補った情報は、コンセプトに記述してください。

解答はクラス図で表現して下さい。クラスには必要な属性を、関連には多重度を明記するのがポイントです (解答時間の目安は15分~30分です)。

ポイント解説

対象(ドメイン)について

クリスマスイブに子供たちはサンタさんからプレゼントをもらいます。 純粋な子供たちは、自分が寝ている間にサンタさんがプレゼントを届けてくれていると思っています。 でも、サンタクロースは子供たちの夢物語での登場人物であり、実在するわけではありません(本当に実在していたら、お礼を言いたいですね^^)。実際には、親たちが子供たちに気づかれないようにプレゼントを用意して、就寝中の子供たちの枕元にそっと置いておくというものです。   

モデリングのポイントについて

幾つかの視点でモデリングできると思いますが、

  • 現実には、サンタクロースは存在しない
  • 子供はサンタさんからプレゼントをもらえると思っている
  • 実は、親が子供へプレゼントを渡している

といったことを表現できるとサンタクロースについて語れていることになるのではないでしょうか?

2. 読者解答モデル

今回も読者の皆様からたくさんの解答モデルを頂きました。ありがとうございます。 これまでと同じように、3つの解答モデルをピックアップして、当カフェのマスターとヒトクセある!?常連たちと一緒に見ていきましょう。 コーヒーなどを飲みながら、皆様も一緒にわいわいやる感じで考えてみてください。 また、残念ながら紹介することができなかった解答モデルはこちらに掲載しますので、 オブジェクトの広場 メーリングリストなどで意見交換していただければ幸いです。

読者解答1:Murata 様

  • コンセプト
    • サンタさんは存在しない。
      • ただし、この事実は子供に公開されない(おとなの世界に隠蔽)
    • 子供からサンタさんへのお願いは、「サンタさんの知り合い(両親)」を通じて行われる。
    • プレゼントはあらかじめお父さんにより調達され、子供の手の届かないところに隠される。
      • ※調達方法はお父さんのがんばり次第である。
    • お父さんから直接子供にプレゼントを渡すことはない。
    • 当日の夜、子供が寝た後にプレゼントを枕元に移すだけ。
    • ※あくまで「このモデル上のサンタさん」の話です。
      • 本物のサンタさんはちゃんとフィンランドに住んでいます。安心してください。>よいこのみんな
  • モデル
    • クラス図
      図 1 Murata 様の解答モデル(クラス図)
      図 1 Murata 様の解答モデル(クラス図)
    • オブジェクト図
      図 2 Murata 様の解答モデル(オブジェクト図)
      図 2 Murata 様の解答モデル(シーケンス図)
  • 感想
    • 難しかったところ

      プレゼントをお父さんからは直接渡さない(枕元を介す) このあたり、人、物、場所の関係が今ひとつ。名前も適当…。もう少しちゃんと処理した方が美しいと思うが、モデルの本質からずれて複雑化しそうで止めた。

      説明するなら、オブジェクト図よりシーケンス図で動きがある方がイメージが伝わりやすいと思うので、Appendix はそちらにした。お絵かき屋さんというより設計/実装屋さんだなと思う。気づくとスコープを制限する方向に考えている自分がいる…。

      プレゼントの勤務先(自宅外)保管とか、高さ以外の隠し場所の工夫とか、準正常で後々追加要望が出そうな部分は、もう少し取り込んでおいてもよかったかもしれない。

    • 自己評価

      モデルとしてはあまり美しくないので70点くらい

  • コメント
    マスター   まず、コンセプトはどうでしょう?
     
    久本くん   サンタは存在しない。その事実は大人の世界に隠蔽されて子供は知らないというのが面白いですね。
     
    吉井さん   モデルに「おとな」というパッケージがありますが、本当はお父さんからのプレゼントだということは、サンタさんの存在を信じている子供には内緒だということですね(情報隠蔽)。
     
    唐沢さん   大人の事情をパッケージで表現しているわけですね(笑)。なるほど、面白いですね。
     
    久本くん   その他の部分は、シーケンス図を見ると良く分かりますね。
     
    吉井さん   「サンタさんの知り合い」、「親権者」、「子供」の関係が良いですね。子供がサンタさんの知り合いである親にプレゼントをお願いする関係がよく表現されています。
     
    唐沢さん   「サンタさんの知り合い」というインタフェースは「サンタクロース」としたらもっと良かったかもしれませんね。子供からは「サンタ」にお願いしているが、実体は「親権者」というというところがミソでしょう。
     
    吉井さん   モデルの下の方はどうでしょうか?
     
    唐沢さん   コンセプトに書かれた内容(プレゼントは予め用意しておき、子供の手の届かないところに保管しておくなど)を表現するために出てきた概念のようです。
     
    久本くん   「家の中」というのはちょっと分かりにくい感じがしますね。「収納スペース」とか場所を表現したほうがいいのかもしれません。
     
    吉井さん   でも枕元は収納スペースじゃないよね?
     
    久本くん   うーん、だったら「収納スペース」と「枕元」の両方出した方がいいのかな?
     
    唐沢さん   まあ、いずれにしても少し詳細すぎるような気がするよ。

読者解答2:岩沢正樹 様

  • コンセプト
    • 「サンタクロース」は、「父親」の役割の一側面
      • (夢が無いかも知れませんが・・・)      
    • 子供は、プレゼントを複数受け取るかも知れない。
    • プレゼントの履歴は、「プレゼント」が知っている。
  • モデル
    • クラス図
       図 1 岩沢正樹 様の解答モデル(クラス図)
      図 3 岩沢正樹 様の解答モデル(クラス図)
    • オブジェクト図
      図 2 岩沢正樹 様の解答モデル(オブジェクト図)
      図 4 岩沢正樹 様の解答モデル(オブジェクト図)
  • 感想
    • 難しかったところ

      「サンタクロース」を、クラスとするか、ロールとするか。(現実主義になるかどうかの瀬戸際ですが・・・。)

    • 自己評価

      「夢」に乏しいモデルになったので、残念ながら3点です。(来年は、「夢」を持ったモデルにしたいです。)

  • コメント
    マスター   コンセプトはどうでしょうか?
     
    久本くん   サンタクロースを父親の役割のひとつとしています。
     
    吉井さん   モデル上では父親のロールとしてサンタクロースが表現されています。
     
    久本くん   なるほど、関連のロールとして表現すればいいんですね!
     
    吉井さん   モデルもシンプルで良いですね。
     
    唐沢さん   ちょっとだけ気になることがある・・・
     
    久本くん   え、なんですか?
     
    唐沢さん   プレゼントに西暦という情報があるのはどういうことなのかな?
     
    吉井さん   「子供」-「プレゼント」-「父親」の関係は、モノ-コト-モノの関係になるんだと思うけど、「プレゼント」という名前はモノではなくコトを連想してしまう気がするんだよね・・・。
     
    マスター   なにかイベント(行事)を表す名前にしたらもっと良かったのかもしれないね。
     
    吉井さん   実はマスターの解答例に一番近いのじゃが・・・(苦笑。
     
    唐沢さん   「難しかったところ」でサンタをクラスにするかどうか悩んだとありますが・・・。
     
    久本くん   実在しないからクラスにしなかったということでしょうね。
     
    吉井さん   他には、抽象クラスやインタフェースも実体が存在しないことを表現できそうですね。
     
    久本くん   結局のところ、現実主義だったということでしょうか(笑)。

読者解答3:Ken-M 様

  • コンセプト
    • 品物」は「具体的なひとつのもの」ではなくて、抽象的なもの(1種類につきインスタンスは1つ)として捉える。
    • 子供には「ほしいプレゼント」がある。
      • 中には「特に欲しいものはない」という子供もいるかもしれないし、「あれもこれも」という子供もいるかもしれない。
    • 子供は「プレゼント」をもらう。
      • やはり「何ももらえなかった」子供から「色々沢山もらえた」子供がありえる。
    • サンタクロースはプレゼントを配る。
    • 中には「ほしがる子供はいるが実際には1つもプレゼントされなかった」品物があるかもしれない。
    • 同じく中には「誰もほしがっていないのにプレゼントされた」品物があるかもしれない。
    • あくまで世の中には「サンタクロース」は一人。
  • モデル
    • クラス図
      図 5 Ken-M 様の解答モデル(クラス図)
      図 5 Ken-M 様の解答モデル(クラス図)
    • オブジェクト図
      図 6 Ken-M 様の解答モデル(オブジェクト図)
      図 6 Ken-M 様の解答モデル(オブジェクト図)
  • 感想
    • 難しかったところ

      そもそも、何を表現するか。

    • 自己評価

      意外とシンプルにまとまったような気がします。80点。

  • コメント
    マスター   さて、こちらのモデルはどうですか?
     
    久本くん   親は登場しません。その代わり、プレゼントを配る人としてサンタクロースが登場しています。
     
    唐沢さん   きっと、サンタクロースが実在するかどうかには興味がなかったんでしょうね。
     
    吉井さん   でも、もっと面白いところに注目してますよね。子供が欲しいプレゼントと実際にもらったプレゼントを区別しています。
     
    久本くん   なるほど!確かに欲しいものをもらえる子供もいれば、欲しいものと違うものをもらう子供もいますね、きっと。
     
    唐沢さん   そう考えると、プレゼントもらえない子供もいるんだね・・・。
     
    吉井さん   オブジェクト図を見てみるとはっきり分かりますね。
     
    吉井さん   たかし君は欲しいものをもらってますね。でも、としお君とさとる君は欲しいものと違うものをもらっています。
     
    久本くん   さとる君はプレゼントを2つもらってますよ。羨ましい・・・。
     
    唐沢さん   でもひとつは「計算ドリル」ですよ。プレゼントとしては嬉しいのかなぁ?。
     
    吉井さん   親のエゴが出ていて面白いですね。
     
    マスター   このモデルでは、欲しい物ともらった物を関連として区別して表現しています。きっと、計画と実績も同じように表現できそうですね。
     

3. 解答例

解答例としまして、当カフェのマスターのモデルを紹介致します。 コンセプト次第でモデルは変わりうるものですから、 正解としてではなく、1つの考え方としてご覧ください。

コンセプトの導出

状況を絵で表現してみます。

図 7 たかし君から見た場合
図 7 たかし君から見た場合
 
図 8 実際
図 8 実際
 
  

たかし君から見ると、サンタさんがプレゼントをくれます。
 実際には、お父さんがプレゼントをくれます。
 たかし君から見たときに、お父さんの見え方が違う、というところがポイントになりそうです。   

  

解答例

  • コンセプト
    • たかし君とお父さんには親子関係がある
      • 保護者としてお父さんとお母さん(大人)、被保護者として子供がいる
      • お父さんとお母さんは大人とする
    • クリスマスにおいては、大人と子供に親子関係以外の関係が生じる
      • 大人がサンタさんの役をする
      • 子供は良い子でなければプレゼントをもらえないとする
    • その他        
      • モデルは家庭をスコープにしている(ある家庭のクリスマスについて表現している)
      • クリスマスは毎年ある
      • ある年のプレゼントは、子供1人につき多くても1個とする
  • モデル
    • オブジェクト図
      図 9 解答例のオブジェクト図
      図 9 解答例のオブジェクト図
       
    • クラス図
      図 10 解答例のクラス図
      図 10 解答例のクラス図

4. 今月号の問題 (出題)

今月の問題です。モデリングの進め方については、第 1 回のモデリングの進め方を参照してください。

【お題10】 ひな壇

ひな壇モデリングしてください。

不足する情報は適宜補っていただいて結構です。補った情報は、コンセプトに記述してください。

お題(ひな壇)
図 お題(ひな壇)
素材提供:素材屋angelo

解答はクラス図で表現して下さい。クラスには必要な属性を、関連には多重度を明記するのがポイントです (解答時間の目安は15分~30分です)。

5. 解答モデルの送付について

締め切り

締め切りは 2007年 4月 19 日 (木) です。

送付先

以下の項目を記入し、解答のモデルファイルあるいは画像ファイルを電子メールに添付の上、下記アドレスまでご送付ください。

  • 解答モデル送付先: LetsModeling@ogis-ri.co.jp
  • メールのタイトル:モデリングカフェ読者解答モデル 【第10回】
  1. お名前
  2. ペンネーム(お名前を記事に掲載しても構わない方は不要です)
  3. 解答モデルについて
    • モデルのコンセプト
    • 難しかったところ
    • モデルについて自己評価
  4. モデリングツールの希望の有無 (各種モデリングツールの評価版で解答された方のみ記載)

 解答で頂いた個人情報につきましては、本連載記事の編集にのみ使用いたします。
 お客様の個人情報は、当社の個人情報保護方針に基づき、適切にお取り 扱いいたします。また、ご本人の承諾なしに、第三者機関へ提供することはありません。

著作権に関して

送付いただいた解答モデルの著作権は解答者に帰属しますが、モデルの複製、配布、インターネット配信を行うことをオブジェクトの広場編集部ができるものとします。 特に取り決めのない事項については、オブジェクトの広場編集部の判断により決定します。解答者がその決定を了解できない場合は、解答を撤回できるものとします。

モデルの作成について

モデルは手書きでも、ExcelやWordの作図機能を使って描いても OK です。以下に挙げるようなUMLモデリングツールを使って作成するのもOKです。

一般的なUMLモデリングツールであれば問題ありませんが、こちらで確認できないツールをお使いの場合には、画像ファイルをご送付願う場合がありますのでご了承下さいませ。

6.参考文献

本連載では、文献[1]をベースに、より気軽にモデリングを愉しんでいただけるテイストにしております。モデリングに関するしっかりした解説が欲しい場合には、以下の書籍をご覧になると良いと思います。

  1. 「思考系UMLモデリング即効エクササイズ モデ力を鍛える13の自主トレメニュー」、渡辺博之他、翔泳社
  2. 「UMLによるオブジェクト指向モデリングセルフレビューノート」、荒井玲子著、ディーアート
  3. 「UMLモデリングの本質」、児玉公信著、日経BP社

7. Elapiz(いらぴす)当選者発表

前回の Elapiz Basic 2005.2 の正規ライセンスの当選者を発表いたします。おめでとうございます!!

  • TAKEJI 様
  • 岩沢 正樹 様
  • 松田 政博 様

なお、当選者の方には、後日改めてメールにてご連絡いたします。お楽しみに!!

改訂履歴

  • サイトテンプレート変更に伴う変更(2021年7月)