Tags and keywords
The top-level Keypad activity simply loops over invocations of CatchN, which will handle receipt of our keypad Signals N0, N1 etc.
The activity SendDigitViaPort sends a digit via the port o:~I_Keypad (note that InvocationAction::onPort is set).
And the SendSignalAction::target is ... the keypad!
The spec is a bit confusing here. When you send without a Port you are in fact sending directly to the "remote" 'target', and then this makes sense:
UML-2.5.1: 'SendSignalAction::target: The InputPin that provides the target object to which the Signal instance is sent'
But when you are sending through a Port, there is no locally-known remote 'target', all that is known is the owner of the Port, where the owner of the Port is essentially the "sender"!
