Object_Constraint_Language
[Wikipedia|▼Menu]
.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%;font-size:90%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}html.client-js body.skin-minerva .mw-parser-output .mbox-text-span{margin-left:23px!important}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}

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

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 のモデルをより明確化する。
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

関連項目

EclipseGMT Project

MOF

MOF Queries/Views/Transformations (QVT)

XMI

インテンショナルプログラミング (IP)

オブジェクト指向分析設計 (OOAD)

コンピュータシミュレーション

ドメイン固有言語 (DSL)

ドメイン固有モデリング (DSM)

メタモデル

メタデータ

モデルベーステスト (MBT)

モデル駆動型アーキテクチャ (MDA)

モデル駆動工学 (MDE)

モデル変換言語 (MTL)

モデリング言語

変換言語 (TL)

XML変換言語 (XTL)

外部リンク

OMG OCL specification page

OCL page of Computer Science Dept. of CSUSB (OCL 2.0 文法の概要)

MIT paper "Some Shortcomings of OCL"

OCL page of Klasse Objekten (Octopus OCL checker と Java code generator、OCL関連書籍紹介など)

Dresden OCL Toolkit (OCLツールキット)

HOL-OCL (OCL向けの対話型定理証明環境)

OCL for Java tutorial on ParlezUML

Article on using EMF's OCL in Java code

UML link page on cetus-links.org










問い合わせ言語
現役

.QL(英語版)

Alpha(英語版)

CQL

Cypher

D

DMX(英語版)

Datalog(英語版)

GraphQL

Gremlin

ISBL(英語版)

LDAP

LINQ

MQL

MDX

OQL

OCL

QUEL

SMARTS(英語版)

SPARQL

SQL

XQuery

XPath

YQL(英語版)

プロプライエタリ

YQL(英語版)

LINQ

歴史的

CODASYL

.mw-parser-output .citation{word-wrap:break-word}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}この記事は2008年11月1日以前にFree On-line Dictionary of Computingから取得した項目の資料を元に、GFDL バージョン1.3以降の「RELICENSING」(再ライセンス) 条件に基づいて組み込まれている。


記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:11 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef