立見%レス一杯で大変@メトロです。
皆川さんどうもありがとうございます。
> えっと…、関連名とロール名について、少し誤解されているような気がします。
そうですね。確かに、混乱してました。
> 関連名はその関連自体の意味付けを表す名前で、普通、動詞や動名詞の名前が
> 付けられます(たとえば、「結婚相手となる」など)。オプションで、方向付けあ
> りの名前を付ける(関連名の先頭に読む方向を示す▲が表記される)ことができま
> す(たとえば、「チョコレートを貰う」「チョコレートをあげる」など)。
>
> ロール名は、あるオブジェクトから見てある関連を辿って参照されるオブジェ
> クト(群)の役割を示す名前で、普通、名詞の名前が付けられます。
ふむふむ。理解しました。
> 上図のモデルの関連に付けられている名前は(たぶん)方向付けありの関連名で、
> これらの関連名とは別に、それぞれの関連端にロール名を示すことができます。
> たとえば、「男」クラス側には「ばら撒き先」、「女」クラス側には「有り難い
> 女神様達」、とかいった感じのロールが付けられるかもしれません (^_^; これ
> らのロール名は、それぞれ、ある「女」クラスのインスタンスから見た「男」ク
> ラスのインスタンス群の役割と、ある「男」クラスのインスタンスから見た「女」
> クラスのインスタンス群の役割、を示している名前です。
ロール名の方が関連名より割りあてるのはむずかしそうですね。
「ばら撒き先」はなかなか連想できませんねぇ。
> 上図のモデルの場合、関連名は「結婚相手となる」もしくは「結婚している」
> で、関連の「男」クラス側のロール名は「夫」、「女」クラス側のロール名は
> 「妻」といった感じになると思います。それぞれ、ある「女」クラスのインスタ
> ンスから見た「結婚している」相手の「男」クラスのインスタンスの役割を「夫」
> と呼び、ある「男」クラスのインスタンスから見た「結婚している」相手の「女」
> クラスのインスタンスの役割を「妻」と呼ぶ、という記述ですね。
しっくりしますねぇ。
>
> # ちなみに、上図のクラス図では関連の両端の多重度が両方とも「1」なので、
> # この世界では男女とも一瞬たりとも独身でいることが許されないということで
> # すね (^_^; 結構厳しい世界かも… (^_^;; ちなみに、独身である状態を許す
> # のであれば、両端の多重度は共に「0..1」になります(重婚は考えない)。
> # 多重度は関連先のオブジェクトの個数に関するクラス不変制約(Invariant)の
> # 一種なので、そのクラスのオブジェクトが存在している間は常に満たしていな
> # ければならない条件を示しています。「1」(明確に1)という多重度は思いの外
> # 厳しい制限を表現しているものなんですよね。
特に、リアルタイムシステムをモデリングする場合には、関連名を
注意深く考え多重度を割り出さないといけないようですね。
たとえば関連名が「結婚したい」と変わったら多重度も変わりますから。
ついつい、多重度を考え関連名を与えてしまうため失敗していました。
多重度は関連名で変わるので、関連名を先に与えて多重度をそれにあわせる
ようにしないと本当はいけないんですね。
> 以上、このメールが何かのお役に立ちましたら幸いです。
とても参考になりました。少しレベルアップした気分です。
どうもありがとうございました。