Derived attributes are associated with an object or a protocol class and are derived from other attributes using a derivation rule. An attribute can be associated with at most one derivation rule, an optional attribute description, an optional attribute example specification, and an optional list of domain-specific properties. Domain-specific properties are specified as tag-value pairs and are meant to be interpreted by application-specific software.
There are four types of derivation rules:
A derived attribute cannot be specified as an identifier of an object or protocol class, nor as input or output of a protocol class.
<derived attribute> ::= ATTRIBUTE <simple attribute name>
DERIVATION : <simple attribute derivation>
<attribute description>
<domain-specific properties>
| ATTRIBUTE <tuple attribute name>
( <comp attribute list> )
DERIVATION : userspecified
<attribute description>
<domain-specific properties>
;
<simple attribute derivation> ::= = <arithmetic expression>
| <aggregate expression>
| <attribute composition>
| userspecified
;