This page will explain the different packages of Dresden OCL2 for Eclipse.
Dresden OCL2 for Eclipse is currently divided into the following parts:
The Back-End of the Toolkit is a meta model which can be used to load models and Constraints into the Toolkit. Thanks to the Pivot Model developed by Matthias Bräuer, the Toolkit is totally independent of a specific meta model or repository. The Toolkit can be connected with any meta model which can be adapted to the Pivot Model. Thus the meta model is exchangeable.
The Toolkit Basis can be separated into three packages developed by Matthias Bräuer which provide all functionality to load models, constraints and model instances into the Toolkit.
The Pivot Model provides a set of Adapters which can be implemented to map the Toolkit to a meta model the user wants to work with in the Toolkit. All other tools and packages of the Toolkit are only using the interfaces of the Pivot Model to communicate with the currently selected meta model. Thus the meta model can be exchanged easily.
The Essential OCL packages uses the Pivot Model to define a meta model for OCL Constraints. Essential OCL is based on the standard library of OCL 2.0. Invariants, pre- and postconditions are supported. Furthermore, definitions, initial, body and let expressions can be defined.
The Model Bus provides a meta model, model and a model instance registry which can be used by other packages of the Toolkit to get any meta model, model or model instance which have been loaded into the Toolkit.
By now, Dresden OCL2 for Eclipse provides three tools: An OCL2 Parser, an OCL2 Interpreter and a OCL2 to Java Codegenerator.
The OCL2 Parser has been developed by Nils Thieme and can be used to open text files and parse them as OCL2 constraints. The constraints parsed by the parser are added to the model in the toolkit on which they have been defined.
The OCL2 Interpreter has been developed by Ronny Brandt and can be used to interpret already imported OCL2 constraints. Invariants, pre- and postconditions can be interpreted. Initial and let expressions, definitions and body expressions can be used to enrich and prepare the OCL2 interpretation.
OCL2Java is a code generator developed by Claas Wilke which can be used to generated Java code for imported OCL2 constraints. The code generator uses the aspect-oriented language AspectJ to instrument the generated code into the provided Java code for the imported model used for the code generation. The code generator supports the generation of code for invariants, pre- and postconditions, definitions, initial and defined values, body and let expressions.