-
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
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"
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
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
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
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
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
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)
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
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
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
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.