As follow-up to this question I started digging in the UML specs regarding control flow in activity diagrams. Consider this simple example:Notice that it neither has ActivityInitial nor ActivityFinal. I know (though I actually can't find the location) that the specs state that a flow is terminated when it has no outgoing edge. So if the [terminate] is passed the flow will stop after Final as if it has reached a FlowFinal. But - and here are my questions:Will similarly to a missing outgoing edge a missing ingoing edge mean that the flow has to start here? So in my example, will the flow start at Implicit?Since the loop? has only one guarded outgoing edge, what will happen to the token if it does not pass (I guess it will be stuck).Is a merge node required to join the edges from the Decision and the Implicit action into Action? (I guess you don't need it since an Action will accept all tokens that are offered and not wait like a Join would do for all to arrive.)Please use citation from the recent UML specs in your answer.
Sloppiness in Activity Diagrams
uml
Yes, the flow will start at Implicit. From the UML 2.5 specification:[15.2.3.2 Activity Nodes]An ActivityNode is enabled to begin execution when specified conditions are satisfied on the tokens offered to it on incoming ActivityEdges...[15.2.3.6 Activity Execution]... nodes that do not have incoming edges and require no input data to execute are immediately enabled.The DecisionNode will be blocked from offering tokens on its outgoing edge.As far as I understand, the specification does not mention what will happen to the token in detail. I guess saying the outgoing edge will be blocked and hence the token will get stuck is not too wrong.From the UML 2.5 specification:[15.3.3.6 Decision Nodes]A token offered on the primary incoming edge of a DecisionNode shall not traverse any outgoing edge for which the  guard evaluates to false.For InitialNodes, the specification states the following:[15.3.3.1 Initial Node]If the token offered by an InitialNode is not immediately accepted, or is otherwise blocked from moving downstream (for  example by an ActivityEdge guard), then it remains on the InitialNode.A MergeNode is required here, because the two incoming edges are implicitly joined, meaning that both edges must offer a token for the activity to begin execution. From the UML 2.5 specification:[15.5.3.1 Executable Nodes]An ExecutableNode shall not execute until all incoming ControlFlows (if any) are offering tokens. That is, there is an implicit join on the incoming Control Flows.