De acuerdo con la definición proporcionada por el Instituto de Ingenieros Eléctricos y Electrónicos de los Estados Unidos “software es la suma total de los programas de computadora, procedimientos, reglas, la documentación asociada y los datos que pertenecen a un sistema de cómputo”. Según el mismo Instituto, “un producto software es un producto diseñado para un usuario”. En este contexto, la ingeniería del software es un enfoque sistemático del desarrollo, operación, mantenimiento y retiro del software; en palabras más sencillas, se considera que “la ingeniería del software es la rama de la ingeniería que aplica los principios de la ciencia de la computación y las matemáticas para lograr soluciones costo-efectivas a los problemas de desarrollo del software”.