Ingeniería de Software

  • Crisis del Software y la Primera Conferencia de Ingeniería de Software

    Crisis del Software y la Primera Conferencia de Ingeniería de Software
    Se acuña el término "crisis del software" en la Conferencia de la OTAN sobre Ingeniería de Software, debido a la creciente complejidad del software y los problemas en su desarrollo: sobrecostos, incumplimientos en los plazos y fallos en la calidad. Se plantea la necesidad de un enfoque más estructurado para su desarrollo.
  • Modelo en Cascada

    Modelo en Cascada
    Winston Royce propone el modelo en cascada, considerado el primer enfoque sistemático para el desarrollo de software. Este modelo introduce fases secuenciales bien definidas: requisitos, diseño, implementación, pruebas, despliegue y mantenimiento, aunque más tarde se evidenciarán sus limitaciones en proyectos de gran escala.
  • Brooks y "The Mythical Man-Month"

    Brooks y "The Mythical Man-Month"
    Frederick P. Brooks publica "The Mythical Man-Month", donde analiza problemas de gestión en proyectos de software y plantea la famosa ley de Brooks: "añadir más programadores a un proyecto retrasado solo lo retrasará más".
  • Metodologías Estructuradas y Modelo en V

    Metodologías Estructuradas y Modelo en V
    Surgen metodologías estructuradas como el Modelo en V, que refina el modelo en cascada introduciendo actividades de verificación y validación en cada fase. Además, se populariza la Programación Estructurada gracias a los trabajos de Edsger Dijkstra y el lenguaje Pascal.
  • Ingeniería de Software Basada en Componentes

    Ingeniería de Software Basada en Componentes
    Empieza a consolidarse el desarrollo de software basado en componentes reutilizables, con lenguajes como Ada y C++ facilitando la modularidad y la reutilización del código.
  • Programación Orientada a Objetos y UML

    Programación Orientada a Objetos y UML
    La popularización de C++ y Java impulsa la Programación Orientada a Objetos (POO), lo que permite mejorar la escalabilidad y mantenibilidad del software. En 1997, se introduce UML (Unified Modeling Language) como estándar para la representación visual del diseño de software.
  • Manifiesto Ágil y el Auge de Scrum

    Manifiesto Ágil y el Auge de Scrum
    Se publica el Manifiesto Ágil, un documento que establece 12 principios fundamentales para el desarrollo de software flexible y adaptativo. Metodologías como Scrum, Kanban y Extreme Programming (XP) comienzan a ser ampliamente adoptadas en la industria.
  • DevOps y la Integración Continua

    DevOps y la Integración Continua
    Se populariza la filosofía DevOps, que busca integrar el desarrollo y las operaciones mediante la automatización de pruebas, despliegue continuo y gestión de infraestructura como código. Herramientas como Jenkins y Docker surgen para facilitar estos procesos.
  • La Nube y el Software como Servicio (SaaS)

    La Nube y el Software como Servicio (SaaS)
    Con el crecimiento de plataformas como Amazon Web Services (AWS), Google Cloud y Microsoft Azure, se masifica el uso de la computación en la nube. Modelos de negocio como SaaS (Software as a Service) transforman la forma en que se desarrollan y entregan aplicaciones.
  • Inteligencia Artificial en el Desarrollo de Software

    Inteligencia Artificial en el Desarrollo de Software
    Las técnicas de aprendizaje automático y procesamiento del lenguaje natural comienzan a aplicarse en el desarrollo de software. Herramientas como GitHub Copilot, ChatGPT y AutoML automatizan tareas como la generación de código, la detección de errores y la optimización de algoritmos.
  • Ingeniería de Software Cuántico y Blockchain

    Ingeniería de Software Cuántico y Blockchain
    A medida que avanza la computación cuántica, surgen los primeros lenguajes de programación cuántica como Qiskit y Cirq, planteando nuevos paradigmas en la Ingeniería de Software. Por otro lado, tecnologías como Blockchain redefinen la seguridad y descentralización en aplicaciones financieras y de datos.
  • IA Generativa y Automatización del Desarrollo

    IA Generativa y Automatización del Desarrollo
    Con el avance de modelos de inteligencia artificial generativa, herramientas como ChatGPT, Gemini y Code Llama permiten automatizar aún más el desarrollo de software, generando código completo, pruebas unitarias y documentaciones técnicas con alta precisión.