2

Let's assume we have use case that can be triggered by two or more actors e.g. User1 and User2. It will have the exact same flow for both actors. How should I describe this use case correctly? Who is the primary actor - User1 or User2? Should I make two scenarios for both actors or make one and set two primary actors?

Daniel
  • 23
  • 3

1 Answers1

4

If two different users can use the system for the same goal, there is in fact only one use case that has one primary actor. You need to come up with a common name for the two users and create an actor that generalizes both users. Often this is difficult, because, other than having the same goal, both users might have nothing in common. In this case just use an artificial name that contains the goal. If both might want to use a door to enter the room, the common name could be "room enterer".

Axel Scheithauer
  • 2,758
  • 5
  • 13
  • Thanks for the answer! I have another question. What if the mentioned use case is actually included? It would be something like this: User1 --- UseCase1 <> ActualUseCase <> UseCase2 --- User2. In this example I think there is no way to generalize both actors, because they invoke two different use cases. Now I would say there are two primary actors. – Daniel Dec 22 '21 at 05:32
  • 1
    Including a use case simply means, that in order to achieve the goal of the first use case, also the goal of the included use case must also be reached. Therefore, the goal of the second use case is among the instrumental goals of the first and the second actor would also be an actor of the first use case. Including a use case is a means of reducing redundancy. It would always be possible to model everything without «include». – Axel Scheithauer Dec 22 '21 at 10:33