blob: e4f1fcb67914cbbef220a28ff05c411951726d9c [file] [log] [blame]
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Who Uses OCL and Eclipse OCL?</title>
<link href="book.css" rel="stylesheet" type="text/css">
<meta content="DocBook XSL Stylesheets V1.75.1" name="generator">
<link rel="home" href="index.html" title="OCL Documentation">
<link rel="up" href="OverviewandGettingStarted.html" title="Overview and Getting Started">
<link rel="prev" href="EclipseOCLisExtensible.html" title="Eclipse OCL is Extensible">
<link rel="next" href="WhoisBehindEclipseOCL.html" title="Who is Behind Eclipse OCL?">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<h1 xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">Who Uses OCL and Eclipse OCL?</h1>
<div class="section" title="Who Uses OCL and Eclipse OCL?">
<div class="titlepage">
<div>
<div>
<h2 class="title" style="clear: both">
<a name="WhoUsesOCLandEclipseOCL"></a>Who Uses OCL and Eclipse OCL?</h2>
</div>
</div>
</div>
<p>The OCL specification is defined by the
<em class="glossterm">OMG</em>. It originally evolved as part of
<em class="glossterm">UML</em> where it is used for the detailed mathematical aspects that are not appropriate for graphical exposition. OCL 2.0 was split off from UML 2.0 in recognition of its greater utility.
</p>
<p>Within the OMG context, OCL has been re-used as the foundation for the MOFM2T(Model to Text) Model-to-Text transformation language and the
<em class="glossterm">QVT</em> Model-to-Model transformation language. Eclipse implementations of these are available as the Acceleo and QVT Operational projects.
</p>
<p>Eclipse OCL is an implementation of the OCL specification for use in conjunction with EMF and in particular Ecore and UML2 meta-models. As the behavioral extension for EMF, Eclipse OCL can be used wherever EMF can.</p>
<p>As a specification language, OCL is frequently used when the behavior of models is formally specified.</p>
<p>The use of OCL as an execution language has been hindered by the quality of tool support. Beyond the research domain, many usages have been proprietary. One advanced proprietary usage at SAP has been contributed to Eclipse OCL and is available as the
<a class="link" href="ImpactAnalyzer.html" title="Incrementally Re-Evaluating OCL Expressions Using the Impact Analyzer">Impact Analyzer</a>. This supports strategic planning of run-time notifications so that derived model properties can be updated efficiently in response to a change to a model. Thousand-fold speed improvements are achievable on large models using OCL rather than Java because OCL has a formal model-based semantics that is amenable to analysis.
</p>
<p>The use of OCL in general is eased by the provision of good editors exploiting Xtext to provide comprehensive semantic feedback in a familiar editing style.</p>
<p>The use of OCL for execution is enhanced by providing direct Java code generation for OCL embedded in models. This should alleviate many of the performance concerns for interpreted execution of embedded OCL.</p>
<p>Debugging of OCL execution is now possible using the OCL debugger and the OCL Console can be used for OCL experimentation.</p>
</div>
</body>
</html>