Issue 19726: UML 2.5: Property::isConsistentWith() error (uml2-rtf) Source: Simula Research Laboratory (Mr. Bran Selic, selic(at)acm.org) Nature: Clarification Severity: Summary: There appears to be an error in the Property::isConsistentWith() operation (page 155 of the 2.5 spec). As written, it looks like this (with a bit of my editing for readability) : isConsistentWith(redefiningElement : RedefinableElement) : Boolean {redefines RedefinableElement::isConsistentWith()} // The query isConsistentWith() specifies, for any two Properties in a context in which // redefinition is possible, whether redefinition would be logically consistent. A redefining // Property is consistent with a redefined Property if the type of the redefining Property // conforms to the type of the redefined Property, and the multiplicity of the redefining // Property (if specified) is contained in the multiplicity of the redefined Property. pre: redefiningElement.isRedefinitionContextValid(self) body: redefiningElement.oclIsKindOf(Property) and let prop : Property = redefiningElement.oclAsType(Property) in (prop.type.conformsTo(self.type) and ((prop.lowerBound()->notEmpty() and self.lowerBound()->notEmpty()) implies prop.lowerBound() >= self.lowerBound()) and ((prop.upperBound()->notEmpty() and self.upperBound()->notEmpty()) implies prop.lowerBound() <= self.lowerBound()) and (self.isComposite implies prop.isComposite)) The problem is with the second last line, which should read: prop.upperBound() <= self.upperBound()) Seems like a copy-paste error. Resolution: Revised Text: Actions taken: February 20, 2015: received issue Discussion: End of Annotations:===== iler: QUALCOMM Windows Eudora Version 7.1.0.9 Date: Fri, 20 Feb 2015 11:33:24 -0500 To: issues@omg.org, uml2-rtf@omg.org From: Juergen Boldt Subject: issue 19726 -- UML 2.6 RTF issue X-Virus-Scanned: amavisd-new at omg.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:from:date:message-id:subject:to:content-type; bh=2dtV62ykE9d34p8oDvyyjNyVJGFP3hUqldxnJH3dpFE=; b=Ee8HfB21I34M4POLUdGktuhopt+KJsBmIonVn1WCbO7Tm3LeN0oLJGPMN5apUs2aCn s6bRDCuTJXjm3fLXXtFKfTryu+3fNY/ghBxi7fhc1ltTZ0UeK3N9T7OMgCsPwHub3Ay1 PYhiAyWjoAs9TxYEcRK1hJxQV050APpl4V8ycBvudr67NhOS0cvFPcsrBMKCVLHqJwJ2 yCDJDYkZgPuRNQ+Vv6gfPpounGu9Qv3WS/hF83kosFRqee9DvC026KhQNRJyk/D6BIvs qIkHwc3V0OT93pLdODGJpKQTPPGoqM8Wlyg+2ZUtt/sFCsaSt5GjE45KiWK5vcN+L5h8 fUyQ== X-Received: by 10.152.9.230 with SMTP id d6mr7443161lab.16.1424448880728; Fri, 20 Feb 2015 08:14:40 -0800 (PST) Sender: bran.selic@gmail.com From: Bran Selic Date: Fri, 20 Feb 2015 11:14:00 -0500 X-Google-Sender-Auth: RmrCJ66wzxTmmcC9xxnYsjWnXPk Subject: UML 2.5: Property::isConsistentWith() error To: "issues@omg.org" X-Virus-Scanned: amavisd-new at omg.org There appears to be an error in the Property::isConsistentWith() operation (page 155 of the 2.5 spec). As written, it looks like this (with a bit of my editing for readability) : isConsistentWith(redefiningElement : RedefinableElement) : Boolean {redefines RedefinableElement::isConsistentWith()} // The query isConsistentWith() specifies, for any two Properties in a context in which // redefinition is possible, whether redefinition would be logically consistent. A redefining // Property is consistent with a redefined Property if the type of the redefining Property // conforms to the type of the redefined Property, and the multiplicity of the redefining // Property (if specified) is contained in the multiplicity of the redefined Property. pre: redefiningElement.isRedefinitionContextValid(self) body: redefiningElement.oclIsKindOf(Property) and let prop : Property = redefiningElement.oclAsType(Property) in (prop.type.conformsTo(self.type) and ((prop.lowerBound()->notEmpty() and self.lowerBound()->notEmpty()) implies prop.lowerBound() >= self.lowerBound()) and ((prop.upperBound()->notEmpty() and self.upperBound()->notEmpty()) implies prop.lowerBound() <= self.lowerBound()) and (self.isComposite implies prop.isComposite)) The problem is with the second last line, which should read: prop.upperBound() <= self.upperBound()) Seems like a copy-paste error. Bran Juergen Boldt Director, Member Services 109 Highland Ave Needham, MA 02494 USA Tel: +1 (781) 444 0404 x 132 fax: +1 (781) 444 0320 www.omg.org []