Source: http://salihayacoub.com/420Ke2/Semaine 2/UML2.pdf