You must specify the validation condition for a validation rule. This condition must be true when evaluated in order for the Constraint to be satisfied. The result of a validation rule must be of the boolean type.
To define a Constraint condition
- Open the Constraint Specification window. How to open the Specification window >>
- Find the Specification property and select its value box.
Click
OCL Header
If you select the OCL2.0 language, the header of the expression from the constraint information is generated automatically
Constraint types
- def – for the expression of the constraint with «definition» stereotype applied.
init, derive - for the expression of the default value of the property.
The derive expressions can be evaluated indirectly when the validation rule (inv constraint) is referencing the property and the validation rule is evaluated.
- pre, post, body - for the expression of the appropriate fields of operation.
OCL Performance
When evaluating the validation rule defined in OCL language, the validation on the first run can have a delay of 20-30 seconds (depending on the computer performance) while the Java compiler is loading. Subsequent validations will run faster than the first one.
If the validation process is run heavily on medium-large projects, increasing the default Java VM size is advisable. By default, the VM size is set to 400MB in MagicDraw; increasing this to 600 (or 800 if the computer has sufficient RAM) might improve the performance.
Learn more about binary validation rule in Developer Guide >>
is used for more advanced expressions not easily expressed in OCL.These expressions are written in Java, compiled, and specified in the MagicDraw classpath. These expressions can then be specified as validation rule expressions.Since constraints cannot have parameters, you may skip the information about managing parameters.
MagicDraw can evaluate only those validation rules whose expression is defined in one of the languages listed above. The other languages can be used only for documentation purposes.
You can add hyperlinks in the Body box. How to define hyperlinks >>
You can define expressions for global validation rules. Learn more about global validation rules >>