The current document generation process used to produce the UTP 2 specs is limited with respect to the illustration of property/association end modifiers (i.e., unique, ordered, redefines, subsets, read-only, union). According to UML, those modifiers shall be illustrated after der name and type and multiplicity of a property. The following grammar rule (taken from UML 2.5, Clause 9.54) specifies the textual notation of properties:
<property> ::= [<visibility>] [‘/’] <name> [‘:’ <prop-type>] [‘[‘ <multiplicity-range> ‘]’] [‘=’ <default>] [‘
{‘<prop-modifier > [‘,’ <prop-modifier >]* ’}
’]
In the UTP 2 document generation framework the illutration of modifiers was circumvented in a way that is is close to, but different to the notation prescribed by UML. Although, the aligned notation of UTP 2 is okay from a readers point of view, it appears that the modifiers have not been consistenly illustrated. See two examples from the spec:
In section 8.3.2.7.17 TestDesignDirective , TestDesignDirective modifies are displayed before the name of the propery:
{read-only, union} subDirective : TestDesignDirective [*]
In section 8.4.2.5 TestConfigurationRole, modifiers are displayed after the name of the property:
/roleConfiguration {read-only, union}
: RoleConfiguration [*]
Even though both ways are still good enough to comprehend, from an editorial point of view, one way should be preferred to other.