Ingeniería de Software

  • 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.