-
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.
-
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.
-
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".
-
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.
-
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.
-
Lenguajes como C comienzan a ser utilizados, permitiendo una programación más flexible y accesible en comparación con el lenguaje ensamblador.
-
Con la creación de Microsoft y otras empresas, el software comercial comienza a ganar relevancia. Surge el concepto de "producto de software".
-
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.
-
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.
-
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.
-
Con la expansión de Internet, se desarrollan nuevas arquitecturas para software distribuido (cliente-servidor) y el desarrollo web comienza a florecer.
-
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.
-
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.
-
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.
-
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.
-
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.
-
Las arquitecturas de microservicios ganan popularidad, permitiendo dividir grandes aplicaciones en componentes independientes, mejorando la escalabilidad y el mantenimiento del software.
-
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.
-
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.
-
Se anticipa que el uso de IA en el desarrollo de software siga evolucionando, permitiendo automatizar más tareas de desarrollo, pruebas y despliegue.