Issue 18154: Stable state not needed (uml25-ftf) Source: Simula Research Laboratory (Mr. Bran Selic, selic(at)acm.org) Nature: Uncategorized Issue Severity: Minor Summary: Category: Minor The 2.5 spec says: “A state configuration is said to be stable when: · no further Transitions from that state configuration are enabled and · all the entry Behaviors of that configuration, if present, have completed (but not necessarily the doActivity Behaviors of that configuration, which, if defined, may continue executing” I believe that the concept of a stable state configuration is not necessary, since all state configurations are, by definition, stable. I cannot think of a transient one Resolution: Revised Text: Actions taken: October 10, 2012: received issue Discussion: End of Annotations:===== M-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date :x-google-sender-auth:message-id:subject:to:cc:content-type; bh=HnNAKYwkK9NfPdBxYYg/ovtsewOEqKyGtnq7wQtmCro=; b=bk7HsFnoLRt0rjU1D3Ve36ljm8Zs49Z0uUFrh1aMbuRExlvv904AGok1MVSfsV2XKG FKNSE7EZhPqTDWVtfoF5L5EmDcFwtI+/pZI0xF+Sc7Cy4CS84MZIqV9h0ekyM9KEkhYd DBv1TdVnmqtrbZp4bFxb67/mfJWz9QJyN6fqrZAqUxfwTbBfL2kHL7FSSKmpvhN3kCHE 74esE3ByZk4COSMmkWEMb8Clu1QJsUehRIYeIOosJQOCrKUvEEGqwf1TAqJMOJnl5wvD qhvU6oMtDocZogeaqZ9uDUTrhTophX248UgPjzf2c6SzHfjOLR2gIi+563H+k1hczoPD rUKw== Sender: bran.selic@gmail.com From: Bran Selic Date: Wed, 10 Oct 2012 13:12:17 +0200 X-Google-Sender-Auth: mehVQlqlwkLgHn4VmOzuDEqr6i8 Subject: Fwd: UML 2.5: State Machine clause issues To: issues@omg.org Cc: Juergen Boldt I guess this got caught in your spam filters because I used my Simula email address. Apologies...Bran ---------- Forwarded message ---------- From: Bran Selic Date: Wed, Oct 10, 2012 at 7:16 AM Subject: UML 2.5: State Machine clause issues To: issues@omg.org Cc: Steve Cook UML 2.5 State Machine Issues Issue: Stable state not needed Category: Minor The 2.5 spec says: .A state configuration is said to be stable when: · no further Transitions from that state configuration are enabled and · all the entry Behaviors of that configuration, if present, have completed (but not necessarily the doActivity Behaviors of that configuration, which, if defined, may continue executing. I believe that the concept of a stable state configuration is not necessary, since all state configurations are, by definition, stable. I cannot think of a transient one Subject: Re: issues 18154 - 18156 -- UML 2.5 FTF issues From: Stephen J Mellor Date: Thu, 11 Oct 2012 08:07:46 +0100 Cc: issues@omg.org, uml25-ftf@omg.org To: Juergen Boldt X-Mailer: Apple Mail (2.1085) What about an action that generates a signal to Self? On 12-Oct-10, at 18:08, Juergen Boldt wrote: Issue: Stable state not needed Category: Minor The 2.5 spec says: .A state configuration is said to be stable when: · no further Transitions from that state configuration are enabled and · all the entry Behaviors of that configuration, if present, have completed (but not necessarily the doActivity Behaviors of that configuration, which, if defined, may continue executing. I believe that the concept of a stable state configuration is not necessary, since all state configurations are, by definition, stable. I cannot think of a transient one Subject: Re: issues 18154 - 18156 -- UML 2.5 FTF issues From: Nerijus Jankevicius Date: Thu, 11 Oct 2012 11:29:26 +0300 Cc: Juergen Boldt , issues@omg.org, uml25-ftf@omg.org To: Stephen J Mellor X-Mailer: Apple Mail (2.1084) what is the object state if entry behavior is not completed? Other thread may ask for the object state - what should it get? Previous state, current state which entry is executing, or something like UNKNOWN ? When state is changed? Before or after entry behavior execution? Nerijus On Oct 11, 2012, at 10:07 AM, Stephen J Mellor wrote: What about an action that generates a signal to Self? On 12-Oct-10, at 18:08, Juergen Boldt wrote: Issue: Stable state not needed Category: Minor The 2.5 spec says: .A state configuration is said to be stable when: · no further Transitions from that state configuration are enabled and · all the entry Behaviors of that configuration, if present, have completed (but not necessarily the doActivity Behaviors of that configuration, which, if defined, may continue executing. I believe that the concept of a stable state configuration is not necessary, since all state configurations are, by definition, stable. I cannot think of a transient one Subject: Re: issues 18154 - 18156 -- UML 2.5 FTF issues From: Stephen J Mellor Date: Thu, 11 Oct 2012 09:36:04 +0100 Cc: Juergen Boldt , issues@omg.org, uml25-ftf@omg.org To: Nerijus Jankevicius X-Mailer: Apple Mail (2.1085) It's, er, transient :) As opposed to static, that is. On 12-Oct-11, at 09:29, Nerijus Jankevicius wrote: what is the object state if entry behavior is not completed? Other thread may ask for the object state - what should it get? Previous state, current state which entry is executing, or something like UNKNOWN ? When state is changed? Before or after entry behavior execution? Nerijus On Oct 11, 2012, at 10:07 AM, Stephen J Mellor wrote: What about an action that generates a signal to Self? On 12-Oct-10, at 18:08, Juergen Boldt wrote: Issue: Stable state not needed Category: Minor The 2.5 spec says: .A state configuration is said to be stable when: · no further Transitions from that state configuration are enabled and · all the entry Behaviors of that configuration, if present, have completed (but not necessarily the doActivity Behaviors of that configuration, which, if defined, may continue executing. I believe that the concept of a stable state configuration is not necessary, since all state configurations are, by definition, stable. I cannot think of a transient one DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date :x-google-sender-auth:message-id:subject:to:cc:content-type; bh=0foBa60G4Okk+hCbUrOsN848FkgH1lQWOYocHdqbjd0=; b=tQAzHBo52ZOc0+88oVrHF/swrMqjF2g6huWy0pgb9tPoKkjsyr6ghAkzPYxUHtSkTt dBrBCoU1SuISm5n/CLtOqhGOhWEb0leZlX/YpjUhQET1uKlx9IDHNPVMmWcpiLHuBHgV z5NdFkxnT5Gz25yoVLXgaNg/zwuwvLgjNKJD5HJ09+PEe8r7PCGpN4nGFpgWQAV/v7+4 YdNjKpAv85X20P/DjesWMfv/ArBp+NpQDZnxd9xGq25q9N1/ZvtiPm5ptgNflzZQBh5N +1cUha5ON9DzhiWd4FP/qg65nr/NCq5VcMObmOrjScKl0g3Uu/nah9zZUQsl3TuD3aOO QFaQ== Sender: bran.selic@gmail.com From: Bran Selic Date: Thu, 11 Oct 2012 11:14:29 -0400 X-Google-Sender-Auth: lnKV4yviVkBI1DhE8sykBoxjiUs Subject: Re: issues 18154 - 18156 -- UML 2.5 FTF issues To: Nerijus Jankevicius Cc: Stephen J Mellor , Juergen Boldt , issues@omg.org, uml25-ftf@omg.org Well, this is a very good question that should be answered in the spec (but I do not believe that it relate to any of the issues I raised above). Related to this is the question of what state is an object in when an exception occurs. My answer to the first question is that, as soon as a state is entered and its action is completed, the state machine is in that state, i.e., prior to executing any entry actions. Note, by the way, that it is valid for a state machine to stabilize in a composite state but not in any of its substates (assuming that there is no history or default transition). I suspect that this will surprise some folks I think this fact will help us answer the questions for most cases. Cheers...Bran On Thu, Oct 11, 2012 at 4:29 AM, Nerijus Jankevicius wrote: what is the object state if entry behavior is not completed? Other thread may ask for the object state - what should it get? Previous state, current state which entry is executing, or something like UNKNOWN ? When state is changed? Before or after entry behavior execution? Nerijus On Oct 11, 2012, at 10:07 AM, Stephen J Mellor wrote: What about an action that generates a signal to Self? On 12-Oct-10, at 18:08, Juergen Boldt wrote: Issue: Stable state not needed Category: Minor The 2.5 spec says: .A state configuration is said to beÂstableÂwhen: ·ÂÂÂÂÂÂÂÂ no further Transitions from that state configuration are enabled and ·ÂÂÂÂÂÂÂÂ all the entry Behaviors of that configuration, if present, have completed (but not necessarily the doActivity Behaviors of that configuration, which, if defined, may continue executing. Â I believe that the conceptt of a stable state configuration is not necessary, since all state configurations are, by definition, stable. I cannot think of a transient one From: Ed Seidewitz To: Bran Selic CC: "issues@omg.org" , "uml25-ftf@omg.org" Date: Thu, 11 Oct 2012 12:38:06 -0400 Subject: RE: issues 18154 - 18156 -- UML 2.5 FTF issues Thread-Topic: issues 18154 - 18156 -- UML 2.5 FTF issues Thread-Index: Ac2nw8W5esTsS4jjQ7+3KlpJ824jSAACDSjw Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US X-Mailprotector-Decision: deliver X-Mailprotector-Connection: TLSv1|[10.1.50.225]|10.1.50.225|outbound.mailprotector.net|0.0|0.0|0|||0|0|0|0 X-Mailprotector-Results: null_ptr clean X-Mailprotector-Score: 40 X-Mailprotector-IP-Analysis: 0, 10.1.50.225, Ugly c=0 p=0 Source New X-Mailprotector-Scan-Diagnostics: 0-0-0-31676-c X-Mailprotector-ID: 28e29404-126e-4fdb-aab3-446e7c5dc92b Bran . As to your original issue, you say .all state configurations are, by definition, stable.. Well, given that the spec currently contains specifies conditions for a .stable state configuration. then any state configuration that does not meet these conditions is, by definition, not stable. Indeed, as you note in your later message, .as soon as a state is entered.the state machine is in that state, i.e., prior to executing any entry actions.. Since the definition of .stable state configuration. requires that .all entry Behaviors of that configuration, if present, have completed., this means that, by this definition, when a state machine first enters a state configuration with entry behaviors, that this configuration is not stable until all such Behaviors have completed execution. Whether this is useful definition is another matter. As far as I can tell, the concept of .stable state configuration. is used in two other areas (quoting the 2.5 spec): · Under .Transitions.: o .Transitions are executed as part of a more complex compound transition that takes a StateMachine execution from one stable state configuration to another.. o .As noted earlier, when an Event occurrence triggers an enabled Transition or a StateMachine execution is created, this can initiate traversal of a set of connected and nested Transitions and Vertices until a stable state configuration is reached.. · Under .Event Processing for StateMachines.: o .In case of StateMachine Behaviors,a wait point is represented by a stable state configuration.. o .A step involves executing a compound transition and terminating on a stable state configuration (i.e., the next wait point).. o .Event occurrence is dispatched only after the processing of the previous occurrence is completed and a stable state configuration has been reached.. By the definition of .stable state configuration., the above indicate that, e.g., it is not possible for a state machine to handle another event occurrence or initiate another transition until any entry behaviors have completed execution. The definition of .stable state configuration. also includes the condition that .no further Transitions from that state configuration are enabled., but I am not quite sure what the implications of that are. The point, though, is that the current definition of .stable state configuration. does seem to have semantic implications as the spec is currently written, and that we can.t just remove it without considering those implications. -- Ed From: bran.selic@gmail.com [mailto:bran.selic@gmail.com] On Behalf Of Bran Selic Sent: Thursday, October 11, 2012 11:14 AM To: Nerijus Jankevicius Cc: Stephen J Mellor; Juergen Boldt; issues@omg.org; uml25-ftf@omg.org Subject: Re: issues 18154 - 18156 -- UML 2.5 FTF issues Well, this is a very good question that should be answered in the spec (but I do not believe that it relate to any of the issues I raised above). Related to this is the question of what state is an object in when an exception occurs. My answer to the first question is that, as soon as a state is entered and its action is completed, the state machine is in that state, i.e., prior to executing any entry actions. Note, by the way, that it is valid for a state machine to stabilize in a composite state but not in any of its substates (assuming that there is no history or default transition). I suspect that this will surprise some folks I think this fact will help us answer the questions for most cases. Cheers...Bran On Thu, Oct 11, 2012 at 4:29 AM, Nerijus Jankevicius wrote: what is the object state if entry behavior is not completed? Other thread may ask for the object state - what should it get? Previous state, current state which entry is executing, or something like UNKNOWN ? When state is changed? Before or after entry behavior execution? Nerijus On Oct 11, 2012, at 10:07 AM, Stephen J Mellor wrote: What about an action that generates a signal to Self? On 12-Oct-10, at 18:08, Juergen Boldt wrote: Issue: Stable state not needed Category: Minor The 2.5 spec says: .A state configuration iss said to be stable when: · no further Transitions from that state configuration are enabled and · all the entry Behaviors of that configuration, if present, have completed (but not necessarily the doActivity Behaviors of that configuration, which, if defined, may continue executing. I believe that the cconcept of a stable state configuration is not necessary, since all state configurations are, by definition, stable. I cannot think of a transient one