Ingeniería de software
La ingeniería de "software" se puede considerar como la ingeniería aplicada al "software", esto es, por medios sistematizados y con herramientas preestablecidas, la aplicación de ellos de la manera más eficiente para la obtención de resultados óptimos; objetivos que siempre busca la ingeniería. No es solo de la resolución de problemas, sino más bien teniendo en cuenta las diferentes soluciones, elegir la más apropiada.
Desarrollo en espiral
La ingeniería de "software" se vale y establece a partir de una serie de modelos que establecen y muestran las distintas etapas y estados por los que pasa un producto software, desde su concepción inicial, pasando por su desarrollo, puesta en marcha y posterior mantenimiento, hasta la retirada del producto. A estos modelos se les denomina «modelos de ciclo de vida del software». El primer modelo concebido fue el de Royce, más comúnmente conocido como "desarrollo en cascada" o "desarrollo lineal secuencial". Este modelo establece que las diversas actividades que se van realizando al desarrollar un producto software suceden de forma lineal.