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