La ingeniería de software es una disciplina de la ingeniería que se enfoca en el diseño, desarrollo, implementación, mantenimiento y evolución de software de calidad en un entorno de costo y tiempo determinado.
Una de las principales diferencias entre la ingeniería de software y otras ingenierías, como la ingeniería mecánica o la ingeniería civil, es que el software es un producto intangible y no físico. A diferencia de los puentes, edificios o automóviles, que son productos tangibles que pueden ser diseñados, construidos y probados físicamente, el software es un producto que se compone de líneas de código y que se ejecuta en un entorno virtual.