No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
<blockquote>The '''Object Constraint Language''' ('''OCL''') is a [[wikipedia:Declarative_programming|declarative language]] for describing rules that apply to [[wikipedia:Unified_Modeling_Language|Unified Modeling Language (UML)]] models developed at [[wikipedia:IBM|IBM]] and now part of the UML standard. Initially, OCL was only a formal specification language extension to UML.<sup>[1]</sup> OCL may now be used with any [[wikipedia:Meta-Object_Facility|Meta-Object Facility]](MOF), [[wikipedia:Object_Management_Group|Object Management Group]](OMG), [[wikipedia:Metamodeling|meta-model]], including UML.<sup>[2]</sup> The Object Constraint Language is a precise text language that provides constraint and object query expressions on any MOF model or meta-model that cannot otherwise be expressed by diagrammatic notation. OCL is a key component of the new OMG standard recommendation for transforming models, the Queries/Views/Transformations ([[wikipedia:QVT|QVT]]) specification.</blockquote>Different ways MDriven relies on OCL: | <blockquote>The '''Object Constraint Language''' ('''OCL''') is a [[wikipedia:Declarative_programming|declarative language]] for describing rules that apply to [[wikipedia:Unified_Modeling_Language|Unified Modeling Language (UML)]] models developed at [[wikipedia:IBM|IBM]] and now part of the UML standard. Initially, OCL was only a formal specification language extension to UML.<sup>[1]</sup> OCL may now be used with any [[wikipedia:Meta-Object_Facility|Meta-Object Facility]](MOF), [[wikipedia:Object_Management_Group|Object Management Group]](OMG), [[wikipedia:Metamodeling|meta-model]], including UML.<sup>[2]</sup> The Object Constraint Language is a precise text language that provides constraint and object query expressions on any MOF model or meta-model that cannot otherwise be expressed by diagrammatic notation. OCL is a key component of the new OMG standard recommendation for transforming models, the Queries/Views/Transformations ([[wikipedia:QVT|QVT]]) specification.</blockquote> | ||
===== Different ways MDriven relies on OCL: ===== | |||
* As constraint definition on a class | * As constraint definition on a class | ||
* As description of derivation rule on derived attributes | * As description of derivation rule on derived attributes | ||
Line 11: | Line 13: | ||
OCL expression must be without side effects. It is a query language and as such it is not expected to change data as the language is applied. | OCL expression must be without side effects. It is a query language and as such it is not expected to change data as the language is applied. | ||
==== Learn more: ==== | ====== Learn more: ====== | ||
==== [[Part 1 OCL Common Expressions]] ==== | ==== [[Part 1 OCL Common Expressions]] ==== |
Revision as of 06:25, 22 June 2023
The Object Constraint Language (OCL) is a declarative language for describing rules that apply to Unified Modeling Language (UML) models developed at IBM and now part of the UML standard. Initially, OCL was only a formal specification language extension to UML.[1] OCL may now be used with any Meta-Object Facility(MOF), Object Management Group(OMG), meta-model, including UML.[2] The Object Constraint Language is a precise text language that provides constraint and object query expressions on any MOF model or meta-model that cannot otherwise be expressed by diagrammatic notation. OCL is a key component of the new OMG standard recommendation for transforming models, the Queries/Views/Transformations (QVT) specification.
Different ways MDriven relies on OCL:
- As constraint definition on a class
- As description of derivation rule on derived attributes
- As description of derivation of derived associations
- As ViewModel columns and Nesting definitions
- As definitions for Visible and Enable state for ViewModel columns
- As expression of style information on ViewModel columns
- As expression for object presentation on classes
- Action Enable expression
- State machine Guards
OCL expression must be without side effects. It is a query language and as such it is not expected to change data as the language is applied.
Learn more:
Part 1 OCL Common Expressions
Part 2 OCL: Operators
Part 3 OCL: Derivation Properties
The MDriven Book - See also: Certain important constructs