Dresden OCL is the newest version of the Dresden OCL Toolkit which is based on the Eclipse SDK. Dresden OCL2 is based on the so-called pivot model as exchange format for models and meta models developed by Matthias Bräuer. The aim of this pivotal meta-model is to provide an abstraction to evaluate OCL queries over instances of arbitrary domain-specific languages (including MOF and UML). Furthermore, we support multiple meta-models such as EMF, MDT UML and Java. The implementation of the pivot model is based on the Eclipse Modeling Framework (EMF).
Dresden OCL is built as a set of Eclipse plug-ins. How to install the plug-ins and getting started with the toolkit is explained in the manual available as PDF via this link.
Dresden OCL contains:
The architecture of Dresden OCL can be separated into five layers:
The API layer provides the Facade of Dresden OCL that can be used by other plug-ins to access the OCL tools of Dresden OCL.
The Tools Layer contains the Tools provided by Dresden OCL. These are: The Parser/Editor, the OCL Interpreter and the OCL22Java Code Generator. Finally, the Model Browser can be used to store imported models, and model instances. The backend of the Model Browser is the Model Bus that manages all meta-models and model instance types currently provided by Dresden OCL. The model bus is located at the Registry Layer.
The OCL layer contains the OCL syntax and semantics used by the tools of Dresden OCL. The OCL syntax and semantics are separated into three different packages. Essential OCL contains the abstract syntax (or meta-model) of OCL that is used by Dresden OCL and its tools. The OCL Standard Library Model provides a modeled description of all operations that are provided by the OCL Standard Library. Finally the OCL Standard Library Semantics provides an implementation of all these operations that are used by the OCL Interpreter of Dresden OCL for OCL interpretation.
The last layer is the Variability Layer. The Variability layer contains the Pivot Model and the Model Instance Types that are used to connect Dresden OCL with various meta-models or types of model instances, respectively.
To avoid the same questions to be asked multiple times we started to document some of frequently asked questions on this website. The FAQ can be accessed via this link.
The Changelog documents changes between different versions of OCL and bugs and issues fixed other time. The Changelog is available via this link.
Although OCL is thus an important tool, it can be hard to find information about it. For example, there is still a lack of good teaching modules for OCL. Furthermore, case studies on projects could help potential users to find out whether or not OCL is the proper formalism for their problems.
The worldwide OCL community has developed various (open-source) OCL tools. These can and should be integrated into UML CASE tools to support precise specification of UML models beyond the pure specification of OCL expressions as strings.
For this reason, the OCL community decided at the 2005 Workshop on OCL at the MoDELS conference to set up an OCL portal website collecting all information about OCL.
The portal relies on your collaboration. Therefore you are invited to put your OCL activities/knowledge at the portal! The OCL Portal provides editing capabilities both to members of the academic/research OCL community and OCL users/developers of CASE tools in industrial environments. Registration is free. After a confirmation procedure, you will be able to add your own teaching material, projects, toolkits, case studies etc. Furthermore, we are always happy on feedback about this site and will make every effort to improve the site in accordance with your needs and suggestions.
You can reach the OCL Portal at http://st.inf.tu-dresden.de/oclportal/.