Durante la decada de los 40 y 50 se trataba el softwqare y el hardware como iguales; siendo el hardware mucho mas costoso que el software
Durante los 60's vivimos la crisis del software, debido a los problemas frecuentes que surgian al desarrollar un nuevo software.
En klas conferencias de la OTAN se analizo la crisis del software, alli aparecio el concepto de Ingenieria desoftware.Se impulso la programacion estructurada
En la decada de los 70's las organizaciones comprobaron que los costes del software superaba a los del hardwqare.
La formacion de los profesionales siguen estando centradas en los sistemas y la programacion sin enfocarse en lo que representa realmente la ingenieria de software
Se proponen:- La descomposicion modular.- Ocultamiento de informacion- El modelo E/R y de ciclo de vida en cascada.
Los problemas de no conformidad de proceso se intentaron desarrollar con estandares como el DoD-STD-2167 o el MILSTD-1521D.
En los 80's aparece la primera generacion de CASE y los lenguajes de programacion orientada a objetos como c++ y eiffel.
En los 90's se desarrollan modelos relacionados con la mejora de procesos de software, como, IDEAL, TSP o PSP.
*Empiezan a surgir varias tecnicas y conocimientos sobre la construccion de sistemas orientados a objetos.* Normas y estandares de calidad como ISO9126, ISO12207, ISO9000-3.
Tambien nace el lenguaje de modelo unificado (UML) y el proceso unificado (UP).
* Se difunden el desarrollo software dirigido por modelos (DSDM) y las familias de productos software.* Tambien ocurre el desarrollo distribuido de software.
En la decada del 2000, se desarrollaron metodos hibridos, que buscan un equilibrio, conbinando la adaptabilidad de los agiles con la formalidad y la documentacion de los metodos rigurosos
Mayor integracion entre la ingenieria de software y la ingenieria de sistemas
Del 2010 a la actualidad la importancia de la ciencia, gestion e ingenieria de los servicios que requiere un enfoque interdisciplinar a la hora de abordar el diseño de los servicios; la necesidad de adaptar los metodos de desarrollo de software para trabajar en un mundo abierto.