Existen distintas definiciones de ingeniería del software, una de las primeras, propuesta por Fritz Bauer, es:
“…El establecimiento y uso de principios de ingeniería robustos, orientados a obtener software económico que sea fiable y funcione de manera eficiente sobre máquinas reales.” [Pressman, Roger. (1995). Ingeniería del Software: Un enfoque práctico. España: McGraw Hill].
La ingeniería del software surge de la ingeniería de sistemas y la ingeniería de hadware. En definitiva, la ingeniería del software se compone de distintos pasos basados en métodos, herramientas y procedimientos, estos son: [ Galvis, A. (1992). Ingeniería de software educativo. Colombia: Universidad de los Andes. Página 25]
Métodos: Muestran cómo construir el software. Incluyen distintas acciones, entre ellas: planificación y estimación de proyectos, análisis de los requerimientos del sistema y del software, diseño de estructura de datos, arquitectura de programas y procedimientos algorítmicos, codificación, prueba y mantenimiento.
Herramientas: Entregan un soporte automático o semiautomático para los métodos.
Procedimientos: Definen la secuencia en que se aplican los métodos, relacionándolos con las herramientas.
Existen distintos modelos, para el diseño de software educativos, por ejemplo: ciclo de vida, espiral, prototipado, entre otros.