コンテンツにスキップ

Object Constraint Language

出典: フリー百科事典『ウィキペディア(Wikipedia)』

これはこのページの過去の版です。Melan (会話 | 投稿記録) による 2007年3月22日 (木) 02:13個人設定で未設定ならUTC)時点の版 (en:Object Constraint Language(2007年3月20日 6:12:04(UTC))の翻訳)であり、現在の版とは大きく異なる場合があります。

(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

Object Constraint LanguageOCL)は、統一モデリング言語(UML)モデルに適用する規則を記述するための宣言型言語である。IBMが開発し、UML標準の一部となった。初期のOCLは、単なるUMLの形式仕様記述言語としての拡張であったが、その後 UMLだけでなく Object Management Group(OMG) の Meta-Object Facilityメタモデル全般を扱うようになった。Object Constraint Language は Meta-Object Facility などのモデルやメタモデルについて、図表の形式では表現できない制約やクエリを表現することができる正確なテキスト言語である。OCL は OMG のモデル変換に関する推奨標準 QVT 仕様の一部となっている。他のモデル変換言語(ATLなど)も OCL に基づいて構築される。

概要

OCL の元となったのは、第二世代のオブジェクト指向分析・設計手法 Syntropy である。OCL 1.4 で制約言語の仕様が追加された。OCL 2.0 では、汎用のオブジェクト・クエリ言語の定義を含むよう拡張された。

OCL 言語の構文は以下の4つに分けられる:

  1. コンテキスト - 文が正しいといえる状況の制限を定義する
  2. プロパティ - コンテキストの特性を表現する(例えば、コンテキストがクラスである場合、プロパティはその属性となる)
  3. オペレーション - プロパティを操作・修正する演算(算術演算や集合的演算)
  4. キーワード - 条件などを表現する(if、then、else、and、or、not、implies など)

OCL と UML

OCL はUMLを補うものであり、自然言語の曖昧さを排していると同時に複雑な数学的記法を扱わなくてもよいという特徴がある。OCL は、図に基づいたモデルのためのナビゲーション言語でもある。

OCL と MOF

OCL は、MOFのメタ要素と表明を関連付けることで MOF のモデルをより明確化する。

OCL と QVT

モデル駆動工学モデル駆動型アーキテクチャでは、モデル変換の記法が重要となる。OMG はモデル変換の標準であるQVT(MOF/QVT)を定義した。GReATVIATRAATLといったモデル変換言語があるが、これらのQVT標準への対応レベルは様々である。これらの多くは OCL に基づいて構築されており、そのことがQVT準拠の主要な部分を占めている。

類似技術

ナビゲーション言語としては、XPath が OCL と較べられる。しかし、XPath が XMLツリーに対して働くのに対して、OCL は MOFベースのモデルやメタモデル(つまり XMIツリー)に対してナビゲートする。換言すれば、OCL と UML や MOF との関係と、XPath と XML の関係が似ているのである。モデルやメタモデルに副作用のないアノテーションを付与するモデル記述言語としては、OCLより優れた言語として Alloy などがある。

関連項目

外部リンク

この記事は2008年11月1日以前にFree On-line Dictionary of Computingから取得した項目の資料を元に、GFDL バージョン1.3以降の「RELICENSING」(再ライセンス) 条件に基づいて組み込まれている。