Ingeniería de software educativo, teorías y metodologías que la sustentan