La Ingeniería
de Software es el establecimiento y uso de principios de ingeniería para
obtener software que sea confiable y que funcione eficientemente. Según la definición del IEEE, citada por [Lewis 1994] "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 autor, "un producto de software es un
producto diseñado para un usuario". En este contexto, la Ingeniería de Software
es un enfoque sistemático del desarrollo,
operación, mantenimiento y retiro del software".
En otrras palabras, se considera que la Ingeniería de 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 (eficaces en costo o económicas) a los problemas de desarrollo de software, es decir, permite elaborar consistentemente productos correctos, utilizables y costo-efectivos.
El proceso de ingeniería de software se define como "un conjunto de etapas parcialmente ordenadas con la intención de logra un objetivo, en este caso, la obtención de un producto de software de calidad" [Jacobson 1998].El proceso de desarrollo de software "es aquel en que las necesidades del usuario son traducidas en requerimientos de software, estos requerimientos transformados en diseño y el diseño implementado en código, el código es probado, documentado y certificado para su uso operativo". Concretamente "define quién está haciendo qué, cuándo hacerlo y cómo alcanzar un cierto objetivo" [Jacobson 1998].
El proceso de desarrollo de software requiere por un lado un conjunto de conceptos, una metodología y un lenguaje propio. A este proceso también se le llama el ciclo de vida del software que comprende cuatro grandes fases: concepción, elaboración, construcción y transición. La concepción define le alcance del proyecto y desarrolla un caso de negocio. La elaboración define un plan del proyecto, especifica las características y fundamenta la arquitectura. La construcción crea el producto y la transición transfiere el producto a los usuarios.
(producir software en los plazos de tiempo adecuados, de forma eficiente, garantizada, y que el software sea adaptable, fácil de mantener y de usar)
entonces ¿Qué es la Ingeniería del Software en realidad?
<<La aplicación de un acercamiento sistemático, cuantificable y disciplinado al desarrollo, operación y mantenimiento de software; es decir, la aplicación de la ingeniería al software>>.