多重度
multiplicity
たじゅうど
属性の多重度(multiplicity)についてBNF記法で記述したもの。
<multiplicity> ::= <multiplicity-range> [ ‘{‘ <order-designator> [‘,’ <uniqueness-designator>] ‘}’ ]
<multiplicity-range> ::= [ <lower> ‘..’ ] <upper>
<lower> ::= <integer> | <value-specification>
<upper> ::= ‘*’ | <value-specification>
<order-designator> ::= ‘ordered’ | ‘unordered’
<uniqueness-designator> ::= ‘unique’ | ‘nonunique’
簡単に書くと属性は下記のように記述する。
変数名 : 型 [多重度の範囲] {ordered, unique}
(雑感)
デフォルトだとオブジェクト順は無いので、unordered は通常省略すると思います。unique についても同様に明示的に記述したい時を除いて通常は省略するのではないでしょうか。逆に、ordered と nonunique については記述する必要があるでしょう。
相手のオブジェクトが1個の時の自身のオブジェクトの数を記述する。(自分から見た相手のオブジェクトの数を記述する。)つまり、Customer1オブジェクトに対してリンクしたPurchaseは0個以上存在します。自身が1Customerオブジェクトになったつもりで見ると、リンクしたPurchaseオブジェクトは0個以上存在します。
多重度の範囲の書き方。
<最低値>'..'<最高値>
1
相手のオブジェクトが1個の時、自身のオブジェクトが1個存在する。
0..1
相手のオブジェクトが1個の時、自身のオブジェクトが0個または1個存在する。
1..3
相手のオブジェクトが1個の時、自身のオブジェクトが1個以上3以下存在する。
*
相手のオブジェクトが1個の時、自身のオブジェクトが0個以上存在する。0..*と同等。
1..*
相手のオブジェクトが1個の時、自身のオブジェクトが1個以上存在する。
※UML1.Xでは、連続していない多重度を表現することが可能でした。例えば、2または4であれば、2,4と記述していました。但し、この仕様はUML2.0から無くなりました。
(雑感)
多重度を省略した場合、その値は不明確ですが
メタモデルに限り 1 らしい・・・?(UMLモデリングのエッセンス第3版)
@IT の UML BASIC LECTURE(3)
http://www.atmarkit.co.jp/farc/rensai/uml_b_l03/um...
アジャイルモデリング の UML 2 クラス図の概要
http://www.ogis-swe.jp/process/am-res/am/artifacts...
たじゅうど
属性の多重度
属性の多重度(multiplicity)についてBNF記法で記述したもの。
<multiplicity> ::= <multiplicity-range> [ ‘{‘ <order-designator> [‘,’ <uniqueness-designator>] ‘}’ ]
<multiplicity-range> ::= [ <lower> ‘..’ ] <upper>
<lower> ::= <integer> | <value-specification>
<upper> ::= ‘*’ | <value-specification>
<order-designator> ::= ‘ordered’ | ‘unordered’
<uniqueness-designator> ::= ‘unique’ | ‘nonunique’
簡単に書くと属性は下記のように記述する。
変数名 : 型 [多重度の範囲] {ordered, unique}
(雑感)
デフォルトだとオブジェクト順は無いので、unordered は通常省略すると思います。unique についても同様に明示的に記述したい時を除いて通常は省略するのではないでしょうか。逆に、ordered と nonunique については記述する必要があるでしょう。
関連の多重度
相手のオブジェクトが1個の時の自身のオブジェクトの数を記述する。(自分から見た相手のオブジェクトの数を記述する。)つまり、Customer1オブジェクトに対してリンクしたPurchaseは0個以上存在します。自身が1Customerオブジェクトになったつもりで見ると、リンクしたPurchaseオブジェクトは0個以上存在します。
多重度の範囲の書き方。
<最低値>'..'<最高値>
1
相手のオブジェクトが1個の時、自身のオブジェクトが1個存在する。
0..1
相手のオブジェクトが1個の時、自身のオブジェクトが0個または1個存在する。
1..3
相手のオブジェクトが1個の時、自身のオブジェクトが1個以上3以下存在する。
*
相手のオブジェクトが1個の時、自身のオブジェクトが0個以上存在する。0..*と同等。
1..*
相手のオブジェクトが1個の時、自身のオブジェクトが1個以上存在する。
※UML1.Xでは、連続していない多重度を表現することが可能でした。例えば、2または4であれば、2,4と記述していました。但し、この仕様はUML2.0から無くなりました。
(雑感)
多重度を省略した場合、その値は不明確ですが
メタモデルに限り 1 らしい・・・?(UMLモデリングのエッセンス第3版)
関連リンク
@IT の UML BASIC LECTURE(3)
http://www.atmarkit.co.jp/farc/rensai/uml_b_l03/um...
アジャイルモデリング の UML 2 クラス図の概要
http://www.ogis-swe.jp/process/am-res/am/artifacts...
2005年10月31日(月) 12:23:53 Modified by tokuryo
添付ファイル一覧(全2件)
1c2e8aed81e13941.gif (3.73KB)
Uploaded by tokuryo 2005年10月17日(月) 12:43:13
Uploaded by tokuryo 2005年10月17日(月) 12:43:13
6b53056e05a1fd49.gif (3.57KB)
Uploaded by tokuryo 2005年10月17日(月) 12:42:56
Uploaded by tokuryo 2005年10月17日(月) 12:42:56