Source: https://www.lri.fr/~longuet/Enseignements/17-18/Et3-UML/Et3-examen16.pdf