3

Consider a system user can perform two actions in concurrent manner, the first action (A1) is just performed on the user's order, the second action (A2) includes performing (A1) when performed as it is stated in the following use-case diagram..((considering A1 completely carries out U1 and A2 completely carries out U2))..

enter image description here

so how to represent such concurrent actions in activity diagram? is any of the following diagrams valid? enter image description here

1 Answers1

3

You are still mixing usecases with their implementation. They are independent. I would recommend you to read Bittner/Spence about use cases which is the best you can find about this topic.

Now for your two activity diagrams.

Left: Not in general. You can not repeat an action like this. Each action in an AD must be distinct. However, if these were activity invocations they may appear more than once (as different instances). These invocations have a little fork icon bottom right.

Right: You could model that but it's futile. A1 will only start once A2 is finished since it needs two tokens. So you should simply make it A2 -> A1.

qwerty_so
  • 35,448
  • 8
  • 62
  • 86
  • I made an update to my answer... – qwerty_so Dec 05 '22 at 14:25
  • About the right diagam: Yes, A1 will only start once A2 is finished. But if you simply make it A2 -> A1, then A1 cannot start independently. The solution would be to insert a merge node before A1 and let both arrows point to the merge node instead of to A1. The join symbol at the bottom can be removed. – www.admiraalit.nl Dec 06 '22 at 13:15
  • @www.admiraalit.nl I think that it's just modelled wrongly and the author should fix it. A1 would in any case only start when A2 is finished and sends its token over to A1. And yes, the bottom join is superfluous. But see my first statement here. – qwerty_so Dec 07 '22 at 13:31