URML -- a UML-Based Rule Modeling Language

The modeling language used in the communication between business/domain analysts and business/domain experts for analyzing and documenting system requirements must not be 'technical' but should allow (semi-)visual and/or natural-language-like rule expressions, which can be understood by business/domain experts without extensive technical training. The UML offers a semi-visual (diagrammatic) language for information modelling allowing a limited number of embedded rule types (in particular, integrity constraints and derivation rules, cf.). The Object Constraint Language (OCL) can be used for expressing integrity rules and derivation rules within UML class diagrams, but it is purely textual and does not allow a visual representation of rules. In order to facilitate rule modeling, the REWERSE Working Group I1 has developed a UML-Based Rule Modeling Language (URML), which allows visual rule modeling based on UML class models. Below is a description of the basic URML metamodel elements. For the full language specification, please contact Sergey Lukichev.

Language Description

URML supports the modeling of derivation rules, production rules and reaction rules. A rule is represented graphically as a circle with a rule identifier. Incoming arrows represent rule conditions or triggering events, outgoing arrows represent rule conclusions or produced actions.
  • Condition arrows refer to a conditioned model element, which is a classifier such as a class or an association. It may come with a filter expression selecting instances from the extension of the condition classifier and with an explicit object variable (or object variable tuple, in the case of an association) ranging over the resulting instance collection.
  • Negated condition arrows
    are crossed at their origin; they denote a negated condition which has to be conjoined with one or more positive condition arrows such that its variables are covered by them.
  • Derivation rules are represented graphically as a circle with an internal label "DR" and a rule identifier attached to it. Incoming arrows represent conditions, outgoing arrows represent conclusions.
    • Conclusion arrows also refer to a classifier model element. Its meaning is to state that the predicate represented by the conclusion classifier applies to any instance that satisfies all rule conditions.
  • Production rules are represented graphically as a circle with an internal label "PR" and a rule identifier attached to it. Incoming arrows represent conditions, outgoing arrows with a double arrowhead represent actions.
    • Action arrows refer either to a class (in the case of a create, delete, assign or invoke action) or to an activity.
  • Reaction rules are represented graphically as a circle with an internal label "RR" and a rule identifier attached to it. There are two kinds of incoming arrows (condition arrows and event arrows) and two kinds of outgoing arrows (action arrows and postcondition arrows, both having a double arrowhead).
    • Event arrows refer to a rule and may refer to a class.
You may browse sample rule models created in Strelka tool.