-
Inicios
En estas décadas el coste del hardware era tremendamente superior al del software, que tenía por lo tanto una importancia relativa mucho menor. Se consideraba además que el software se podía desarrollar de la misma forma que se desarrolla el hardware. -
Diferencia
Se empieza a hacer evidente que el software se diferencia demasiado del hardware para poder ser tratado de la misma manera. -
“Crisis del software”
En el NASA/IEEE Software Engineering Workshop de 1966; y las conferencias de la OTAN en 1968 y 1969, se analizó la “crisis del software”, y se plantearon ideas fundamentales como “reutilización” o “arquitectura software”. -
Organizaciones
Se empezaron a comprobar que los costes del software
superaban a los del hardware. Parnas propone la descomposición modular y el concepto de ocultamiento
de información y La formación de los profesionales de la Ingeniería del Software se centra entonces en las metodologías
estructuradas -
Nuevas tecnologías
Se automatiza parte del ciclo de vida del software, apareciendo la conocida como primera generación de herramientas CASE, y los lenguajes de programación orientados a objetos. Se difundieron sobre todo en la década de los ochenta con la aparición de C++, Objective-C y Eiffel -
Mejora de procesos
Se desarrollan los modelos relacionados con la mejora de procesos software, como Ideal, TSP o PSP, y las normas y estándares de calidad como la ISO 9126, ISO 12207, ISO 9000-3, etc. Terminan dando lugar a la aparición del Lenguaje de Modelado Unificado (UML) y el Proceso Unificado (UP) -
Formación
Surgen técnicas y conocimientos sobre la construcción de sistemas orientados a objetos: patrones, heurísticas, refactorizaciones, etc. Lo que supone una profundización en la formación de los profesionales que deben adquirir todas estas “buenas prácticas” para la correcta construcción del software. -
Nuevas metodologías
Se firma el “Manifiesto Ágil” como intento de simplificar la complejidad de las metodologías existentes y en respuesta a los modelos “pesados” tipo CMM, y surgen, los métodos híbridos, que buscan un equilibrio, combinando la adaptabilidad de los ágiles con la formalidad y documentación de los métodos rigurosos. -
Integración
Una mayor integración entre la Ingeniería del Software
y la Ingeniería de Sistemas -destacando el papel de los
requisitos no funcionales y, sobre todo, de la seguridad. -
Enfoque interdisciplinar
La importancia de la “Ciencia, Gestión e Ingeniería de
los Servicios” que requiere un enfoque interdisciplinar
(informática, marketing, gestión empresarial, ciencias
cognitivas, derecho, etc.) a la hora de abordar el diseño
de los servicios; la necesidad de adaptar los métodos
de desarrollo de software para trabajar en un “mundo abierto”. -
Ingeniería del Software Continua
Implantación de la“Ingeniería del Software Continua”, y su correspondiente tecnología y “filosofía” “DevOps”, que logran reducir el tiempo entre que se compromete un cambio en el sistema y que se ponga en producción normal; lo que requiere un cambio cultural para aceptar
la responsabilidad compartida (entre desarrollo y operación).Además de necesitar aprender nuevos conceptos necesario que el desarrollador amplíe su visión con elementos de operación.