Source: https://mocha-java.uccs.edu/dossier/RESEARCH/2009saeconvergence-.pdf