The system I am trying to develop have three users with varying priority! User_1 has higher priority followed by User_2 and User_3. I tried developing separate use cases for each users but not sure how to handle the priority handling. The problem is that when a lower priority user was controlling system, a higher priority user can override its control and take the control. In that scenario how to develop use cases? Is it advisable to develop seperate use cases or one use case(as all acti in same system simulateously)? If we develop single use case with three user how should we handle the primary actors and secondary actors?
1 Answers
You are right in thinking that you need separate use cases.
If you have a UC Do Something with one actor and another actor takes over, then this is a UC on it's own, of course. Since there are more or less difficult actions involved with this taking over you need to show that in a UC on its own. Once the take-over is done, the UC Do Something is performed by the 2nd actor. If you want or need to show secondary actors you can draw a <<use>> relation between the Take Over and Actor1.
Now for the hierarchy: if you have have just a 2-level hierarchy you can explicitly create two take-over UCs with different priority levels and possible different steps. If you have a multi-level hierarchy you are better off to introduce a new set of actors. This leads to a very similar model:
Now you simply need to explain what the Prio-actors are. There are likely rules which tell when and how an actor is acting in a priority role.
As always: YMMV. Use case synthesis is a very complex process and takes a long time. So this is just an idea how you can go on. It's not the only solution.

