For faster navigation, this Iframe is preloading the Wikiwand page for Object Constraint Language.

Object Constraint Language

出典は列挙するだけでなく、脚注などを用いてどの記述の情報源であるかを明記してください。 記事の信頼性向上にご協力をお願いいたします。(2017年2月)

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)を定義した。GReAT、VIATRA、ATLといったモデル変換言語があるが、これらの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」(再ライセンス) 条件に基づいて組み込まれている。

{{bottomLinkPreText}} {{bottomLinkText}}
Object Constraint Language
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?