-
Origenes
El concepto de ingeniería del software surgió en 1968, tras una conferencia en Garmisch (Alemania) que tuvo como objetivo resolver los problemas de la crisis del software. El término crisis del software se usó desde finales de 1960 hasta mediados de 1980 para describir los frecuentes problemas que aparecían durante el proceso de desarrollo de nuevo software. -
Programación Orientada a Objetos
Los conceptos de la programación orientada a objetos tienen origen en Simula 67, un lenguaje diseñado en 1967 para hacer simulaciones de eventos discretos. La programación orientada a objetos fue el estilo de programación dominante a principio y mediados de los años noventa, en gran parte debido a la influencia de lenguajes como C++. Su predominio fue consolidado gracias al auge de las interfaces gráficas de usuario. -
Modelo en Cascada
ordena rigurosamente las etapas del ciclo de vida del software, de tal forma que el inicio de cada etapa debe esperar a la finalización de la inmediatamente anterior. La primera descripción formal la realizó en 1970 Winston W. Royce, en uno de sus artículos. -
Period: to
“Bala de Plata”
Durante décadas, resolver la crisis del software desencadenó en que compañías e investigadores produjeran más y más herramientas software. Cada nueva tecnología o práctica que apareció entre 1970 y 1990 fue tratada como una “bala de plata” (en inglés, silver bullet) que solucionaría la crisis del software. -
Period: to
Prototipado e Iterativo
Prototipado: pertenece a los modelos de desarrollo evolutivo. El prototipo debe ser construido en poco tiempo, usando los programas adecuados y no se deben utilizar muchos recursos, pues a partir de que éste sea aprobado se puede iniciar el verdadero desarrollo del software.
Incremental e iterativo: Divide la funcionalidad del sistema en partes. En cada incremento, una parte de la funcionalidad es desarrollada, desde el análisis hasta las pruebas. -
Metodo Espiral
Combinación de procesos en cascada y prototipado. Fue definido por Barry Boehm en 1986 en el artículo “A Spiral Model of Software Development and Enhancement”. -
Period: to
RUP
El RUP no es un sistema con pasos firmemente establecidos, sino un conjunto de metodologías adaptables al contexto y necesidades de cada organización.
En 1987, Ivar Jacobson fundó la compañía Objectory AB, que desarrolló Objetory, un método de desarrollo orientado a objetos, extensión de lo que se conocía como aproximación Ericsson. -
Evolucion
Con el transcurso de los años se han desarrollado recursos que conforman la ingeniería del software, es decir, herramientas y técnicas de especificación, diseño e implementación del software: la programación estructurada, la programación orientada a objetos, las herramientas CASE, la documentación, los estándares, CORBA, los servicios web, el lenguaje UML, etc. -
RAD
emplea técnicas iterativas y de prototipado. Lo introdujo James Martin en 1991. -
La Llegada de Internet
El crecimiento del uso del navegador, corriendo en el lenguaje HTML, cambió la manera en que estaba organizada la visualización y la recuperación de la información. Las amplias conexiones de red condujeron al crecimiento y la prevención de virus informáticos internacionales en computadores con MS Windows, y la gran proliferación de correo basura se convirtió en una cuestión de diseño importante en sistemas de correo electrónico, inundando canales de comunicación y requiriendo de precalificación. -
Programación Extrema
Enfoque formulado por Kent Beck en 1999, que se diferencia de las metodologías tradicionales principalmente en que pone más énfasis en la adaptabilidad que en la previsibilidad. Sus defensores consideran que ser capaz de adaptarse a los cambios de requisitos en cualquier punto de la vida del proyecto es una aproximación mejor y más realista que definir todos los requisitos al comienzo e invertir esfuerzos después en controlar los cambios. -
Period: to
Tendencia Actual
Las direcciones en las que evoluciona la ingeniería del software hoy en día pueden agruparse de la siguiente manera:
Metodologías ágiles:
Experimentación
Desarrollo dirigido por modelos
Líneas de productos software, en lugar de productos individuales.
A lo largo de los años han surgido numerosas organizaciones y estándares que apoyan la ingeniería del software y que dan más fuerza y potencia a este ámbito.