Source: https://azammouri.com/mis-4a/TP2_UML_Diagramme_Classes_Corrige_Exercice3.pdf