Issue 15524: Rule Overriding in QVTr (qvt-rtf) Source: Model Driven Solutions (Dr. Edward Willink, ed(at)willink.me.uk) Nature: Uncategorized Issue Severity: Summary: You have reached the edge of the specification as written. 1: Yes 2: Yes 3: Yes 4: Yes I gave some consideration to this for UMLX. I felt that an abstract 'rule' could define a 'subrule' obligation, which would require an identical match signature, since if the override was narrower it would not fulfill the obligation and if it was wider the additional width would not be permitted by the invocation of the abstract 'rule'. I felt that all concrete rules should always be matched to ensure that addition of extended functionality did not change previous behaviour. This complies with UMLX's all maximal matches philosophy. Keys in QVTr, Evolution Ids in UMLX can ensure that derived rules reuse inherited matches. I think a transformation being both a package and a class introduces some difficult compatibility issues to be studied. Transformation extension is also poorly defined giving additional imprecision when considering the combination of transformation extension and rule override. My ideas for UMLX were not complete but I think that they may be sounder than QVTr's. Resolution: This issue was inadvertently raised from Issue 15417 correspondence. Close it as merged even though Issue 15417 needs further work. Disposition: See issue 15417 for disposition Revised Text: Actions taken: August 13, 2010: received issue July 15, 2014: closed issue Discussion: End of Annotations:===== ubject: Re: Rule Overriding in QVTr To: Juergen Boldt X-Mailer: Lotus Notes Release 7.0 HF277 June 21, 2006 From: Maged Elaasar Date: Wed, 15 Sep 2010 14:34:47 -0400 X-MIMETrack: Serialize by Router on D25ML03/25/M/IBM(Release 8.0.1|February 07, 2008) at 09/15/2010 14:35:00 another one... Ed Willink Ed Willink 08/13/2010 01:28 PM To Maged Elaasar/Ottawa/IBM@IBMCA cc qvt-rtf@omg.org Subject Re: Rule Overriding in QVTr Hi Maged [Juergen: Another Issue] You have reached the edge of the specification as written. 1: Yes 2: Yes 3: Yes 4: Yes I gave some consideration to this for UMLX. I felt that an abstract 'rule' could define a 'subrule' obligation, which would require an identical match signature, since if the override was narrower it would not fulfill the obligation and if it was wider the additional width would not be permitted by the invocation of the abstract 'rule'. I felt that all concrete rules should always be matched to ensure that addition of extended functionality did not change previous behaviour. This complies with UMLX's all maximal matches philosophy. Keys in QVTr, Evolution Ids in UMLX can ensure that derived rules reuse inherited matches. I think a transformation being both a package and a class introduces some difficult compatibility issues to be studied. Transformation extension is also poorly defined giving additional imprecision when considering the combination of transformation extension and rule override. My ideas for UMLX were not complete but I think that they may be sounder than QVTr's. Ed On 13/08/2010 17:31, Maged Elaasar wrote: Hi, The abstract syntax of QVTr allows a rule to be an override of another rule. Rule::overrides: Rule [0..1] The rule that this rule overrides. The concrete syntax of QVT allows it too: ::= ['top'] 'relation' ['overrides' ] '{' .... '}' However, the only semantics I can see for 'overrides' is in clause 7.11.1.4 that says: "A rule may conditionally override another rule. The overriding rule is executed in place of the overridden rule when the overriding conditions are satisfied. The exact semantics of overriding are subclass specific. " Questions: 1- Whtat are the overriding conditions? are they implied or specified and if so how? 2- I have not seen any other discussion of overrding in a subclass or Rule so not sure what is meant by "The exact semantics of overriding are subclass specific"? 3- I have not seen any example of using 'overrides' what so ever in the spec, shouldn't there be one? 4 - What is the semantics of overriding? is it related to inheritance in the OO sense ? I think QVTr needs a good "inheritance" model where you can relations can be called polymorphically. Thanks, Maged No virus found in this incoming message. Checked by AVG - www.avg.com Version: 9.0.851 / Virus Database: 271.1.1/3067 - Release Date: 08/12/10 19:34:00 pic26292.gif