コンテンツにスキップ

Object Constraint Language

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

2020年11月30日 (月) 03:43; 2400:4052:7204:bd00:6119:577a:575e:c244 (会話) による版 (外部リンク)(日時は個人設定で未設定ならUTC

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

Object Constraint LanguageOCL)は、統一モデリング言語 (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つに分けられる:

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

OCL と UML

[編集]

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

OCL と MOF

[編集]

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

OCL と QVT

[編集]

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

類似技術

[編集]

ナビゲーション言語として見た場合、OCLはXPathと対比することができる。XPath が XMLツリーに対してナビゲーションを行うのに対して、OCL は MOFベースのモデルやメタモデル(つまり XMIツリー)に対してナビゲーションを行う。換言すれば、OCL と UML や MOF との関係と、XPath と XML の関係が似ているのである。モデルやメタモデルに副作用のない付加情報(制約など)を与えるモデル記述言語として見た場合、OCLと同様な役割を果たす言語として Alloy などがある。

脚注

[編集]

出典

[編集]

参考文献

[編集]
  • ヨシュ・ヴァルメル、アーネク・クレッペ、竹村司 (訳) 、『UML/MDAのためのオブジェクト制約言語OCL 第2版』、エスアイビー・アクセス、2004年、ISBN 978-4-434-05542-3

関連項目

[編集]

外部リンク

[編集]

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