I have a class Tutor and there are some instances of that class can be course coordinators, can I represent the relationship using recursive association? this is how I represented the association at first, which I think is not correct
1 Answers
Quick fix
In your diagram you claim that all Tutors
are coordinating
exactly a single Course
. It's the consequence of 1
being the same as 1..1
. But this is not what your narrative says:
some instances of that class can be course coordinators.
You should therefore replace the multiplicity on the Course
side with 0..1
. It which would translate some Tutors
can be coordinating
a Course
(but not all).
Another alternative
The inconvenience is that the model does not define Course Coordinators
. Maybe it's just the wording and doesn't matter. But may be there is more about Course Coordinator
that would justify a separate class with additional properties and behaviors:
If it's a special kind of
Tutor
, just make it a specialization thereof, and let this additional class have thecoordinating
association.If this is a special role that a
Tutor
but also other classes (Professor
,Assitant
, ...) could take, you'd better prefer composition over inheritance (object composition in OOP corresponds to UML associations). The association betweenTutor
andCourse Coordinator
would read "have the role of".
Not related:
A couple of additional questions for you (just to ensure that the multiplicities say what you meant):
- One specific
Course
could be taught by severalTutors
? - No
Tutor
could teach more than oneCourse
? - A specific
Course
could have no Tutor for teaching (because*
means0..*
)? - The same
Course
could be coordinated by severalTutors
?

- 68,716
- 7
- 72
- 138
-
1- yes 2- no a tutor can teach more than one course 3-no, I already changed the multiplicity to 1..*, 4- yes – om1999 Nov 23 '21 at 18:11
-
I also changed the multiplicity of the teaching association to 1..* on the tutor side – om1999 Nov 23 '21 at 18:16