Source: http://www.dil.univ-mrs.fr/~novelli/GL/COURS/01_Genie_Logiciel.pdf