Search code examples
umlentity-relationshipclass-diagram

Showing specialization with UML


How do you show specialization in a UML diagram when two specialized entities could also be each other. For example:

    [Personel]
        ^
       /_\
        |
    ------------
    |           |   
[Employee]    [Manager]

Typically, I'd use the empty arrow to show specialization, but how do i show that an employee or manager could also have the other role in some instance? Do I just need to use a line to connect them?


Solution

  • In the most common form Generalization is mutually exclusive. You are either one subclass or the other, but never the two at the same time.

    For the example you used you better use the Party-PartyRole pattern.

    enter image description here

    Employee or Manager are Roles a person can play. With this pattern you can be both Manager and Employee at the same time.