Issue 8038: IsReadOnly constriant (uml2-rtf) Source: NIST (Dr. Conrad Bock, conrad.bock(at)nist.gov) Nature: Revision Severity: Minor Summary: done) IsReadOnly constriant Constraint on StructuralFeature::isReadOnly: if true and there is no intialization value, then the lower multiplicity must be zero. Resolution: Revised Text: Actions taken: December 30, 2004: received issue August 23, 2006: closed issue Discussion: This is overconstrained, because the default value could be set dynamically before initialization, rather than a default value. As long as this happens before initialization is over, there is no violation of multiplicity. In any case, UML doesn't enforce when constraints are evaluated or inconsistencies repaired. Disposition: Closed, no change End of Annotations:===== m: webmaster@omg.org Date: 30 Dec 2004 15:30:25 -0500 To: Subject: Issue/Bug Report -------------------------------------------------------------------------------- Name: Conrad Bock Company: NIST mailFrom: conrad.bock@nist.gov Notification: No Specification: UML 2 Super Section: Classes FormalNumber: ptc/04-10-02 Version: 2.0 RevisionDate: 04-10-02 Page: - Nature: Revision Severity: Minor HTTP User Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322) Description (done) IsReadOnly constriant Constraint on StructuralFeature::isReadOnly: if true and there is no intialization value, then the lower multiplicity must be zero. Issue 8038: Is Read Only? constriant Issue summary (done) Is Read Only? constriant Constraint on Structural Feature?::isReadOnly: if true and there is no intialization value, then the lower multiplicity must be zero Discussion This looks like a Classes issue. Is the Classes WG using the wiki now? -- ConradBock - 21 Jul 2005 A Structural Feature? has no initial value. That's a feature of a property (defaultValue). Therefore I assume that this issue refers to Kernel::Property. -- TimWeilkiens - 27 Jul 2005 I don't agree with this one. The intial value could be set dynamically by a constructor, rather than a default value. As long as this happens before initialization is over, there is no violation of multiplicity. In any case, UML doesn't enforce when constraints are evaluated or inconsistencies repaired. -- ConradBock - 21 Jul 2005 Revised Test Section 7.3.44, Constraints: Add [10] A read-only property with no default value must have a lower multiplicity of 0. self.isReadOnly and self.defaultValue.isEmpty() implies self.lower = 0 Resolution Resolved RtfIssue1000008894 (20 Jul 2005 - 15:28 - NEW - ThomasWeigert) Issue 8038: Is Read Only? constriant Issue summary (done) Is Read Only? constriant Constraint on Structural Feature?::isReadOnly: if true and there is no intialization value, then the lower multiplicity must be zero Discussion This looks like a Classes issue. Is the Classes WG using the wiki now? -- ConradBock - 21 Jul 2005 A Structural Feature? has no initial value. That's a feature of a property (defaultValue). Therefore I assume that this issue refers to Kernel::Property. -- TimWeilkiens - 27 Jul 2005 I don't agree with this one. The intial value could be set dynamically by a constructor, rather than a default value. As long as this happens before initialization is over, there is no violation of multiplicity. In any case, UML doesn't enforce when constraints are evaluated or inconsistencies repaired. -- ConradBock - 21 Jul 2005 Revised Test Section 7.3.44, Constraints: Add [10] A read-only property with no default value must have a lower multiplicity of 0. self.isReadOnly and self.defaultValue.isEmpty() implies self.lower = 0 Resolution Resolved Reply-To: From: "Conrad Bock" To: Subject: RE: Draft ballot 7 -- please review Date: Tue, 2 Aug 2005 15:36:09 -0400 X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0) Hi Bran, Comments on draft ballot 7. Conrad - Issue 8021: Section: Classes The discussion says "There are no constraints or any other connection between properties B::aend and SubB::subA", but there must be. For example, if there is an instance of SubB, and you navigate from it along the inherited B::aend, the result should be the instances of A related by that association, including the ones created on instances of SubA with SubB::subA. How can it have this semantics if B::aend and SubB::subA aren't related? Needs more discussion, especially in relation to the text references in Association Semantics, see 8023 below. - Issue 8023: Association specialization semantics This didn't address the issues that some of the text applies to Generalization. The cited text, including the proposed revision, is especially confusing because the semantics of Generalization in UML is that all the instances of the subtype are instances of the supertype, so subtyping in UML implies subsetting. It is not necessarily proper subsetting, as the cited text explains, but that is a minor point. Subsetting/specialization in UML can be achieved by subtyping (adding attributes, etc), but can only be done by adding constraints to the subtype. In particular, for association classes, the user should be able to specialize an association class with another association class with the same semantics as to subsetting ends. Should discuss more. - Issue 8028: create dependency Figures 103 and 121 This way of modeling a constructor should be in Classes, which Thomas agrees with. His question on the wiki was about whether compliance levels permitted it, but I can't see why they wouldn't. Seems like it can be moved to Classes with no adverse effect. - Issue 8038: IsReadOnly constriant This is overconstrained, because the default value could be set dynamically before initialization, rather than a default value. As long as this happens before initialization is over, there is no violation of multiplicity. In any case, UML doesn't enforce when constraints are evaluated or inconsistencies repaired. Tim's response on the wiki only came on the 29th, so I hadn't replied, but it was only about the wording I used on the wiki, which I corrected to the above. Never mind that I filed the issue! - Issue 8078: Actor is a specialized Classifier and not BehavioredClassifier There isn't anything I can find on BehavioredClassifier that says it supports interfaces. - Issue 8677: token movement In the revised text, update the new sentence to "For brevity, the specification uses the terms "flow", "pass", "traverse" interchangeably in relation to tokens to mean offering tokens, and movement of tokens when offers are accepted. - Issue 8751: Relations I agree with the filer here. We should discuss more. - Issue 8758: Association in UseCase diagram Can't say there hasn't been enough discussion, but use cases have had associations between them for so long, that it doesn't seem Subject: RE: Ballot 8 - revised (sans 4448 and 8449) Date: Fri, 2 Sep 2005 05:33:36 -0700 X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Ballot 8 - revised (sans 4448 and 8449) Thread-Index: AcWqYeX118Yq0N86SpirjWA9gueHfwFRh5Fg From: "Pete Rivett" To: "Branislav Selic" Cc: X-MIME-Autoconverted: from quoted-printable to 8bit by amethyst.omg.org id j82Cpmhh009145 Adaptive votes YES to all the proposed resolutions, except 6692 to which it ABSTAINS and 8341, 8706 to which it votes NO. 8341: I agree with the sentiment of uniform terminology but don't think it justifies the break in compatibility with the finalized UML 2.0 by changing the Enumeration name. No problem though with adding the extra literal. Interestingly issue 8348 in this same ballot (rightly IMHO) rejects a virtually identical (in spirit) proposed name change: we should have a consistent line on this sort of thing. 8706: I've commented on this before and assumed it would be fixed - and had not noticed it getting into the Ballot until now. The principle is OK but the current text needs more work. I suggest people really try to read and follow what's proposed. Overall if we adopt this resolution it will come back to bite us - with a slew of further issues. - the phrase 'the most detailed namespace" does not have a meaning - the following clause totally loses me however many times I try to read it "only the referenced elements which owned elements are not referenced are filtered (shown) by the profile." - I'm totally confused as to whether you <> an element to show it or hide it. The latter seems counter-intuitive and at odds with the description of Profile::metamodelreference "References a package containing (directly or indirectly) metaclasses that may be extended." - The explanation as a whole is not helped the seeming use of 'filtered' to mean 'shown' (normally 'filtered' is used as in 'filtered out') - I just don't understand what makes Metaclass1 'hidden' in the example given that myProfile as a whole has an import/reference to its package myMetamodel. - What's more Metaclass1 has a stereotype explicitly attached - so how can the stereotype ever be applied to an instance of Metaclass1 if those instances are hidden (apparently instances of Metaclass1 are not hidden if the stereotype has already been applied - but how would anyone apply a stereotype to an instance that is hidden). - The Notation section of Profile should be updated to reflect the use of <> I suggest the cleanest approach rather than struggling with English is to define a helper function 'Profile::availableMetamodelElements()' which explicitly via OCL specifies which elements are available (we should avoid the term 'visible' which has a quite separate meaning). 6692: as previously commented I agree with the 'closed no change' but not the detail of the explanation describing when to use derived attributes and which IMHO does not really answer the issue. ---------- Comments not affecting my vote: Issue 8327 is interesting since the constraint is expressed in terms of diagram (refers to 'above') rather than the metamodel. Though I have not voted against since it is consistent with the existing DestructionEvent. I guess this will get picked up if/when we try to do these in OCL! 8340: Discussion is quite wrong when it says "The specializations of associations are not normally mentioned in the text. ". The document invariably DOES have "{subsets X}" or the incorrect "(Specialized from X)" in the text for Associations as well as in the diagrams. 8345 has it more accurate when it says 'in the Interactions chapter' However I'm not comfortable with closing such quite reasonable issues 'closed no change' in this way. Maybe we should have a general issue 'for Properties add subsets to text and replace specializes by subsets' so that we can close specific issues as a duplicate of this and do the general cleanup at editor convenience. ----------- Editorial fixes --------- 8038: the issue text starts with an odd "done)". I checked and it was in the original from Juergen. I suggest just deleting the "done)" to avoid others having to make the same checks for inadvertently deleted text. 8147: replace 'specialized from' by 'subsets' (unless we're letting these go and cleaning them all up with a global replace) 8152: ditto 8170: 2nd change 'remove MultiplicityElement increment' is a bit unclear: suggest replacing by 'remove MultiplicityElement from Figure 143' or similar 8706: there should not be a paragraph break at the end of the main block of new text - between "For example, he can" and "build a specific..." 8706: the first column in table at end should say "PackageImport" not "PackagedImport", and the 3rd column "metaclassReference" not "metaclasReference" 8706: The Notation should update Table 24 not Table 23 8706: there are grammatical typos which could do with being fixed editorially if we adopt this resolution (which I hope we do not in its current form) 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