-
Origen
El término "ingeniería del software" fue utilizado por primera vez por Margaret Hamilton en el Laboratorio de Instrumentación del MIT (Massachusetts Institute of Technology). Hamilton y su equipo estaban desarrollando software para el programa espacial Apollo de la NASA, subrayando la necesidad de adoptar prácticas más disciplinadas y estructuradas en el proceso de desarrollo de software, lo que condujo a una mayor formalización y profesionalización de esta disciplina. -
Crisis del Software
Debido a que los proyectos de software presentaban muchas fallas dado que los desarrollos terminaban sobrepasando el tiempo y costos estimados al inicio del proyecto, no se obtenían los resultados esperados y el software era poco flexible, se inicia un fenómeno conocido como la “crisis del software”, por esta razón en 1968 se realiza la primera conferencia sobre desarrollo de software en Múnich, financiada por la OTAN. . -
Se introduce la programación estructurada
La creciente demanda de acceso instantáneo a los datos supuso una fuerte presión sobre los desarrollos de software e incrementó notablemente la complejidad de los sistemas informáticos, lo que incide en la identificación de las diferentes fases del desarrollo de software como requerimientos, análisis, codificación y pruebas, es aquí donde se introduce la programación estructurada y los métodos formales para especificar software. -
Se desarrolla el modelo en cascada
El modelo en cascada estableció las bases para muchos enfoques de desarrollo de software posteriores al introducir la idea de fases secuenciales y la importancia de la documentación, pero su rigidez y falta de retroalimentación temprana lo hicieron menos adaptable a cambios. -
Aparece el primer estándar para lenguajes de programación, el ANSI C.
El estándar ANSI C impulsó la interoperabilidad al establecer reglas comunes para la escritura de programas, facilitando el desarrollo de software al permitir a los ingenieros simplificar el proceso de codificación, dejando ejecutarse en múltiples plataformas. -
Se introduce la programacion orientada a objetos
Las técnicas para el desarrollo de software de cuarta generación cambian la forma en que se construyen los programas para incrementar la productividad a través de la programación por el usuario, se introducen la tecnología de programación orientada a objetos a través de múltiples lenguajes de programación desplazando los enfoques de desarrollo tradicionales. A finales de esta década se crea el primer modelo de madurez de capacidad de procesos. -
Publicación del libro "Software Engineering Economics" de Barry Boehm.
El libro se centra en la aplicación de principios económicos a la toma de decisiones en el ámbito de la ingeniería del software. Barry Boehm introduce el concepto de "modelo de costo de software" como una herramienta esencial para evaluar y gestionar proyectos de desarrollo de software. El modelo de costo de software proporciona una estructura para estimar los recursos necesarios, el tiempo y los costos asociados con el desarrollo de software. -
Creación de la CMM
El CMM, desarrollado por el Software Engineering Institute (SEI) de la Universidad Carnegie Mellon, proporcionó un marco estructurado para que las organizaciones evaluaran y mejoraran sus procesos de desarrollo de software. Este modelo introdujo cinco niveles de madurez que van desde el nivel inicial hasta el nivel optimizado, cada uno representando un grado creciente de disciplina y capacidad organizativa en la gestión del ciclo de vida del software. -
Comienza el movimiento de código abierto
Se empieza a explorar patrones de diseño y arquitectura. Para esta época el software era privado, a raíz de esto surge la necesidad por los programadores de iniciar proyectos que promueva la creación de código abierto y libre. La usabilidad de los sistemas se convierte en un área de enfoque y estudio significativa, mientras que el software comienza a desempeñar un papel crucial en el mercado competitivo y en la sociedad conectada a través de la web. -
Lanzamiento de Java
Java revolucionó la programación al introducir la portabilidad y la capacidad de ejecutar el mismo código en diversas plataformas.
El papel de Java en la ingeniería del software ha sido diverso y ha abarcado áreas como la portabilidad, el desarrollo web empresarial, la programación orientada a objetos, el desarrollo móvil y la seguridad. Su longevidad y adaptabilidad han contribuido a su permanencia en la industria del software a lo largo de los años. -
Manifiesto Ágil es redactado por expertos en desarrollo de software.
El Manifiesto Ágil es un documento que define los fundamentos del enfoque ágil en el desarrollo de software. Fue redactado durante una reunión de desarrolladores. Su propósito era establecer principios que destacaran la importancia de la flexibilidad, la colaboración y la capacidad de respuesta rápida al cambio en el proceso de desarrollo. Los creadores de este consideraban que estos valores eran fundamentales para enfrentar los desafíos y limitaciones comunes en proyectos de software. -
Llegada del Iphone
La llegada del iPhone en 2007 revolucionó la ingeniería de software al cambiar la experiencia del usuario con su interfaz táctil, dando lugar al auge de las aplicaciones móviles y nuevos modelos de negocio a través de la App Store. Esto impulsó el desarrollo de tecnologías específicas para dispositivos móviles y transformó la forma en que se diseñan y distribuyen las aplicaciones. -
Surge el termino "DevOps"
Es una metodología que busca integrar el desarrollo de software (Dev) con las operaciones de tecnología de la información (Ops) para mejorar la colaboración, la eficiencia y la calidad en el ciclo de vida del desarrollo de software. Surgió como respuesta a los desafíos y las limitaciones de los enfoques tradicionales de desarrollo y operaciones, donde los equipos trabajaban de manera aislada y frecuentemente enfrentaban problemas de comunicación, despliegues complicados y entregas lentas. -
Se lanza el libro "The Phoenix Project"
"The Phoenix Project" es un libro que popularizó DevOps al presentar los desafíos comunes enfrentados por las organizaciones de TI y cómo aplicar los principios de DevOps para superarlos. Utilizando una narrativa de ficción, identifica problemas comunes y destaca la importancia de la cultura organizacional en la transformación de las empresas de TI. -
Desarrollo de la IA
La inteligencia artificial (IA) y el aprendizaje automático (AA) han transformado la ingeniería de software al introducir técnicas avanzadas para la automatización de tareas, la optimización de procesos y la toma de decisiones basada en datos. Estas tecnologías han mejorado la calidad del software, acelerado el desarrollo y permitido la creación de sistemas más inteligentes y adaptables, impulsando la innovación y la eficiencia en la industria del software -
Auge de las arquitecturas de los microservicios
Las arquitecturas de microservicios dividieron las aplicaciones en servicios independientes, permitiendo actualizaciones y despliegues más rápidos, facilitando la estabilidad y la flexibilidad. -
Creciente importancia de sostenibilidad en el desarrollo del software
La importancia de la sostenibilidad en el desarrollo de software ha crecido significativamente debido a preocupaciones ambientales y sociales. Esto ha impulsado la adopción de prácticas como la eficiencia energética, el diseño ecológico de sistemas y la reducción de residuos digitales, lo que promueve un desarrollo de software más ético y responsable con el medio ambiente y la sociedad. -
Desarrollo de soluciones sin código y de bajo código
La evolución de plataformas que permiten a usuarios no programadores crear aplicaciones sin necesidad de conocimientos profundos de codificación, acelerando el desarrollo y la entrega de software. -
Mayor adopción de la informática cuántica en el desarrollo de algoritmos complejos
La informática cuántica ofreció nuevas capacidades para abordar problemas computacionales complejos, transformando la forma en que se desarrollan y ejecutan algoritmos avanzados. -
Implementación generalizada de la ingeniería de software basada en blockchain.
La tecnología blockchain se integró en la ingeniería de software para mejorar la transparencia, seguridad y confianza en diversas aplicaciones, desde contratos inteligentes hasta sistemas de votación electrónica.