Text this: Formulación de una teoría general para la enseñanza de ingeniería de software