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

StackOverflow https://stackoverflow.com/questions/12370557

  •  01-07-2021
  •  | 
  •  

Question

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!

Was it helpful?

Solution

  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.

OTHER TIPS

I would in that case make a arrow from 'Notify user of success' to the join element, delete the arrow from the fork to the join element, and create an arrow from the fork to 'Start process'.

As far as I know the join element must have a fork at some point before it. You can have many activity end nodes in the diagram, but I think you can't have more than one start nodes.

You have no activities on the activities diagram, do you think it is OK? No.

When a lane receives something, it should be shown as message (writing on the arrow), not as an action. Sending and receiving are special things, that are shown not as actions, but as arrow ends or if they are important as activities' parameters - border rectangles.

As for fork/join combining, it is absolutely OK.

Here is an example diagram, I have put useful for you elements on it. It doesn't mean you should copy it, only use it as a source.

enter image description here

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top