Source: https://upcommons.upc.edu/bitstream/handle/2117/86678/Rapport de stage de Double Diplôme (1).pdf