--- In
executableuml@ yahoogroups. com, Shunaila Amin <shunail_libra@ ...> wrote:
>
> Can any body explain what is the concept of action sementics in uml and how we can compair the base state machine and delta state machine and how we can apply unl action sementics at any state machine.
>
The action semantics define execution behavior for some UML elements. Action semantics were a required addition to the UML specification in order to support execution. The action semantics are not a language, so an "action language" is needed to build executable models.
I am unfamiliar with the "base" and "delta" terms applied to state machines, but a internet search indicates that a base state machine belongs to the general (super) class in a generalization relationship
and (I'm assuming) a delta state machine belongs to a more specialized (sub) class in the generalization relationship.
The search also seemed to only find the usage of "base" in cases where one wanted to create a new subclass that inherited (copied) and extended the behavior of the superclass.
An Executable UML generalization relationship is always tagged with {disjoint, complete}. The usual handling of state machines in a generalization hierarchy is to put them in the final leaf subclasses. In terms of this discussion, this would mean that each final subclass would have the "base" state machine plus it's own behavioral extensions. The only comparison in this case would be to ensure that the base state machine was correctly represented in each of the subclasses. This is alleviated through the use of polymorphic events (which in my view are completely unnecessary in Executable UML).
Another usage described by Shlaer and Mellor in the Object
Lifecycles book was to have a partial state machine (base) in the superclass with the rest being made complete within each branch of the generalization hierarchy. In this case there would need to be no compare.