UML Clarification (Please Help Needed)

I've done a UML diagram, but there are a couple of things I'm unsure about.

1. If we have a system where the user has to Login, do we then have to include that use case for all the other use cases?

Example: In the system boundary I have the administrator instructor(as an actor). He must first login(use case 1). Then he can add or remove trainee (so use case 2:add trainee , use 3:remove trainee , right?). So in this kind of situation, do I need to draw an include stereotype from the add trainee, remove trainee use cases to the Login use case?

Please note that I have a link (association) between the instructor and the Add trainee and Remove trainee use cases. At first I had only the link between the actor and the login use case. Then The login use case was connected by an include stereotype to both Add trainee and Remove trainee (this I think is wrong). Can anyone clarify as I'm confused please?

2. I have two other actors; coach and trainee. They also have to login. In the question it states:"The trainee logs in". And later it says something for the coach. What is confusing is that in the question it says something like this:"The coach has another login page". The word "another" makes me wonder if I need a seperate login use case for the coach. The trainee and the coach use the web to login. Whereas the admin uses a desktop program. So I'm thinking I need three seperate use cases(true?).

The way I'm thinking to do it is to have, one login use case, then seperate this into two (trainee and coach) using generalization, where Login is the base use case. Another question right here:

3. When seperating into two as in the situation above, do I use to includes or extends stereotype, or use generalization?

Also I have lines crossing over each other, is that okay?

Sorry for the long list of question, but I have almost completed this, but I need some clarfication on these questions before I submit this.

Thanks in advance and I appreciate any feedback.




  • Hi John,

    1) Generaly UCD is not a good place to show permissions control. Threre are few patterns for doing that however (see [1]). You can add additional UCD presenting only access control (all UC that requires login, will include login on that diagram), another approach is to place information about access control as preconditions in UC or in other places of SRS. If you place those relations on the main diagram it will make it difficult to read.

    2) Generalization might be a good idea here. However, keep in mind that UCs present goals of the users and how they achieve them (they should not include information about UI [2], the description should be behavioral and abstract), so if for both actors process is the same you can have one use case.

    3) In most cases there are few ways of model things. Instead of writing to much here, I will recommend you reading [link=][/link], where you will find information about UCD and relations. One thing I can say about generalization and <<extend>>. You can use <<extend>> if there is up to 4 extending use cases (keep in mind that you will have to model them as extensions in use cases). Generalization is good option if you have more than 4 sub-cases, or this "alternative" use cases changes scenarios of the main one in many parts of main scenario (this would make it difficult to model through extensions.)

    Best regards,

    1. G. O
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!


In this Discussion