Issue 7161: UML 2 Super/Interactions/Need constraints that cover multiple Lifelines (uml2-rtf) Source: KDM Analytics (Dr. Nikolai Mansourov, nick(at)kdmanalytics.com) Nature: Uncategorized Issue Severity: Summary: Consider an Interaction that describes collaboration of several parts of a classifier that owns some attributes. None of the parts own this attribute. I need to be able to describe a constraint, involving these attributes. Or when the overall classifier has a State Machine describing its overall behavior, and we want to refer to these states in an Interaction. In order to achieve this, it would be desirable to use: 1. A guard that covers more than one lifeline (represents a guard involving the attributes, "global" to the set of Lifelines) 2. A state symbol that covers more than one lifeline (represents a state invariant refering to the state of some state machine "global" to the set of Lifelines) 3. A state invariant covering more than one lifeline (represents an invariant involving the attributes, "global" to the set of Lifelines) Resolution: Discussion: Although this is a reasonable feature to request, it is an enhancement that exceeds the scope of the RTF. One of the main issues with it is that the semantics of defining such constraints in a distributed environment are not simple and require some serious consideration. The issue here is that Interactions consider all lifelines as potentially concurrent, and the restrictions on guards reflect this to prevent specifying distributed decisions that would imply implicit synchronization. The fact is, however, that many systems are such that it is known that the lifelines are not concurrent and checking remotely or on enclosing objects is not really hazardous. The problem is that we do not have a good way to define this in the specification. This is of course not dependent upon Interactions, but is a feature of all of UML. There seems to be a need to define object groups that share the same "thread" and are only pseudo-concurrent. If we had had such a construct, the guard could cover any subset of such a "same-thread-set-of-objects". Disposition: Closed Out Of Scope Revised Text: Actions taken: March 15, 2004: received issue April 26, 2010: closed issue April 26, 2010: closed issue Discussion: Although this is a reasonable feature to request, it is an enhancement that exceeds the scope of the FTF. One of the main issues with it is that the semantics of defining such constraints in a distributed environment are not simple and require some serious consideration. The issue here is that Interactions consider all lifelines as potentially concurrent, and the restrictions on guards reflect this to prevent specifying distributed decisions that would imply implicit synchronization. The fact is, however, that many systems are such that it is known that the lifelines are not concurrent and checking remotely or on enclosing objects is not really hazardous. The problem is that we do not have a good way to define this in the specification. This is of course not dependent upon Interactions, but is a feature of all of UML. There seems to be a need to define object groups that share the same “thread” and are only pseudo-concurrent. If we had had such a construct, the guard could cover any subset of such a “same-thread-set-of-objects”. End of Annotations:===== ubject: UML 2 Super/Interactions/Need constraints that cover multiple Lifelines Date: Mon, 15 Mar 2004 19:44:12 -0500 X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: UML 2 Super/Interactions/missing OCL constraints Thread-Index: AcOiP5KGfYbXFBuaSOy1/0sMnACRTRSoEaNgAABi6hAAAMdhAAAApBpgBYHdeBA= From: "Nikolai Mansurov" To: Cc: "Branislav Selic (E-mail)" X-MIME-Autoconverted: from quoted-printable to 8bit by amethyst.omg.org id i2G0gAre021691 Consider an Interaction that describes collaboration of several parts of a classifier that owns some attributes. None of the parts own this attribute. I need to be able to describe a constraint, involving these attributes. Or when the overall classifier has a State Machine describing its overall behavior, and we want to refer to these states in an Interaction. In order to achieve this, it would be desirable to use: 1. A guard that covers more than one lifeline (represents a guard involving the attributes, "global" to the set of Lifelines) 2. A state symbol that covers more than one lifeline (represents a state invariant refering to the state of some state machine "global" to the set of Lifelines) 3. A state invariant covering more than one lifeline (represents an invariant involving the attributes, "global" to the set of Lifelines) Date: Tue, 16 Mar 2004 20:54:54 +0100 From: Oystein Haugen User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax) X-Accept-Language: en-us, en To: Juergen Boldt CC: issues@omg.org, uml2-superstructure-ftf@omg.org Subject: Re: issues 7160 - 7162 -- UML 2.0 Superstructure FTF issues X-MailScanner-Information: This message has been scanned for viruses/spam. Contact postmaster@uio.no if you have questions about this scanning X-UiO-MailScanner: No virus found X-UiO-Spam-info: not spam, SpamAssassin (score=0, required 12) Juergen & others Issue 7160 I agree with this one and the suggested resolution. Issue 7161 I completely DISAGREE with the suggested solution here. The desire comes up every now and then, but as long as the lifelines must be considered concurrent any guard across more than one lifeline will have serious interpretation problems. There will be potential concurrent access problems and synchronization problems. Please, please do not go down this road now. Thanks, Oystein Juergen Boldt wrote: This is issue # 7160 UML 2 Super/Interactions/Alternative with all false guards Semantics of the alternative CombinedFragment (page 410) does not describe what happens if all branches are guarded, and all guards are false. Does this means: a) empty trace, or b) (dynamically) invalid trace ? I suggest to add a sentence, defining such traces as dynamically invalid. This will be consistent with the behavior of a ConditionalNode in Activities (page 313): "if no test section yields a true value, then no body section is executed; this may be a semantic error if output values are expected from the conditional node". =========================================================== This is issue # 7161 UML 2 Super/Interactions/Need constraints that cover multiple Lifelines Consider an Interaction that describes collaboration of several parts of a classifier that owns some attributes. None of the parts own this attribute. I need to be able to describe a constraint, involving these attributes. Or when the overall classifier has a State Machine describing its overall behavior, and we want to refer to these states in an Interaction. In order to achieve this, it would be desirable to use: 1. A guard that covers more than one lifeline (represents a guard involving the attributes, "global" to the set of Lifelines) 2. A state symbol that covers more than one lifeline (represents a state invariant refering to the state of some state machine "global" to the set of Lifelines) 3. A state invariant covering more than one lifeline (represents an invariant involving the attributes, "global" to the set of Lifelines) ================================================================== -- Dr. Oystein Haugen Associate Professor Department of Informatics, University of Oslo P.O. Box 1080 Blindern N-0316 Oslo Norway Tel: +47 22 85 27 37 (office) Tel: +47 913 90 914 (mobile) http://folk.uio.no/oysteinh Date: Tue, 16 Mar 2004 16:45:44 -0500 From: Tom Rutt User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6) Gecko/20040113 X-Accept-Language: en-us, en To: Oystein Haugen CC: Juergen Boldt , issues@omg.org, uml2-superstructure-ftf@omg.org Subject: Re: issues 7160 - 7162 -- UML 2.0 Superstructure FTF issues Oystein Haugen wrote: Juergen & others Issue 7160 I agree with this one and the suggested resolution. Issue 7161 I completely DISAGREE with the suggested solution here. The desire comes up every now and then, but as long as the lifelines must be considered concurrent any guard across more than one lifeline will have serious interpretation problems. There will be potential concurrent access problems and synchronization problems. Please, please do not go down this road now. I heartily agree with Oystein on this one. Tom Rutt Fujitsu Thanks, Oystein Juergen Boldt wrote: This is issue # 7160 UML 2 Super/Interactions/Alternative with all false guards Semantics of the alternative CombinedFragment (page 410) does not describe what happens if all branches are guarded, and all guards are false. Does this means: a) empty trace, or b) (dynamically) invalid trace ? I suggest to add a sentence, defining such traces as dynamically invalid. This will be consistent with the behavior of a ConditionalNode in Activities (page 313): "if no test section yields a true value, then no body section is executed; this may be a semantic error if output values are expected from the conditional node". =========================================================== This is issue # 7161 UML 2 Super/Interactions/Need constraints that cover multiple Lifelines Consider an Interaction that describes collaboration of several parts of a classifier that owns some attributes. None of the parts own this attribute. I need to be able to describe a constraint, involving these attributes. Or when the overall classifier has a State Machine describing its overall behavior, and we want to refer to these states in an Interaction. In order to achieve this, it would be desirable to use: 1. A guard that covers more than one lifeline (represents a guard involving the attributes, "global" to the set of Lifelines) 2. A state symbol that covers more than one lifeline (represents a state invariant refering to the state of some state machine "global" to the set of Lifelines) 3. A state invariant covering more than one lifeline (represents an invariant involving the attributes, "global" to the set of Lifelines) ================================================================== -- ---------------------------------------------------- Tom Rutt email: tom@coastin.com; trutt@fsw.fujitsu.com Tel: +1 732 801 5744 Fax: +1 732 774 5133 To: Oystein Haugen Cc: Juergen Boldt , uml2-superstructure-ftf@omg.org Subject: Re: issues 7160 - 7162 -- UML 2.0 Superstructure FTF issues X-Mailer: Lotus Notes Release 6.0.2CF1 June 9, 2003 From: Branislav Selic Date: Tue, 16 Mar 2004 17:34:31 -0500 X-MIMETrack: Serialize by Router on D25ML05/25/M/IBM(Release 6.0.2CF1|June 9, 2003) at 03/16/2004 17:34:33, Serialize complete at 03/16/2004 17:34:33 Oystein, In the future, please don't respond to (a) issues@omg.org or (b) Juergen Boldt, who is the administrator of the issues database and not the person who raised the issue. Regarding the issue itself: I find it really ironic to hear you complaining about synchronization problems after you insisted in putting in the fully synchronized simple time model into UML. Synchronization complexities were precisely the reason why I had hoped we would not put this thing in, but the response I got was that this is good enough for 90% of users. I am curious why you think that it is OK to ignore these issues on one hand and worry about them on the other? BTW, I agree with the recommendation that this should not go in there now. Perhaps in the next release of UML, with all the subtleties properly taken care of. While we are at it, perhaps we should get rid of the "simpleton's time model" as well? ;-) Bran Oystein Haugen 03/16/2004 02:54 PM To Juergen Boldt cc issues@omg.org, uml2-superstructure-ftf@omg.org Subject Re: issues 7160 - 7162 -- UML 2.0 Superstructure FTF issues Juergen & others Issue 7160 I agree with this one and the suggested resolution. Issue 7161 I completely DISAGREE with the suggested solution here. The desire comes up every now and then, but as long as the lifelines must be considered concurrent any guard across more than one lifeline will have serious interpretation problems. There will be potential concurrent access problems and synchronization problems. Please, please do not go down this road now. Thanks, Oystein Juergen Boldt wrote: > This is issue # 7160 > > UML 2 Super/Interactions/Alternative with all false guards > > Semantics of the alternative CombinedFragment (page 410) does not > describe what happens if all branches are guarded, and > all guards are false. > Does this means: a) empty trace, or b) (dynamically) invalid trace ? > I suggest to add a sentence, defining such traces as dynamically invalid. > This will be consistent with the behavior of a ConditionalNode in > Activities (page 313): "if no test section yields a true value, then > no body section is executed; this may be a semantic error if output > values are expected from the conditional node". > > =========================================================== > > This is issue # 7161 > > UML 2 Super/Interactions/Need constraints that cover multiple Lifelines > > Consider an Interaction that describes collaboration of several parts > of a classifier that owns some attributes. > None of the parts own this attribute. I need to be able to describe a > constraint, involving these attributes. > > > Or when the overall classifier has a State Machine describing its > overall behavior, and we want to refer to these states in an Interaction. > > > In order to achieve this, it would be desirable to use: > 1. A guard that covers more than one lifeline (represents a guard > involving the attributes, "global" to the set of Lifelines) > 2. A state symbol that covers more than one lifeline (represents a > state invariant refering to the state of some state machine "global" > to the set of Lifelines) > 3. A state invariant covering more than one lifeline (represents an > invariant involving the attributes, "global" to the set of Lifelines) > > ================================================================== > -- Dr. Oystein Haugen Associate Professor Department of Informatics, University of Oslo P.O. Box 1080 Blindern N-0316 Oslo Norway Tel: +47 22 85 27 37 (office) Tel: +47 913 90 914 (mobile) http://folk.uio.no/oysteinh Date: Wed, 17 Mar 2004 09:03:12 +0100 From: Oystein Haugen User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax) X-Accept-Language: en-us, en To: Branislav Selic CC: Oystein Haugen , uml2-superstructure-ftf@omg.org Subject: Re: issues 7160 - 7162 -- UML 2.0 Superstructure FTF issues X-MailScanner-Information: This message has been scanned for viruses/spam. Contact postmaster@uio.no if you have questions about this scanning X-UiO-MailScanner: No virus found X-UiO-Spam-info: not spam, SpamAssassin (score=1.119, required 12, HTML_20_30 0.47, HTML_MESSAGE 0.00, HTML_TAG_EXISTS_TBODY 0.10, HTML_TITLE_EMPTY 0.54) X-UiO-Spam-score: s Bran I appologize for responding in this uncontrolled manner - it must have been because I got slightly upset about the guard issue. As for the simple time model, I must admit I do not understand why that is "fully synchronized". I believe we have different interpretation of these terms, but I also believe this is not the right discussion of that model. As for the issue at hand, with multi-lifeline guards etc., I believe we agree that the potential problems are with sequencing of events rather than time. Thanks, Oystein Branislav Selic wrote: Oystein, In the future, please don't respond to (a) issues@omg.org or (b) Juergen Boldt, who is the administrator of the issues database and not the person who raised the issue. Regarding the issue itself: I find it really ironic to hear you complaining about synchronization problems after you insisted in putting in the fully synchronized simple time model into UML. Synchronization complexities were precisely the reason why I had hoped we would not put this thing in, but the response I got was that this is good enough for 90% of users. I am curious why you think that it is OK to ignore these issues on one hand and worry about them on the other? BTW, I agree with the recommendation that this should not go in there now. Perhaps in the next release of UML, with all the subtleties properly taken care of. While we are at it, perhaps we should get rid of the "simpleton's time model" as well? ;-) Bran Oystein Haugen 03/16/2004 02:54 PM To Juergen Boldt cc issues@omg.org, uml2-superstructure-ftf@omg.org Subject Re: issues 7160 - 7162 -- UML 2.0 Superstructure FTF issues Juergen & others Issue 7160 I agree with this one and the suggested resolution. Issue 7161 I completely DISAGREE with the suggested solution here. The desire comes up every now and then, but as long as the lifelines must be considered concurrent any guard across more than one lifeline will have serious interpretation problems. There will be potential concurrent access problems and synchronization problems. Please, please do not go down this road now. Thanks, Oystein Juergen Boldt wrote: > This is issue # 7160 > > UML 2 Super/Interactions/Alternative with all false guards > > Semantics of the alternative CombinedFragment (page 410) does not > describe what happens if all branches are guarded, and > all guards are false. > Does this means: a) empty trace, or b) (dynamically) invalid trace ? > I suggest to add a sentence, defining such traces as dynamically invalid. > This will be consistent with the behavior of a ConditionalNode in > Activities (page 313): "if no test section yields a true value, then > no body section is executed; this may be a semantic error if output > values are expected from the conditional node". > > =========================================================== > > This is issue # 7161 > > UML 2 Super/Interactions/Need constraints that cover multiple Lifelines > > Consider an Interaction that describes collaboration of several parts > of a classifier that owns some attributes. > None of the parts own this attribute. I need to be able to describe a > constraint, involving these attributes. > > > Or when the overall classifier has a State Machine describing its > overall behavior, and we want to refer to these states in an Interaction. > > > In order to achieve this, it would be desirable to use: > 1. A guard that covers more than one lifeline (represents a guard > involving the attributes, "global" to the set of Lifelines) > 2. A state symbol that covers more than one lifeline (represents a > state invariant refering to the state of some state machine "global" > to the set of Lifelines) > 3. A state invariant covering more than one lifeline (represents an > invariant involving the attributes, "global" to the set of Lifelines) > > ================================================================== > -- Dr. Oystein Haugen Associate Professor Department of Informatics, University of Oslo P.O. Box 1080 Blindern N-0316 Oslo Norway Tel: +47 22 85 27 37 (office) Tel: +47 913 90 914 (mobile) http://folk.uio.no/oysteinh -- Dr. Oystein Haugen Associate Professor Department of Informatics, University of Oslo P.O. Box 1080 Blindern N-0316 Oslo Norway Tel: +47 22 85 27 37 (office) Tel: +47 913 90 914 (mobile) http://folk.uio.no/oysteinh To: Oystein Haugen Cc: Oystein Haugen , uml2-superstructure-ftf@omg.org Subject: Re: issues 7160 - 7162 -- UML 2.0 Superstructure FTF issues X-Mailer: Lotus Notes Release 6.0.2CF1 June 9, 2003 From: Branislav Selic Date: Wed, 17 Mar 2004 07:57:06 -0500 X-MIMETrack: Serialize by Router on D25ML05/25/M/IBM(Release 6.0.2CF1|June 9, 2003) at 03/17/2004 07:57:13, Serialize complete at 03/17/2004 07:57:13 The "simple" time model assumes that time is fully synchronized across all lifelines (there is no notion of time source or time value location in that model) -- which is a special form of the general synchronization problem that you are trying to avoid here. As you well know, this is a real sore point with me. And as I speak with people who are trying to use this, my worst fears about it are coming true. They are saying that this is UML's model of time (after all, it's the only one) and it is (a) being criticized and (b) being used naively. Even had we put in big disclaimers in large red letters in the spec, this was bound to happen. Bran Oystein Haugen 03/17/2004 03:03 AM To Branislav Selic/Ottawa/IBM@IBMCA cc Oystein Haugen , uml2-superstructure-ftf@omg.org Subject Re: issues 7160 - 7162 -- UML 2.0 Superstructure FTF issues Bran I appologize for responding in this uncontrolled manner - it must have been because I got slightly upset about the guard issue. As for the simple time model, I must admit I do not understand why that is "fully synchronized". I believe we have different interpretation of these terms, but I also believe this is not the right discussion of that model. As for the issue at hand, with multi-lifeline guards etc., I believe we agree that the potential problems are with sequencing of events rather than time. Thanks, Oystein Branislav Selic wrote: Oystein, In the future, please don't respond to (a) issues@omg.org or (b) Juergen Boldt, who is the administrator of the issues database and not the person who raised the issue. Regarding the issue itself: I find it really ironic to hear you complaining about synchronization problems after you insisted in putting in the fully synchronized simple time model into UML. Synchronization complexities were precisely the reason why I had hoped we would not put this thing in, but the response I got was that this is good enough for 90% of users. I am curious why you think that it is OK to ignore these issues on one hand and worry about them on the other? BTW, I agree with the recommendation that this should not go in there now. Perhaps in the next release of UML, with all the subtleties properly taken care of. While we are at it, perhaps we should get rid of the "simpleton's time model" as well? ;-) Bran Oystein Haugen 03/16/2004 02:54 PM To Juergen Boldt cc issues@omg.org, uml2-superstructure-ftf@omg.org Subject Re: issues 7160 - 7162 -- UML 2.0 Superstructure FTF issues Juergen & others Issue 7160 I agree with this one and the suggested resolution. Issue 7161 I completely DISAGREE with the suggested solution here. The desire comes up every now and then, but as long as the lifelines must be considered concurrent any guard across more than one lifeline will have serious interpretation problems. There will be potential concurrent access problems and synchronization problems. Please, please do not go down this road now. Thanks, Oystein Juergen Boldt wrote: > This is issue # 7160 > > UML 2 Super/Interactions/Alternative with all false guards > > Semantics of the alternative CombinedFragment (page 410) does not > describe what happens if all branches are guarded, and > all guards are false. > Does this means: a) empty trace, or b) (dynamically) invalid trace ? > I suggest to add a sentence, defining such traces as dynamically invalid. > This will be consistent with the behavior of a ConditionalNode in > Activities (page 313): "if no test section yields a true value, then > no body section is executed; this may be a semantic error if output > values are expected from the conditional node". > > =========================================================== > > This is issue # 7161 > > UML 2 Super/Interactions/Need constraints that cover multiple Lifelines > > Consider an Interaction that describes collaboration of several parts > of a classifier that owns some attributes. > None of the parts own this attribute. I need to be able to describe a > constraint, involving these attributes. > > > Or when the overall classifier has a State Machine describing its > overall behavior, and we want to refer to these states in an Interaction. > > > In order to achieve this, it would be desirable to use: > 1. A guard that covers more than one lifeline (represents a guard > involving the attributes, "global" to the set of Lifelines) > 2. A state symbol that covers more than one lifeline (represents a > state invariant refering to the state of some state machine "global" > to the set of Lifelines) > 3. A state invariant covering more than one lifeline (represents an > invariant involving the attributes, "global" to the set of Lifelines) > > ================================================================== > -- Dr. Oystein Haugen Associate Professor Department of Informatics, University of Oslo P.O. Box 1080 Blindern N-0316 Oslo Norway Tel: +47 22 85 27 37 (office) Tel: +47 913 90 914 (mobile) http://folk.uio.no/oysteinh -- Dr. Oystein Haugen Associate Professor Department of Informatics, University of Oslo P.O. Box 1080 Blindern N-0316 Oslo Norway Tel: +47 22 85 27 37 (office) Tel: +47 913 90 914 (mobile) http://folk.uio.no/oysteinh vi issue6181