Reseña histórica de la Industria de Software

  • Primeros pasos

    Primeros pasos
    Se dio el concepto de software como un conjunto de instrucciones para las máquinas lo cual se originó con la creación de las primeras computadoras electrónicas, como la ENIAC (Electronic Numerical Integrator and Computer).
    El software inicialmente se programaba en lenguaje de máquina, lo que requería un conocimiento profundo de la arquitectura de la computadora.
  • FORTRAN

    FORTRAN
    Entre los años 1950 y 1955, John Backus en IBM fue el desarrollador principal del primer lenguaje de nivel superior llamado FORTRAN. Facilitando la programación y permitiendo a los programadores escribir código en un formato más comprensible.
  • Primer lenguaje de desarrollo empresarial

    Primer lenguaje de desarrollo empresarial
    Se empieza a hacer evidente que el software se diferencia demasiado del hardware para poder ser tratado de la misma manera. Se crea el primer lenguaje de desarrollo de gran éxito para las aplicaciones empresariales llamado COBOL.
  • Sistemas operativos

    Sistemas operativos
    La creación de sistemas operativos, como Unix desarrollado por Bell Labs, fue fundamental para el desarrollo de sistemas operativos modernos.
    IBM lanzó el Sistema/360, que fue una de las primeras computadoras compatibles a nivel de software.
  • Sistemas operativos de IBM

    Sistemas operativos de IBM
    IBM creó dos sistemas operativos: OS, destinado a los sistemas más grandes y más caros con funcionalidad compleja para un uso más eficiente del hardware y DOS, dirigido a maquinas más pequeñas y menos costosas.
  • Fábrica de software

    Fábrica de software
    Se analizo la "crisis del software" y se plantearon ideas fundamentales como la "reutilización" o "arquitectura software", aparece también el articulo de Dijkstra "Go To Statement Considered Harmful" que impulso la programación estructurada y en el congreso IFIP se cita por primera vez el concepto de "factoría o fábrica de software".
  • Metodologías

    Metodologías
    Las organizaciones 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 (Informatión hiding), Chen el modelo E/R y Royce el modelo de ciclo de vida en cascada. La formación de los profesionales de la ingeniería del software se centra en las metodologías estructuradas que supusieron un avance importante en el análisis y diseño de software.
  • System Development Corporation

    System Development Corporation
    System Development Corporation concibío un modelo de fabrica de software para tratar de resolver varios problemas. Su modelo gira al rededor de dos partes: El control que incluía las áreas de control de proyectos y aseguramiento de calidad y el área de implementación que incluía áreas de diseño, construcción y pruebas de sistemas.
  • Hitachi

    Hitachi
    La empresa Hitachi trabajo arduamente en la definición y medición de los procesos de desarrollo de software, incorporando elementos de medición y control de calidad lo cual tuvieron que resolver múltiples problemas como la incapacidad de incorporar conceptos de fabrica de software como la estandarización del ciclo de desarrollo del proyecto y el reusó de componentes.
  • Modelo de Toshiba

    Modelo de Toshiba
    La empresa Toshiba en los años 70's se enfocó en la definición de su modelo de fábrica de software en cuatro puntos:
    -Estandarizar los procesos de desarrollo para reducir variaciones entre proyectos.
    -Reuso exhaustivo de diseño y programas para construir nuevos sistemas a fin de reducir el trabajo redundante y maximizar la productividad.
    -Introducir el uso de herramientas estándar a fin de elevar los niveles de desempeño de las personas.
    -Proveer entrenamiento extensivo en las personas.
  • Manual de Hitachi

    Manual de Hitachi
    A finales de los años 70 la empresa Hitachi logró organizar su fábrica de software alrededor de un manual que contenía enfoques de ingeniería y fábrica. En el, se incorporaron diversas técnicas del diseño y codificación estructurados así como tiempos estándares para cada actividad, inspecciones de productos y análisis de defectos del proceso entre otros elementos.
  • Primera generación de herramientas CASE

    Primera generación de herramientas CASE
    Leo Osterweil impartió una charla cuyo titulo fue "Software processes are software too" que supuso el inicio de una nueva forma de abordar los procesos software. Los problemas de no conformidad de proceso se intentaron resolver con estándares como el DoD-STD-2167 o el MILSTD-1521B. La tecnología de 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.
  • PC y Software comercial

    PC y Software comercial
    La introducción de las computadoras personales (PC) impulsó la demanda de software. Microsoft lanzó MS-DOS y posteriormente Windows.
    La industria del software comenzó a adoptar modelos de negocio más orientados al consumidor.
  • Modelos con mejora de procesos

    Modelos con 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, ISO12207, ISO9000-3, etc. También se consolida la orientación a objetos (OO) como aproximación para el desarrollo de sistemas informáticos, apareciendo más de 100 metodologías que terminan dando lugar a la aparición del Lenguaje de Modelado Unificado (UML) y el Proceso Unificado (UP).
  • Sistemas orientados a objetos

    Sistemas orientados a objetos
    También surgen multitudes de 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.
  • Internet

    Internet
    La expansión de Internet cambió la forma en que se distribuía y consumía el software. Empresas como Netscape y Microsoft desempeñaron un papel clave en la guerra de navegadores.
    Surge el código abierto y el movimiento del software libre con proyectos como Linux.
  • Externalización

    Externalización
    Los problemas del año 2000 hicieron plantearse a muchas organizaciones la conveniencia de externalizar (outsourcing) sus procesos de mantenimiento, impulsando la creación por parte de muchas empresas de centros y unidades dedicadas específicamente a la externalización. La gestión y el desarrollo de software externalizado demanda conocimientos y habilidades especializados a los Ingenieros de software.
  • Manifiesto Ágil

    Manifiesto Ágil
    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.
  • Mayor integración entre la ingeniería de software y sistemas

    Mayor integración entre la ingeniería de software y sistemas
    Se asiste una mayor integración entre la ingeniería del software y la ingeniería de sistemas, 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, derechos, 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".
  • Avances en la inteligencia artificial

    Avances en la inteligencia artificial
    El auge de la inteligencia artificial y el aprendizaje automático ha llevado a avances significativos en el software.
    La computación en la nube se convierte en una parte integral de la infraestructura tecnológica.
  • Ingeniería de software continua

    Ingeniería de software continua
    También se plantea 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 el desarrollo y operación) de entregar software de alta calidad al usuario final.
  • Continua la innovación

    Continua la innovación
    La inteligencia artificial, el Internet de las cosas (IoT), la realidad virtual y aumentada, y otras tecnologías emergentes continúan impulsando la evolución de la industria del software.