-
Nacimiento del concepto de software
John von Neumann escribe el primer programa almacenado en memoria en la computadora ENIAC. Este hito marca el inicio de la programación y el concepto de software como un elemento separado del hardware. -
Primeros lenguajes de programación
Se desarrollan los primeros lenguajes de programación como el ensamblador y el lenguaje máquina. El código era escrito de manera manual, sin herramientas avanzadas. -
Creciente complejidad de los proyectos
A medida que los sistemas de software se volvían más complejos, los proyectos comenzaban a retrasarse y excedían los presupuestos, lo que llevó a lo que se conoció como la "Crisis del Software". -
Primera conferencia sobre Ingeniería de Software
En la Conferencia de la OTAN sobre Ingeniería de Software, se usa por primera vez el término "Ingeniería de Software". En esta conferencia se reconoció la necesidad de un enfoque más estructurado y disciplinado para el desarrollo de software. -
Modelo de cascada
Winston W. Royce propone el "modelo de cascada", un enfoque secuencial en el desarrollo de software, donde cada fase debe completarse antes de comenzar la siguiente. Este modelo fue ampliamente adoptado en la industria. -
Desarrollo de lenguajes de alto nivel
Lenguajes como C comienzan a ser utilizados, permitiendo una programación más flexible y accesible en comparación con el lenguaje ensamblador. -
Aparición de Microsoft y el software comercial
Con la creación de Microsoft y otras empresas, el software comercial comienza a ganar relevancia. Surge el concepto de "producto de software". -
Programación orientada a objetos
Con la aparición del lenguaje Smalltalk y el desarrollo de C++, la programación orientada a objetos (OOP) se populariza, promoviendo la reutilización de código y la modularidad. -
Desarrollo de IDEs (Entornos de Desarrollo Integrado)
Herramientas como Turbo Pascal y otros IDEs comienzan a facilitar el desarrollo de software mediante la integración de compiladores, editores y depuradores en un solo entorno. -
Proceso Unificado
Surge el Proceso Unificado, una metodología iterativa de desarrollo que enfatiza la importancia de la documentación y las fases de análisis, diseño, implementación y pruebas. -
Auge de la web y software distribuido
Con la expansión de Internet, se desarrollan nuevas arquitecturas para software distribuido (cliente-servidor) y el desarrollo web comienza a florecer. -
Java y el software multiplataforma
Sun Microsystems lanza Java, un lenguaje de programación que permite desarrollar software que puede ejecutarse en cualquier plataforma. Esto marca el inicio del desarrollo multiplataforma y de aplicaciones web. -
Manifiesto Ágil
Surge el Manifiesto por el Desarrollo Ágil de Software, que propone un enfoque flexible e iterativo para el desarrollo de software. Metodologías como Scrum y XP (Extreme Programming) ganan popularidad. -
SWEBOK (Software Engineering Body of Knowledge)
El SWEBOK es un estándar que describe el cuerpo de conocimientos necesarios para el ejercicio profesional de la ingeniería de software, su propósito es proporcionar una guía para la formación, certificación y desarrollo profesional en ingeniería de software, además de servir como referencia en la industria y en programas académicos. -
Modelo DevOps
Se empieza a hablar del modelo DevOps, que fomenta la integración continua y la colaboración entre los equipos de desarrollo y operaciones, reduciendo el tiempo de entrega de software y mejorando la calidad. -
Cloud Computing
La computación en la nube (Cloud Computing) se establece como un paradigma importante, permitiendo que el software se ejecute y escale en servidores remotos en lugar de depender del hardware local. -
Microservicios
Las arquitecturas de microservicios ganan popularidad, permitiendo dividir grandes aplicaciones en componentes independientes, mejorando la escalabilidad y el mantenimiento del software. -
Inteligencia Artificial y Machine Learning
La inteligencia artificial (IA) y el machine learning (ML) se integran cada vez más en el desarrollo de software, permitiendo aplicaciones más inteligentes y automatizadas. -
Software low-code/no-code
Las plataformas de desarrollo de software low-code y no-code se popularizan, permitiendo que personas sin habilidades técnicas creen aplicaciones básicas a través de interfaces visuales. -
Automatización y desarrollo autónomo
Se anticipa que el uso de IA en el desarrollo de software siga evolucionando, permitiendo automatizar más tareas de desarrollo, pruebas y despliegue.