Ciencias de la computación
La relación entre las ciencias de la computación y la ingeniería de software es un tema muy discutido, por disputas sobre lo que realmente significa el término "ingeniería de software" y sobre cómo se define a las ciencias de la computación. Algunas personas creen que la ingeniería de software sería un subconjunto de las ciencias de la computación. Otras, tomando en cuenta la relación entre otras disciplinas científicas y de la ingeniería, creen que el principal objetivo de las ciencias de la computación sería estudiar las propiedades del cómputo en general, mientras que el objetivo de la ingeniería de software sería diseñar cómputos específicos para lograr objetivos prácticos, con lo que se convertiría en disciplinas diferentes. Este punto de vista es el que sostiene, por ejemplo, Parnas (1998). Incluso hay otros que sostienen que no podría existir una ingeniería de software.
Historia de la ingeniería del software
Hay un sin número de áreas donde es notable la evolución de la ingeniería de "software":El desarrollo más importante fue que las nuevas computadoras que salían, cada uno o dos años, volvía obsoletas las ya existentes. La gente del software tenía que volver a escribir todos sus programas para correr en estas nuevas máquinas. Los programadores no tenían equipos en sus escritorios y tenían que ir a la "sala de máquinas". Las tareas ("jobs") eran corridas al inscribirse para tiempo de máquina o por el personal operativo. Las tareas eran corridas poniendo tarjetas perforadas como entrada en el lector de tarjetas de la máquina y se esperaban por resultados devueltos en la impresora.