2

Altova UModelの試用版をダウンロードし、UMLの使用を開始しました。実用的な始まりとして、私はWebブックマーク管理を含む個人情報マネージャーアプリケーションをモデル化しています。

ブックマークは一度に多くの(またはない)タグに属することができ、タグには多くの(または含まれているすべてのブックマークが削除された場合はない)ブックマークを含めることができます。リレーションは双方向でナビゲート可能である必要があります。ユーザーは、特定のタグを持つすべてのブックマークとブックマークのすべてのタグを表示できる必要があります。

ブックマーククラスとタグクラスの間の正しいUML関係は何ですか?

私が今UMLを理解している限り、それはアソシエーションです(アグリゲーションではありません)。しかし、双方向のナビゲート可能な多対多の関係の場合、endsロールを「memberEnd」または「whennavigableOwnedEnd」として指定できます。グラフィカルに接続はどちらの場合も同じように見えます(矢印)(私が理解しているように、ナビゲート可能性を意味します)が「memberEnd」が使用されている場合にのみ、プロパティがクラスボックスに表示されます。

モデルでそれをどのように指定する必要がありますか?双方向でナビゲート可能な多対多の関係を意味する場合はどうすればよいですか?

4

1 に答える 1

4

UML上部構造仕様、v2.1.2セクション7.3.3から:

  • memberEnd:プロパティ各端[2..*] は、関連付けのリンクで端に接続された分類子のインスタンスの参加を表します。これは順序付けられた関連付けです。サブセット名前空間::メンバー。
  • ownedEnd:プロパティ[*] アソシエーション自体が所有するエンド。これは順序付けられた関連付けです。サブセットの関連付け::memberEnd、分類子::機能、および名前空間::ownedMember。
  • navigableOwnedEnd:プロパティ[*] アソシエーション自体が所有するナビゲート可能なエンド。サブセットAssociation::ownedEnd。

したがって、エンドがアソシエーションによって「所有」されている場合は、ownedEnd / navigableOwnedEndタイプを使用し、そうでない場合は、memberEndタイプを使用します。

どちらも「双方向のナビゲート可能な多対多の関係」に使用できます。各リレーションリンクがデザイン内の個別のインスタンスである場合、エンドを所有できます(たとえば、クラスAとクラスBには、関連するAsとBへの参照のペアのリストへの参照があります)が、リレーションリンクが暗黙的である場合はは何も所有していません(たとえば、クラスAには関連するBへの参照のリストがあり、クラスBには関連するAsへの参照のリストがあります)。

90年代後半からUMLを使用してきたあなたは、私が出会った最初の人であり、違いを気にかけていました。

于 2010-05-23T10:54:24.390 に答える