Issue 6237: State list (uml2-superstructure-ftf) Source: University of Oslo (Prof. Birger Møller-Pedersen, birger(at)ifi.uio.no) Nature: Revision Severity: Significant Summary: Statelist has to be done differently, as transitions outgoing from a junction point cannot have triggers Resolution: see above Revised Text: Actions taken: September 8, 2003: received issue March 8, 2005: closed issue Discussion: Currently there is a constraint that over-constrains all transitions outgoing pseudostates not to have triggers. This disables using junctions to factor common paths containing triggers. This factoring is useful for explicit usage or representing the semantics for the statelist notation. In addition, join pseudostates are also commonly followed by transitions with triggers. Therefore, the proposed resolution is to relax constraint [5] for transitions to exclude junction and join pseudostates: [5] Transitions outgoing pseudostates may not have a trigger. self.source.oclIsKindOf(Pseudostate) implies (self.trigger->isEmpty)) To: [5] Transitions outgoing pseudostates other than junction and join may not have a trigger. self.source.oclIsKindOf(Pseudostate) and ((self.source.kind <> #junction) and (self.source.kind <> #join)) implies (self.trigger->isEmpty)) End of Annotations:===== UML 2.0 Superstructure FTF Resolution proposals for Statemachines / Ballot 12 OMG Issue 6237 Title: State list Source: Ericsson (Mr. Birger Moller-Pedersen, mailto:%20birger.moller-pedersen@eto.ericsson.se%20birger.moller-pedersen@ericsson.com) Summary: Statelist has to be done differently, as transitions outgoing from a junction point cannot have triggers Discussion: Currently there is a constraint that over-constrains all transitions outgoing pseudo states not to have triggers. This disables using junctions to factor common paths containing triggers. This factoring is useful for explicit usage or representing the semantics for the statelist notation. In addition, join pseudo-states are also commonly followed by transitions with triggers. Therefore, the proposed resolution is to relax constraint [5] for transitions to exclude junction and join pseudo-states: [5] Transitions outgoing pseudostates may not have a trigger. self.source.oclIsKindOf(Pseudostate) implies (self.trigger->isEmpty)) To: [5] Transitions outgoing pseudostates other than junction and join may not have a trigger. self.source.oclIsKindOf(Pseudostate) implies (((self.source.oclAsType(Pseudostate).kind <> #junction) and (self.source.oclAsType(Pseudostate).kind <> #join) ) implies (self.trigger->isEmpty)) Disposition: Resolved To: "Eran Gery" Cc: "Guus Ramackers \(E-mail\)" , uml2-superstructure-ftf@omg.org Subject: Re: 4 statemachine resolutions for ballot 12 (11?) X-Mailer: Lotus Notes Release 6.0.2CF1 June 9, 2003 From: Branislav Selic Date: Wed, 31 Mar 2004 04:38:53 -0500 X-MIMETrack: Serialize by Router on D25ML05/25/M/IBM(Release 6.0.2CF1|June 9, 2003) at 03/31/2004 04:39:11 Eran, I agree with your proposed changes but I made a few modifications to them, mostly to clarify the changes and to correct a few minor English grammar issues and style points. I have also included the updated Table 20 for issue 6381. (NB: the specifications on what needs to be changed has to be more specific than had been done in past RTFs. In fact, the precise text of the change and/or precise specifications on where the change is to be made must be provided.) Specifically: - I have simplified the OCL constraint for resolution 6237 -- note that OCL assumes a left-to-right evaluation so that there is no need to use typecasting. - I do not believe that you are using the term "icon" properly -- which, I believe, represents a stand-alone symbolic renderings of some concept (e.g., such as the icons on your Windows desktop). Therefore, the notation for elements such as class boxex, send actions, and receive actions are not icons: they are full-fledged graphical constructs that can be joined to other similar constructs according to some syntactic rules. Therefore, I have renamed the style of notation for transitions to "action-oriented" notation rather than "transition iconic". If you agree with these changes and the ballot is postponed and no one else objects, we can include these in ballot 11. Attached is my modified version of your resolutions: Cheers, Bran Selic Distinguished Engineer IBM Rational Software 770 Palladium Drive Kanata, Ontario, Canada K2V 1C8 ph. (613) 591-7915 fax (613) 599-3912 e-mail: bselic@ca.ibm.com "Eran Gery" 03/30/2004 09:06 AM To Branislav Selic/Ottawa/IBM@IBMCA, "Guus Ramackers \(E-mail\)" cc Subject 4 statemachine resolutions for ballot 12 (11?) Bran/Guus Attached is a resolution prposal for 4 statemachine issues I originally intended for ballot 11, but since none of them is trivial, I thought at this point they better be submitted for discussion for ballot 12. However I'm fine submitting them to 11 if you find appropriate and/or nobody objects. Thanks, Eran[attachment "SM-proposals-ballot12.doc" deleted by Branislav Selic/Ottawa/IBM] Smachine-ballot11-12.doc UML 2.0 Superstructure FTF Resolution proposals for Statemachines / Ballot 12 OMG Issue 6237 Title: State list Source: Ericsson (Mr. Birger Moller-Pedersen, mailto:%20birger.moller-pedersen@eto.ericsson.se%20birger.moller-pedersen@ericsson.com) Summary: Statelist has to be done differently, as transitions outgoing from a junction point cannot have triggers Discussion: Currently there is a constraint that over-constrains all transitions outgoing pseudo states not to have triggers. This disables using junctions to factor common paths containing triggers. This factoring is useful for explicit usage or representing the semantics for the statelist notation. In addition, join pseudo-states are also commonly followed by transitions with triggers. Therefore, the proposed resolution is to relax constraint [5] for transitions to exclude junction and join pseudo-states: [5] Transitions outgoing pseudostates may not have a trigger. self.source.oclIsKindOf(Pseudostate) implies (self.trigger->isEmpty)) To: [5] Transitions outgoing pseudostates other than junction and join may not have a trigger. self.source.oclIsKindOf(Pseudostate) and ((self.source.kind <> #junction) and (self.source.kind <> #join)) implies (self.trigger->isEmpty)) self.source.oclIsKindOf(Pseudostate) and ((self.source.kind <> #junction) and (self.source.kind <> #join)) implies (self.trigger->isEmpty)) OMG Issue 6237 Title: State list Source: Ericsson (Mr. Birger Moller-Pedersen, mailto:%20birger.moller-pedersen@eto.ericsson.se%20birger.moller-pedersen@ericsson.com) Summary: Statelist has to be done differently, as transitions outgoing from a junction point cannot have triggers Discussion: Currently there is a constraint that over-constrains all transitions outgoing pseudo states not to have triggers. This disables using junctions to factor common paths containing triggers. This factoring is useful for explicit usage or representing the semantics for the statelist notation. In addition, join pseudo-states are also commonly followed by transitions with triggers. Therefore, the proposed resolution is to relax constraint [5] for transitions to exclude junction and join pseudo-states: [5] Transitions outgoing pseudostates may not have a trigger. self.source.oclIsKindOf(Pseudostate) implies (self.trigger->isEmpty)) To: [5] Transitions outgoing pseudostates other than junction and join may not have a trigger. self.source.oclIsKindOf(Pseudostate) and ((self.source.kind <> #junction) and (self.source.kind <> #join)) implies (self.trigger->isEmpty)) self.source.oclIsKindOf(Pseudostate) and ((self.source.kind <> #junction) and (self.source.kind <> #join)) implies (self.trigger->isEmpty)) Disposition: Resolved OMG Issue 6381 OMG Issue 6237 Title: State list Source: Ericsson (Mr. Birger Moller-Pedersen, mailto:%20birger.moller-pedersen@eto.ericsson.se%20birger.moller-pedersen@ericsson.com) Summary: Statelist has to be done differently, as transitions outgoing from a junction point cannot have triggers Discussion: Currently there is a constraint that over-constrains all transitions outgoing pseudo states not to have triggers. This disables using junctions to factor common paths containing triggers. This factoring is useful for explicit usage or representing the semantics for the statelist notation. In addition, join pseudo-states are also commonly followed by transitions with triggers. Therefore, the proposed resolution is to relax constraint [5] for transitions to exclude junction and join pseudo-states: [5] Transitions outgoing pseudostates may not have a trigger. self.source.oclIsKindOf(Pseudostate) implies (self.trigger->isEmpty)) To: [5] Transitions outgoing pseudostates other than junction and join may not have a trigger. self.source.oclIsKindOf(Pseudostate) and ((self.source.kind <> #junction) and (self.source.kind <> #join)) implies (self.trigger->isEmpty)) self.source.oclIsKindOf(Pseudostate) and ((self.source.kind <> #junction) and (self.source.kind <> #join)) implies (self.trigger->isEmpty)) Disposition: Resolved