前回の Elapiz Basic 2005.2 の正規ライセンスの当選者を発表いたします。おめでとうございます!!
- 優雅さ30% 様
- ロングテイル 様
なお、当選者の方には、後日改めてメールにてご連絡いたします。お楽しみに!!
オブジェクトの広場はオージス総研グループのエンジニアによる技術発表サイトです
毎回、身近にあるモノや出来事など、簡単な【お題】を出題し、皆様にモデリングをして頂きます。次回の記事で、皆様の解答モデルの中から3つほど取り上げて、コメントを付けていくかたちで進めていきます。
前回の問題をもう一度確認しておきましょう。
百貨店「角井」のフロアガイドは以下のようになっています。
□|□| | ||
11F | レストラン | 和食 中華料理 |
10F | レストラン | フレンチ イタリアン |
9F | 催事場 | 各種催し物 |
8F | スポーツ | スポーツ レジャー |
7F | 紳士服 | スーツ フォーマル |
6F | 紳士服 | ヤング ミドル |
5F | 婦人服 | キャリア フォーマル |
4F | 婦人服 | ミセス コンテンポラリー |
3F | 婦人服 | ヤング カジュアル |
2F | 婦人雑貨 | シューズ バッグ 帽子 |
1F | ファッション | ジュエリー アクセサリー 化粧品 |
B1F | 食品 | 生鮮食料品 惣菜 ベーカリー 和・洋菓子 |
各フロアには専門店が入っています。 百貨店のフロアをモデリングしてください。
不足する情報は適宜補っていただいて結構です。補った情報は、コンセプトに記述してください。 解答はクラス図で表現して下さい。クラスには必要な属性を、関連には多重度を明記するのがポイントです (解答時間の目安は15分~30分です)。
このお題では多重度で悩まれた方が多いのではないでしょうか。
まずはお題を簡略化して素直に考えてみましょう。 3F~5F の婦人服売り場にのみ注目すると次のようになっています。
一見よさそうに見えます。 ですが、例えば以下のようなケースを考えるとどうでしょうか?
もし、フロアガイドの利用者の立場から考えるのであれば、上記のようなケースを表現することは重要です。 でも、このモデルでは何も表現できていないと言えるでしょう。 図 1 でリンクを辿ってみてください。 「フロア」と「カテゴリ」のインスタンス間の関係は表現されておらず、互いを特定することはできません。
このモデルでの「フロア」「カテゴリ種別」「カテゴリ」に相当する概念の関係をどう整理するかが、このお題のポイントです。
今回も読者の皆様からたくさんの解答モデルを頂きました。ありがとうございます。 これまでと同じように、3 つの解答モデルをピックアップして、当カフェのマスターとヒトクセある!?常連たちと一緒に見ていきましょう。 コーヒーなどを飲みながら、皆様も一緒にわいわいやる感じで考えてみてください。 また、残念ながら紹介することができなかった解答モデルはこちらに掲載しますので、 オブジェクトの広場 メーリングリストなどで意見交換していただければ幸いです。
を意識してみました(後付けです)。
抽象化してみたものの、サービス提供場所の名前に困りました。 フロアとサービス提供場所の関連線は、視点によっては要らないかとも思います。
ロール名もそれなりに書けたので、80 点です。
マスター | 物理的な側面に注目されているようですね。 |
|
唐沢さん | ええ。「フロア」の属性に「広さ」がありますし、それを「区画」で区切っているとモデリングしています。 |
|
久本くん | 「トイレ」や「階段」を出されているのはうれしいですね。よくトイレを探すのにフロアの地図を見ます。 |
|
マスター | 百貨店は広いものですから、私もよく迷子になります。 |
|
吉井さん | うん。「フロア」の地図に登場しそうなモノに注目してモデリングされているね。 |
|
唐沢さん | ところで、「サービス提供場所」は場所で良いのでしょうか? 「区画」が場所の概念を含んでいるように思いますが。 |
|
久本くん | 「サービス提供場所」の属性に「広さ」があるから、面積があるものを表しているんですよね。 |
|
マスター | 言われてみれば、「サービス提供場所」には物理的な意味合いを強く感じますし、「サービス提供場所」のサブクラスが「店」というのは違和感がありますね。 |
|
吉井さん | 確かにそうだね。「区画」を占有するものだから、その「区画」にある設備なんかを表しているんだろうね。場所という名前は少し分かりにくくしているかもしれない。 |
|
◇ |
||
唐沢さん | 婦人服や紳士服などを「フロア」クラスの「コンセプト」属性としているのはどう思われますか? |
|
マスター | フロアの別名やラベルのような位置付けかと思います。 |
|
唐沢さん | フロアにどんな店を配置できるか、「コンセプト」属性と「店」クラスの「専門」属性の間にもう少し強く制約があるのではないでしょうか。 |
|
マスター | 紳士服のフロアは、紳士服に分類される「専門」しか扱わないということですね。 |
|
吉井さん | その制約を表現するなら、「コンセプト」や「専門」をクラスにして「サービス提供場所」や「店」などとの関係を示した方が良いだろうね。 |
|
久本くん | でも、モデルで表現しなければならない程、強い制約じゃないかもしれませんよ。実際の百貨店でもそんなに厳密じゃないですし。だいたいの目安程度で捉えても良いのではないですか? |
|
唐沢さん | そうですね。ラベルのような位置付けで捉えて良さそうです。 |
物理的な構造ばかりなモデルになってしまった気がします。
75 点です。
マスター | 先程と同様に、婦人服や紳士服を「フロア」クラスの「カテゴリ」属性で表現されています。 |
|
吉井さん | うん。「店」クラスの「専門」属性も同じように考えているね。 |
|
唐沢さん | 「カテゴリ」と「専門」の関係が明示されていない点も同じです。 |
|
久本くん | 「フロア」に複数の「店」がある、この関係はとってもわかりやすいですね。 |
|
唐沢さん | ええ。この「フロア」と「店」の関係は、最もシンプルで本質的な特徴でしょうね。まず、大きく変わることはないでしょう。 |
|
◇ |
||
マスター | 「店」クラスの「店員数」属性や「フロア」クラスの「営業時間」属性など、ユニークで面白いですね。 |
|
久本くん | 「営業時間」って「百貨店」の属性じゃないですか? |
|
吉井さん | 普通のフロアは夜8時まで営業で、レストランフロアだけ夜10時まで営業という場合もあるよ。 |
|
久本くん | なるほど。そうですね。 |
|
唐沢さん | モデル全体として、属性が雑多な印象を受けます。 |
|
マスター | 物事をいろいろな側面から見れているということでしょうか。 |
|
吉井さん | その点は良いね。でも、モデルで押さえておきたいのはどの側面なんだろう? |
|
マスター | 誰に何を伝えたいか、何を説明したいのか、ですね。 |
|
唐沢さん | ええ。それを考えれば必要な属性と不要な属性が出て来るはずです。 |
|
久本くん | そして、モデリングの途中でブレないように、コンセプトにしっかりと書いておくんですよね。 |
時間をかけずになるべくシンプルに作ろうとしましたが、どうでしょうか。。
カテゴリ、というか単なるラベルを持っているだけなのが良いのか悪いのか、自分でもわかりませんでした。
唐沢さん | 「フロア」「カテゴリ」「専門店」の関係ということは、何階で何を売っているのかに注目されているんですね。 |
|
久本くん | そうですよね。百貨店のエレベーターで「6 階、紳士服売り場です」のようなアナウンスがありますね。 |
|
マスター | 「フロア」と「カテゴリ」の関係でそれが表されていますね。 |
|
吉井さん | しかし、多重度に矛盾があるのが気になるなぁ。 |
|
唐沢さん | ええ。ある「フロア」の「専門店」が複数の「カテゴリ」を扱っているなら、その「フロア」には複数の「カテゴリ」があることになるはずです。 |
|
久本くん | 「フロア」と「カテゴリ」の多重度がおかしいのではないでしょうか。 |
|
吉井さん | クラス図からはそう見えるね。でも本当の問題はそこじゃないかもしれない。オブジェクト図を見てみよう。 |
|
マスター | 婦人雑貨やファッション、バッグやアクセサリ、両方とも「カテゴリ」クラスのインスタンスになっています。 |
|
唐沢さん | つまり、「カテゴリ」クラスに2つの意味を持たせてしまっているということですね。 |
|
マスター | これらは違うものと見るのが自然ではないでしょうか。それに、オブジェクト図のインスタンスの配置からは両者を区別しているように見えます。 |
|
久本くん | そうですね。分けた方が良い気がします。 |
|
吉井さん | うん。「カテゴリ」クラスが何を表すものなのか曖昧になっていて、それがクラス図の多重度の矛盾に出ているね。 |
|
◇ |
||
マスター | ある「専門店」が複数の「カテゴリ」を持つことがあるんですね。 |
|
久本くん | 確かに、シューズやバッグ、アクセサリなどいろいろなものを売っているお店がありますね。 |
|
吉井さん | 「カテゴリ」が複数の「フロア」にまたがる可能性が出てくるね。例えば、婦人服のフロアの店だけど一緒にバッグや帽子なども売っている場合なんかかな。バッグや帽子が婦人雑貨フロアと婦人服フロアにまたがる。その場合はまた難しくなるね。 |
解答例としまして、当カフェのマスターのモデルを紹介致します。 コンセプト次第でモデルは変わりうるものですから、 正解としてではなく、1つの考え方としてご覧ください。
フロアガイドの利用者の視点から、百貨店のフロアをモデリングする。 具体的には次の通り。
→ 「フロア」から見た「カテゴリ」の多重度が 0 の場合がある。
→ 「フロア」の特定には婦人服や紳士服などは必要ない。「カテゴリ」が分かれば「フロア」が一意に特定できる。
その他、以下を考慮する。
解答例1のコンセプトに加え、以下を考慮する。
解答例2(発展形)のコンセプトに加え、さらに以下を考慮する。
→ 「カテゴリ種別」から「フロア」を見た場合、「カテゴリ」を特定しないと「フロア」が一意に決まらない場合がある。
→ 「フロア」-「カテゴリ」-「カテゴリ種別」の関連と同様の意味になるよう(矛盾しないよう)、限定子を用いる。
今月号の問題です。モデリングの進め方については、第 1 回のモデリングの進め方を参照してください。
我が家のおせちは、毎年、次のようになっています。
|
余談ですが、それぞれの料理には願いが込められています。代表的なものは次の通りです。
黒豆 | 無病息災の願い |
数の子 | 子孫繁栄の願い |
ごまめ | 豊年豊作の願い |
たたきごぼう | 開運の願い |
昆布巻き | 慶事の願い |
海老 | 長寿の願い |
きんとん | 財産、富を得る願い |
以上を読んで、おせちをモデリングしてください。
不足する情報は適宜補っていただいて結構です。補った情報は、コンセプトに記述してください。 解答はクラス図で表現して下さい。クラスには必要な属性を、関連には多重度を明記するのがポイントです (解答時間の目安は15分~30分です)。
解答モデルの送付についてをご覧ください。 なお、今月号は第 15 回です。 締め切りは 2008 年 2 月 14 日 (木) です。
解答例掲載は 2008 年 3 月号 ( 2008 年 3 月上旬 ) を予定しています。
本連載では、文献[1]をベースに、より気軽にモデリングを愉しんでいただけるテイストにしております。モデリングに関するしっかりした解説が欲しい場合には、以下の書籍をご覧になると良いと思います。
前回の Elapiz Basic 2005.2 の正規ライセンスの当選者を発表いたします。おめでとうございます!!
なお、当選者の方には、後日改めてメールにてご連絡いたします。お楽しみに!!
改訂履歴