Ciencias de la computación
Ingeniería de software es el estudio del diseño, implementación y modificación del software con la finalidad de asegurarse de que es de alta calidad, asequible, fácil de mantener, y rápido de construir. Es un enfoque sistemático para el diseño de software, que implica la aplicación de prácticas de ingeniería de software. Los ingenieros de software comercian con la organización y análisis de software — no solo lidian con la creación o fabricación de un nuevo software, sino también con su mantenimiento y disposición interna. Se prevé que estén entre las ocupaciones de más rápido crecimiento entre 2008 y 2018. Debido a la novedad de este subcampo, la educación formal en Ingeniería de software generalmente es parte de los planes de estudio de ciencias de la computación, la gran mayoría de ingenieros de software tienen un grado académico en ciencias de la computación sin tener relación con la ingeniería.
Ingeniería del software basada en búsqueda
Ingeniería del Software Basada en Búsqueda (ISBB), proviene del término originario inglés Search-Based Software Engineering (SBSE). Alude a la aplicación de técnicas de optimización ya utilizadas en otros campos de la ingeniería y de la ciencia, como algoritmos genéticos, simulated annealing o búsqueda tabú al campo de la Ingeniería del Software. El motivo para importar este tipo de metodologías es la interpretación de que la naturaleza de los problemas con los que a menudo se enfrenta la ingeniería del software cumple razonablemente con los requisitos para los que ese tipo de soluciones son aceptables, tales como problemas con muchos parámetros de decisión, con unas restricciones en contradicción e interrelacionadas y unos requisitos vagos o imprecisos donde se busca una solución óptima o casi óptima.