Critics concerning state machines.
ArgoUML has the following critics in this category.
Suggestion given state is involved in so many transitions it may be a maintenance bottleneck.
The Wizard of this critic allows setting of the treshold, i.e. the maximum number of transitions allowed before this critic fires.
![]() | Caution |
---|---|
This number is not stored persistently, and there is no way to reduce it after it has been set higher, except by creating more transition until the critic fires again. Restarting ArgoUML resets this number to its default: 10. |
Suggestion that the given state machine has so many states as to be confusing and should be simplified (perhaps by breaking into several machines, or using a hierarchy).
The Wizard of this critic allows setting of the treshold, i.e. the maximum number of states allowed before this critic fires.
![]() | Caution |
---|---|
This number is not stored persistently, and there is no way to reduce it after it has been set higher, except by creating more states until the critic fires again. Restarting ArgoUML resets this number to its default: 20. |
Suggestion that the given state requires both incoming and outgoing transitions.
Suggestion that the given state requires incoming transitions.
Suggestion that the given state requires outgoing transitions.
Suggestion that there is more than one initial state in the state machine or composite state, which is not permitted in UML.
Suggestion that there is no initial state in the state machine or composite state.
Suggestion that a transition is missing either a trigger or guard, one at least of which is required for it to be taken.
Suggestion that the join pseudostate has an invalid number of transitions. Normally there should be one outgoing and two or more incoming.
Suggestion that the fork pseudostate has an invalid number of transitions. Normally there should be one incoming and two or more outgoing.
Suggestion that the branch (choice or junction) pseudostate has an invalid number of transitions. Normally there should be at least one incoming transition and at least one outgoing transition.
Suggestion that the transition requires a guard.
![]() | Caution |
---|---|
It is not clear that this is a valid critic. It is perfectly acceptable to have a transition without a guard -the transition is always taken when the trigger is invoked. |
This critic is discussed under an earlier design issues category (see Section 15.3.3, “ Clean Up Diagram ” ).
Suggestion that an edge model element such as an association or abstraction is so short it may be missed. Move the connected model elements apart to make the edge more visible.
An instance may not belong by composition to more than one composite instance. You must change the multiplicity at the composite end of the association to either 0..1 or 1..1 (1) for your model to make sense.
Remember that composition is the stronger aggregation kind and aggregation is the weaker. The problem can be compared to a model where a finger can be an integral part of several hands at the same time.
This is the second well-formedness rule on AssociationEnd in UML 1.4.