Index: [Article Count Order] [Thread]

Date:  Tue, 22 Mar 2005 16:42:36 +0900
From:  林 栄一  <e.hayashi@....jp>
Subject:  [modeling-dojo:00247] Re: こんなん出ましたけどぉ>UML記述を理解できるお勧め本ありま
To:  "modeling-dojo@....jp" <modeling-dojo@....jp>
Message-Id:  <BE65FB7C.121B5%e.hayashi@....jp>
In-Reply-To:  <20050319224637.D396.KITSUNE@....com>
X-Mail-Count: 00247

林@豆ナイトではいつもお世話になってます。です。

こんにちは、


05.3.20 1:38 AMの "Makoto Minagawa" 様からのメールです。:

> …に合致する可能なオブジェクト図のパターンは、以下の[A],[B]および[B']の
> 形のいずれかに限られてしまうことになります。

なるほど、わかりやすい解説をありがとうございます。



>  というわけで、元のクラス図を考え直して私たちの常識により合致している(
> もうちょっとしっかりした)クラス図に描き直してみたとすると(たとえば)次の
> ようなモノになるでしょう。
> 
> +--------+  1                  1..* +--------+
> | 町内会 |◇------------------------| 世帯主 |
> +--------+      ↑             会員 +--------+
>     | 0..1      |{subset}            1 | 会長
>     +-----------------------------------+

 
> # 上図の関連間に引かれている線は依存関係の線(オープン・アロー・ヘッドが
> # 付いた破線)だと思って見てください。

なるほど、しかしこの{subset}の制約ってJUDEで書けないんですよねー。^^;

 
>  図中の{subset}というのはUMLで特別に用意されている関連間の制約で、児玉
> さんが書かれた制約文とほぼ同等な意味を持ちます。真面目にモデリングしてい
> るとこのような制約を付加しなくてはならないケースが結構出てくるので、UML
> ではあらかじめ簡易な記法が提供されているということですね。

このぐらいならOCL書かなくて済むということですね。

 
>> ところで、多重度未指定にして誘導可能性を片一方にする
>> っていうのは、反則でしょうか
>> ただ、この意味は会長になった世帯主自身は、自分はどの
>> 町内会の会長か知らないことになりますね。(笑)
>> 
>> 
>>  +--------+  1          1..* +--------+
>>  | 町内会 |◇----------------| 世帯主 |
>>  +--------+             会員 +--------+
>>     |                            ↑
>>     |                          1 | 会長
>>     +----------------------------+
> 
>  誘導可能性(ナビガビリティ)と多重度は関連に対するそれぞれ異なった側面の
> 特性を示すモノなので、基本的に無関係だと(私は)考えています。つまり、(基
> 本的に)誘導可能性を片方向にしたからと言って、片側(反対側)の多重度を未指
> 定で放っておいても良いということにはならないと思っています。
> 
>  誘導可能性とは「その関連で参照する時、相手のオブジェクト群が{直接|低コ
> ストで}特定できるようにしておいてね」という指定のことで、これが片方向で
> あっても「逆方向のオブジェクト群を特定することはできない」とまでは限定し
> ていないと(私は)解釈しています。たとえば、上のクラス図の例だと、ある「世
> 帯主」オブジェクトが会長を務めている「町内会」オブジェクトは、すべての
> 「町内会」インスタンスの中から該当する「世帯主」オブジェクトを「会長」と
> して参照しているモノを探し出せば(参照コストはとても高いですが)特定するこ
> とができるでしょう。

なるほど、確かにコスト高ではありますが特定可能ですね。

 
>  片方向関連の反対側の多重度は「そのオブジェクトが同時にいくつの相手から
> 参照されている可能性があるか」という情報を示しています。この情報は(たと
> えば)「排他制御が必要か?」等の設計上の想定を行う場合の重要なヒントにな
> るので、明示されているに越したことはありません。

なるほど、了解しました。
私はいままで、ほとんど書いていませんでしたね。

> # 実装段階に入った時、設計モデル中にこれが明示されていない箇所が残ってい
> # る(決めきれなかった)場合は、ワースト・ケースとして「0..*」を仮定して備
> # えることが多いです。

なるほど、これもなっとくできます。


いつも、わかりやすい説明をありがとうございます。


-- 
Eiichi Hayashi
    CENTRALSOFT Co. Ltd, Open Systems Dept.
   HP: http://www.central-soft.co.jp
  E-Mail: e.hayashi@....jp
 TEL:03-5256-5761