2

In a UML Use Case diagram, consider two actors named A and B, and a use case called "Organize event".

We want to model the fact that A can enable "Organize event" using the modeled system, but that B needs to give its approval for the organization to take place. Yet, it turns out that it is fine that B gives its approval maybe one week later, ie. rather asynchronously.

In that case:

  • Should B be a secondary actor of the UC? But then isn't it strange that the UC "activation time" can take as long as it takes for B to give its approval, eg. several weeks?
  • Or should there be a second UC called "Approve organization" with B as a primary actor? But then the diagram would not make it clear that B does take a part in the "Organize event" made by A?
Gwendal
  • 490
  • 3
  • 13

2 Answers2

1

You model that with a separate UC Approve event for actor B. The UC Organize event just places some event in a schedule. But only if it's approved then some UC like Cater event can take place. To that you would attach a constraint that reads { UC Approve event for this event must have been performed } or the like.

enter image description here An «include» relation between Organize event and Approve event would mean that the latter UC can only finish when the first has been done. That contradicts with the required asynchronity.

qwerty_so
  • 35,448
  • 8
  • 62
  • 86
1

If the approbation part of the organization then you are in the case 1. The secondary actor participates to that UC but not "asynchronously", to speak about (a)synchronously or not has no sense. To make the UC clear the textual definition must describe the role of the two actors, and the fact the organization can need long time

enter image description here


But to have 2 UCs to separate the creation and the (non) approbation seems more clear. In that case there is no UC "Organize event", "Organize event" is the subject. Of course the execution of "create event" is a pre-condition of "approve event"

enter image description here

bruno
  • 32,421
  • 7
  • 25
  • 37