- Ingeniería de Software es el estudio de los principios y metodologías para el desarrollo y mantenimiento de sistemas software (Zelkovitz, 1978)
- Ingeniería de software es la aplicación práctica del conocimiento científico al diseño y construcción de programas de computadora y a la documentación asociada requerida para desarrollar, operar y mantenerlos. Se conoce también como Desarrollo de Software o Producción de Software (Bohem, 1976).
- Ingeniería de Software trata del establecimiento de los principios y métodos de la ingeniería a fin de obtener software de modo rentable, que sea fiable y trabaje en máquinas reales (Bauer, 1972).
- Es la aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, operación y mantenimiento del software; es decir, la aplicación de la ingeniería al software (IEEE, 1993).
De acuerdo a lo antes mencionado se puede concluir que es una disciplina conformada por todas aquellas técnicas, métodos y herramientas utilizadas en el desarrollo y producción de software, abarcando más allá del solo hecho de programar.
Esta disciplina surge a finales de los años 60, en el medio de la llamada "Crisis del Software" donde los proyectos de desarrollo eran inacabables, existía una enorme ineficiencia, los costos eran impredecibles y generalmente, aquellos que llegaban al final, (fuera de los tiempos estimados) ofrecían soluciones que ya los usuarios no necesitaban, por no mencionar lo difícil que resultaba el poder darles mantenimiento. Entonces, se decidió seguir el ejemplo de la "Ingeniería Civil", la cual ya tenia cientos de años progresando exitosamente, puesto que en programación se aplica el mismo principio que en la construcción de un edificio: poner simplemente ladrillos y cemento (echar código) no es suficiente. Su elaboración consta de diversos pasos antes de comenzar con la fase de construcción, tales como el diseño arquitectónico, la albañilería, la fontanería, el diseño eléctrico, y durante este período se calculan los presupuestos y los plazos.
Por lo tanto, la ingeniería de software requiere la gestión de proyectos para que se pueda desarrollar una aplicación en el plazo previsto y con el presupuesto establecido que sea satisfactoria para el cliente (el concepto de calidad).
A partir de ese entonces, surgirían en las décadas siguientes, N cantidad de modelos de desarrollo, empezando por el tradicional Cascada, luego incorporando mejoras con el modelo espiral, y eventualmente se concebirían metodologías incrementales pesadas como la bien conocida Proceso Unificado o ágiles como XP. Sin embargo independientemente de su naturaleza, todas siguen en mayor o menor medida los siguientes pasos o fases:
- Requerimientos del software: la obtención, análisis, especificación y validación de los requerimientos para el software.
- Diseño de software: diseño del software, generalmente llevado a cabo con herramientas CASE y el uso de lenguajes de diseño como el UML.
- Desarrollo/implementación de software: es la construcción del software empleando lenguajes de programación.
- Testeo/prueba del software.
- Mantenimiento del software: solución de los problemas del software ya desarrollado.
http://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_software
http://es.kioskea.net/contents/genie-logiciel/genie-logiciel.php3
http://www.alegsa.com.ar/Dic/ingenieria%20del%20software.php