たつたです。
皆川さん、林さん、ご説明、ありがとうございました。
> ちなみに、説明のために必要なロール名を加えた下記のクラス図で…
>
>+-----+ 1 * +-----+ * 1 +-----+
>| A |-----------| B |-----------| C |
>+-----+ roleBs +-----+ roleC +-----+
>
>…「Aのインスタンスに関連している全てのBのインスタンスは全て同じCのイン
>スタンスに関連している」という制約をOCLで記述してみると、たとえば次のよ
>うな制約文になります(もちろん、同じ制約を表現するもっと他の表記も書くこ
>とができます)。
>
>context A inv:
> self.roleBs->forAll( b1 b2 | b1.roleC = b2.roleC )
>
OCLはまだ、学習していないので、これを機会に学びたいと思います。
でも、直感的には、
「Aのインスタンスに関連している全てのBのインスタンスは全て同じCのインスタ
ンスに関連している。」
ってイメージしてしまいます。
># クラス図にクラスの箱を一個描いたら、その箱の影で(そのクラスの)インスタ
># ンスが7個くらいフワフワ浮いているような感覚になってきたらしめたもので
># す (^_^;
このようにイメージする事が大切ですね。
>> 実は、上図ですべての関連の両端の多重度が「1」である場合だけは推移的に
>> 「Bと関連しているインスタンスA,Cが関連しないと存在できない」形になります
>
>これ、私もかんがえたのですが、スパイラルになっていて、もとにつながるような
>ドーナツ型は存在できると思うんです。
>
>こんな感じです。
>
>a1-b1-c1-a2-b2-c2-+
>| |
>+-----------------+
そうなんです。 私も上記のオブジェクト図に対するクラス図は互いに
多重度1で関連しうるのでは?
と考えてしまっているのです。
きっと、暗黙の了解でもあるのかな?