Issue 7254: completion transitions (uml2-rtf) Source: (, ) Nature: Clarification Severity: Minor Summary: Suppose that we have two composite states, nested within to two concurrent regions, which both become "complete" as part of the same "run-to-completion" step, and each of the composite states is the source for a completion transition. I.e. within this "run-to-completion" step two completion events are generated. How should these two completion events be dispatched? - Sequentially, in the same sequential order in which they have been generated. - Sequentially, but any ordering is allowed, - Concurrently. I.e. both completion transitions are considered enabled. - other ??? or any of the above Notice that completion transition may have guards, and activity, hence the firing of one of them may cause the other to become no more "enabled". Hence the above three cases may really cause different system behaviors. Resolution: Add a clarification for this case based on the above discussion Revised Text: In clause 14.2.3, mmediately following this sentence: That is, they are dispatched ahead of any pending Event occurrences in the event pool. insert the following clarification: If two or more completion events corresponding to multiple orthogonal Regions occur simultaneously (i.e., as a result of the same Event occurrence), the order in which such completion occurrences are processed is not defined. Actions taken: April 21, 2004: received issue February 20, 2015: closed issue Discussion: In general, the order of dispatching of event occurrences in UML is not specified, allowing it to be customized for different cases. However, completion events for state machines are given priority over other types of event occurrences, meaning that they are dispatched ahead of any other occurrences. It is indeed possible for multiple completion events to occur “simultaneously”, which creates the quandary described in the issue. But, given that there is no formal means of ordering the generation of such events or even defining the “order” of the corresponding regions, there is no meaningful basis for ordering the dispatching of simultaneous completion events. Hence, this will have to remain unspecified. (NB: This is analogous to and consistent with the case where multiple transitions can be enabled by a given event occurrence.) End of Annotations:===== From: webmaster@omg.org Date: 21 Apr 2004 10:16:19 -0400 To: Subject: Issue/Bug Report -------------------------------------------------------------------------------- Name: Franco Mazzanti Company: ISTI-CNR mailFrom: mazzanti@isti.cnr.it Notification: Yes Specification: UML 2.0 Superstructure Specification Section: 15.3.12 FormalNumber: ptc Version: 03-08-02 RevisionDate: 08/02/2003 Page: 500 Nature: Clarification Severity: Minor HTTP User Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.6) Gecko/20040206 Firefox/0.8 Description Suppose that we have two composite states, nested within to two concurrent regions, which both become "complete" as part of the same "run-to-completion" step, and each of the composite states is the source for a completion transition. I.e. within this "run-to-completion" step two completion events are generated. How should these two completion events be dispatched? - Sequentially, in the same sequential order in which they have been generated. - Sequentially, but any ordering is allowed, - Concurrently. I.e. both completion transitions are considered enabled. - other ??? or any of the above Notice that completion transition may have guards, and activity, hence the firing of one of them may cause the other to become no more "enabled". Hence the above three cases may really cause different system behaviors.