モデル関係

用語

モデル関係

用語(英)

Relationship

別名

-

識別情報

  • Term ID: src/main/doxsite/glossary/object-foundation/relationship.dox

  • English label: Relationship

  • Japanese label: モデル関係

  • Japanese short label: 関係

  • Scope qualifier: Object Foundation / relation among Model Elements

  • Bare-label linking: explicit-only

  • Category: Object Foundation

  • Status: normative

  • Definition authority: SimpleModeling BoK, aligned with UML 2.5.1

定義

モデル関係(Relationship)とは、複数のモデル要素の間に成り立つ意味上または構造上の結び付きを、種類、方向、参加端、役割、制約などの意味を伴って表すモデル要素です。具体的な意味は、関連関係、依存関係、汎化関係、実現関係などの関係種別によって定まります。

UML

UML 2.5.1では、Relationshipはモデル要素間の関係を表す抽象的な上位概念です。Association、Dependency、Generalization、Realizationなどは、それぞれ異なる意味を持つ具体的な関係です。SimpleModelingはこの区別を維持し、すべての結び付きをAssociationへ縮約しません。

一般的な用法

一般語の「関係」は、人、出来事、資料などの間の広い結び付きを表します。この用語が表すモデル関係は、識別可能なモデル要素であり、特定の関係種別と意味を持ちます。一般文中の「関係する」「関係がある」は、この用語への参照ではありません。

オブジェクト関数パラダイム

モデル関係は主としてオブジェクト側の構造と意味を表します。関数の合成可能性、引数と結果の型対応、作用の伝播など、関数側の結び付きは、適切な型または関数関係として区別します。

CML

CML(Cozy Modeling Language)では、可能な限り具体的な関係種別を記述します。単に二要素を接続するだけでは意味が確定しないため、関連関係、集約関係、合成関係、依存関係、汎化関係などの区別を失わないようにします。

Scala

Scalaのフィールド、継承、traitのmix-in、型境界、関数引数などは異なるモデル関係の実現候補ですが、構文だけからドメイン上の関係種別を一意に逆算できるとは限りません。

simplemodeling-lib

simplemodeling-libの型や構造はモデル関係の実現に使用できますが、ライブラリ上の参照や包含だけで関係の意味を確定しません。正規のモデル関係とCML上の指定を意味の根拠にします。

公開成果物での用法

日本語の記事と動画では、概念の初出を「モデル関係(Relationship)」とし、モデルの関係を扱っていることが明らかな範囲でのみ「関係」と短縮します。一般語の「関係」は用語として自動リンクしません。具体的な種別が分かっている場合は、上位語の「関係」だけで済ませず、関連関係、集約関係、合成関係などを使います。

境界

  • モデル関係は、一般日本語の「関係」すべてを表す用語ではありません。

  • モデル関係と関連関係(Association)は同義ではありません。関連関係はモデル関係の一種です。

  • 線で接続されていることだけでは、関係種別や意味は確定しません。

SimpleModeling

SimpleModelingでは、関係を線として描くだけでなく、その意味、責務の所有者、Multiplicity、成立条件を明示します。

関連語

  • モデル上の関連

  • 集約関係

  • 合成関係

  • 実現関係

  • 依存

  • 汎化

  • 多重度

参照