UML 2 Issue: isUnique
-
Key: UML22-21
-
Legacy Issue Number: 6464
-
Status: closed
-
Source: Simula Research Laboratory ( Dr. Bran Selic)
-
Summary:
PROBLEM STATEMENT
"When one or more ends of the association have isUnique=false, it is
possible to have several links associating the same set of instances."
(Superstructure, p. 81)As Pierre-Alain Muller demonstrated in an informal conversation with Bran
Selic during a lunch in San Francisco in the last UML Conference (I also was
taking part in that conversation), isUnique must have the same value for all
ends in an association.This has implications, for example, for the property strings that can be
{ordered}
placed near the association ends (,
{bag},
{seq}). According to the
table in Superstructure, p. 92, if one end is a Set or an OrderedSet, then
the opposite end must be a Set or an OrderedSet, too; and if one end is a
Bag or a Sequence, then the opposite end must be a Bag or a Sequence, too.PROPOSED SOLUTION
Explain this in the Spec. -
Reported: UML 1.5 — Fri, 7 Nov 2003 05:00 GMT
-
Disposition: Resolved — UML 2.2
-
Disposition Summary:
This topic is discussed in detail in DraganMilicev’s paper at http://afrodita.rcub.bg.ac.rs/ dmilicev/pubs/mdd/
trumlassoc.zip. In the paper he proposes that the collection that provides the value of a property that is an
association end is derived from the links that instantiate the association as modified by the isUnique marking.
So, even if there are two links targeting an instance in the extent of the association, if the property is
marked as unique then there will only be one instance in the collection. This interpretation allows there to
be associations with mixed unique/nonunique ends. After discussion the FTF thinks that this interpretation
is in fact the intended interpretation of the current spec, and should be clarified as such.
Milicev also points out that AssociationClasses make the identity of links visible in the semantics, and in
contrast to what the spec currently suggests, it is possible to have multiple instances of an AssociationClass
that associate the same set of end instances, regardless of the uniqueness marking of the ends. This is
clarified in the current resolution. Milicev proposes adding an isUnique property to AssociationClass to
give the power to rule out such multiple instances. Adding such a property is outside the scope of UML 2.5.
This resolution also clarifies that property subsetting applies to property values coerced to sets. Currently
nonunique B could be marked as subsetting unique A. If B contains the same value twice and A contains it
once, then that should be legal, even though the size of the value of B is larger than that of A.
The resolution also accounts for the use of qualifiers, makes some improvements to the definition and use
of the term “cardinality”, and corrects the semantics of CreateLinkAction to correspond to the clarified
definition.
This also resolves issue 5977. -
Updated: Mon, 9 Jan 2023 12:17 GMT