In an activity diagram, are you allowed dead ends and joins without forks? (includes example)

Stijnvdk picture Stijnvdk · Sep 11, 2012 · Viewed 18.3k times · Source

My question actually consists of two questions regarding the same process modelling in an activity diagram.

The process in short: Joe uploads a file into a portal, this portal transfers the file to our server where it is checked for errors. In case of an error the server sends a message to the portal where Joe can see this (if he is still logged in or on his next visit) and upload his file again (hopefully without the errors this time). In case of success the server will also notify the portal but Joe doesn't have to take any action so we are not interested in the result. As the file is okay the system now wait for Sarah who has to start the processing of the file manually after which the process completes.

In the below diagram I have drawn this, including my two problems. example

  1. Am I allowed to let the "Notify User of succes" (I spotted the spelling mistake, thank you) in the Portal swim lane to terminate like this? If I were to put a ActivityFinal behind this that would mean the entire process would end right there which is not what we want.
  2. Am I allowed the to join before the "process file" without a fork or do I need a fork at the very start spanning all across form Joe to Sarah?

The point of this is nothing more than an attempt to find a valid UML solution to solve this, in my own diagrams I would just do it like in the example.

Thanks in advance!

Answer

vainolo picture vainolo · Sep 12, 2012
  1. I'm not sure if it forbidden to leave an activity node without outgoing links, but for clarity (since users may think this is a mistake) I would use a flow final node (circle with x inside). This node simply terminates the flow and does not affect other flows in the diagram.
  2. You can use a join node anywhere you want, independent if you previously did a fork or not. So what you did is correct.