Activity Diagram - Fork and Join

I am designing an activity diagram and am unsure of the usage of fork and join.

If we use fork, do we have to follow it later by a join?

I am not using join, because it would mean that for the activity to continue, the other activity must finish (which is not the case).

So lets say we have activity1 in swimlane1 and activity2 in swimlane2. Acvitity1 can begin and go onto the next activity as soon as it finishes. Same for activity2. But they are both pointing onto the same activity. Is this allowed? I initially used join since they later merge into the same activity, but removed it because they both don’t need to complete for the process to continue.

I am slightly confused about fork as well. If we use fork does that mean they are happening at the same time. Because in my design they don’t necessary work in parallel. But I used it since one activity points to two different activities.

Any clarification will be much appreciated.

Regards,

James

Hi James,

Thanks for your post. Would you mind to provide a concrete sample (maybe a project file) about the cases you mentioned fro Fork (2 activities followed by same activity) and Join (2 activities not necessary to work in parallel)? Thanks in advance!

Best regards,
Lilian Wong

Thanks.

Unfortunately I cant post the file, since it is from an exercise for a course I am taking.

But here is what I want to know. If we use fork to divide an activity, must we later use join?

I am not even sure I need fork because they don’t have to go in parallel. It just that the arrow from the previous activity goes into two different swimlanes. In these two swimlanes (which are actors), it doesn’t matter who finishes first. They both don’t even need to complete for the process to continue. If just one of them finishes, the process will continue. Thats why I didn’t use join. I am pretty sure join does’nt go here. But fork, I used fork because as I mentioned, I have an activity1 in swimlane 1. So either I use one arrow that goes from activity1 in swimlane1, to swimlane2 and swimlane3, using fork to seperate the arrow into two, and connect to activity2(in swimlane2) and activity3(in swimlane3). If fork doesn’t go here, the only thing I can think of would be to have two seperate arrows going out from activity1(in swimlane1) each arrow pointing to one activity2 in swimlane2 and activity3 in swimlane3.

Hope you can clarify

James

Hi James,

Thanks for replying. Would it be possible to send your sample (or project file) to my email address: lilian.wong@visual-paradigm.com ?

Best regards,
Lilian Wong