Object Constraint Language
From Wikipedia, the free encyclopedia
Object Constraint Language(OCL)は、統一モデリング言語 (UML) モデルに適用する規則を記述するための宣言型言語である。IBMが開発し、UML標準の一部となった。初期のOCLは、単なるUMLの形式仕様記述言語としての拡張であったが、その後 UMLだけでなく Object Management Group (OMG) の Meta-Object Facility (MOF) のメタモデル全般を扱うようになった。Object Constraint Language (OCL) は Meta-Object Facility などのモデルやメタモデルについて、図表の形式では表現できない制約やクエリを表現することができる正確なテキスト言語である。OCL は OMG のモデル変換に関する推奨標準 QVT 仕様の一部となっている。他の多くのモデル変換言語(ATLなど)も OCL に基づいて構築されている。
概要
OCL の元となったのは、第二世代のオブジェクト指向分析・設計手法 Syntropy である。OCL 1.4 で制約言語の仕様が追加された。OCL 2.0 では、汎用のオブジェクト・クエリ言語の定義を含むよう拡張された。
OCL 言語の構文は以下の4つに分けられる:
- コンテキスト - 文が正しいといえる状況の制限を定義する
- プロパティ - コンテキストの特性を表現する(例えば、コンテキストがクラスである場合、プロパティはその属性となる)
- オペレーション - プロパティを操作・修正する演算(算術演算や集合的演算)
- キーワード - 条件などを表現する(if、then、else、and、or、not、implies など)
OCL と UML
OCL はUMLを補うものであり、自然言語の曖昧さを排していると同時に複雑な数学的記法を扱わなくてもよいという特徴がある。OCL は、図に基づいたモデルのためのナビゲーション言語でもある。
OCL と MOF
OCL は、MOFのメタ要素と表明を関連付けることで MOF のモデルをより明確化する。