実現関係

用語

実現関係

用語(英)

Realization

別名

-

識別情報

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

  • English label: Realization

  • Japanese label: 実現関係

  • Japanese short label: 実現

  • Scope qualifier: Object Foundation / specification-implementation relationship

  • Bare-label linking: explicit-only

  • Category: Object Foundation

  • Status: normative

  • Definition authority: SimpleModeling BoK, aligned with UML 2.5.1

定義

実現関係(Realization)とは、供給側のModel Elementが示す仕様を、依頼側のModel Elementが実装または具体化し、その契約に適合することを表す有向の抽象関係です。仕様と実装の役割を分けたまま、その対応をModel上で明示します。

UML

UML 2.5.1では、RealizationはAbstractionを特殊化した依存関係です。Supplierが仕様を表し、Clientがその実装を表します。InterfaceRealizationは、BehavioredClassifierがInterfaceの契約を実現する特殊な実現関係です。

一般的な用法

通常の日本語でいう「目標を実現する」「機能を実現する」は、必ずしもModel Element間の実現関係ではありません。仕様側と実装側、および両者の適合関係が明示される場合に、この用語を使用します。

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

Object側のInterfaceや契約をClassなどが実装する対応も、Functional側の関数契約を実装が満たす対応も、仕様と実装の関係として記述できます。ただし、型が対応することや関数を定義することだけでUMLの実現関係になるわけではありません。

CML

CML(Cozy Modeling Language)では、Interfaceや契約をClass、Entity、Componentなどが実現する関係をModelとして明示できます。一方、CMLからプログラムと実行可能成果物を生成する経路全体は「モデルの実現」であり、個々の実現関係とは区別します。

Scala

Scalaのclassやobjectがtraitを実装することは実現関係の実装候補ですが、 extends という構文だけでModel上の仕様と実装の意味が確定するわけではありません。

simplemodeling-lib

simplemodeling-libの契約、Interface、実装型は実現関係の証拠になり得ますが、ライブラリ内のすべての継承や型適合を実現関係として扱いません。

公開成果物での用法

日本語の記事と動画では、初出を「実現関係(Realization)」とします。後続で「実現」と短縮するのは、仕様と実装のModel Element間関係が明確な場合だけです。通常の動詞「実現する」は、この用語へ自動リンクしません。

境界

  • 実現関係はモデルの実現(Model Realization)という開発プロセスではありません。

  • 実現関係は汎化関係(Generalization)ではありません。

  • すべての依存関係(Dependency)が実現関係になるわけではありません。

  • 通常の動詞「実現する」と同義ではありません。

関連語

  • インターフェース

  • 依存

  • モデル関係

  • モデルの実現

  • クラス

参照