Issue 8278: section 7.3.17 /EnumerationLiteral should not be an InstanceSpecification (uml2-rtf) Source: Adaptive (Mr. Pete Rivett, pete.rivett(at)adaptive.com) Nature: Uncategorized Issue Severity: Summary: In Super (but not Infra) EnumerationLiteral inherits from InstanceSpecification. This allows a single Enumeration value e.g. 'private' or 'red' to have many slots (InstanceSpecification.slot). Moreover it allows the value to have many classifiers (InstanceSpecification.classifier) independently of the Enumeration that owns the EnumerationLiteral - it does not make any sense to have this redundant property. All that is needed surely is a value: so if anything EnumerationLiteral should inherit from ValueSpecification. However this still inherits too much: for example an EnumerationLiteral should be owned only by its Enumeration and so should not inherit from PackageableElement as does ValueSpecification. Furthermore inheriting from TypedElement seems to introduce capability that is not catered for in the notation etc: if anything the underlying type for an Enumeration should be specified at the Enumeration not the EnumerationLiteral level (which would allow the different alternatives for an Enumeration to have different types). The only useful capability on EnumerationLiteral is that it should have a name (which is all that Infrastructure allows), and optionally a value. The latter should be specified in the same way as the default value of a Property. Proposed resolution: EnumerationLiteral should inherit only from NamedElement. It should have an optional property: value:ValueSpecification [0..1] The Notation section should describe how to indicate the value, which should be the same as for the default value of a Property Resolution: Revised Text: Actions taken: February 14, 2005: received issue February 14, 2005: received issue Discussion: Disposition: Deferred to UML 2.4 RTF End of Annotations:===== ubject: UML2/Super section 7.3.17 /EnumerationLiteral should not be an InstanceSpecification Date: Mon, 14 Feb 2005 13:29:48 -0500 X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: UML2/Super section 7.3.17 /EnumerationLiteral should not be an InstanceSpecification Thread-Index: AcUSwToWhC2RQI1uQiiqHnts53H+2w== From: "Pete Rivett" To: X-Virus-Scanned: by amavisd-new at sentraliant.com In Super (but not Infra) EnumerationLiteral inherits from InstanceSpecification. This allows a single Enumeration value e.g. 'private' or 'red' to have many slots (InstanceSpecification.slot). Moreover it allows the value to have many classifiers (InstanceSpecification.classifier) independently of the Enumeration that owns the EnumerationLiteral - it does not make any sense to have this redundant property. All that is needed surely is a value: so if anything EnumerationLiteral should inherit from ValueSpecification. However this still inherits too much: for example an EnumerationLiteral should be owned only by its Enumeration and so should not inherit from PackageableElement as does ValueSpecification. Furthermore inheriting from TypedElement seems to introduce capability that is not catered for in the notation etc: if anything the underlying type for an Enumeration should be specified at the Enumeration not the EnumerationLiteral level (which would allow the different alternatives for an Enumeration to have different types). The only useful capability on EnumerationLiteral is that it should have a name (which is all that Infrastructure allows), and optionally a value. The latter should be specified in the same way as the default value of a Property. Proposed resolution: EnumerationLiteral should inherit only from NamedElement. It should have an optional property: value:ValueSpecification [0..1] The Notation section should describe how to indicate the value, which should be the same as for the default value of a Property. Pete Rivett (mailto:pete.rivett@adaptive.com) CTO, Adaptive Inc. Dean Park House, 8-10 Dean Park Crescent, Bournemouth, BH1 1HL, UK Tel: +44 (0)1202 449419 Fax: +44 (0)1202 449448 http://www.adaptive.com