-
En esos tiempos el mundo industrial, como ahora, buscaba la eficiencia en sus procesos. Pero la gran Depresión aparecio, con el fin de combatirla, el presidente Roosevelt, lanzo muchos proyectos. Uno de ellos el proyecto de las Tablas Matematicas, liderado por Gertrude Blanche, quien desarrollaría muchas prácticas para hacer computación manual (Computadoras humanas!). En 1940, Wallace Eckert, en base a ello desarrolaría la 1ra metodología de computación.
-
Al final de la Segunda Guerra Mundial, empezabamos a ver la informática aplicada a dominios problemáticos más allá de la guerra. Herman Goldstine, en base a las ideas de los Gilbreth, junto a John von Neumann, desarrollarían los diagramas de flujo. Maurice Wilkes, David Wheeler y Stanley Gill crerían el concepto de subrutinas, el poder de descomponer algoritmos. John Backus, en base al trabajo de Grace Hooper, desarrolaría el famoso lenguaje de alto nivel Fortran, él dominaría el mundo por años.
-
El término ingeniería del software apareció por primera vez en la década de 1950 y principios de los años 1960. Los programadores siempre habían sabido sobre ingenieros civiles, eléctricos y de computadores y debatían qué podría significar la ingeniería para el software.El Comité de ciencia de la OTAN patrocinó dos conferencias sobre ingeniería del software en 1968 (Garmisch, Alemania y en 1969).
-
La Guerra Fría generó otro conjunto de fuerzas que llevaron a la ingeniería de software a la madurez. Con el fin de defenderse ante la Union Sovietica, el sistema SAGE se desarrollo, este daría grandes aportes al mundo del software: el desarrollo de interfaces humano-computador y la toma de conciencia de desarrollar software en ambientes distribuidos. Es decir, desarrollar software se habia vuelto un problema central y complejo.
-
Estimulada por la llamada crisis del software de la década de 1960 a la de 1980.identifica muchos de los problemas de desarrollo de software. Proyectos de software sobrepasaron el presupuesto y el tiempo estimados. Algunos proyectos causaron daños a la propiedad. Algunos proyectos causaron pérdidas de vidas.productividad, pero evolucionó para enfatizar la calidad. incapacidad de contratar programadores suficientemente calificados.
-
Muchas personas sugieren que fue Friedrich Bauer quien acuño este termino en la conferencia de ingeniería de software de la OTAN en 1968, otros creen que fue Anthony Oettinger, el cual uso este termino en 1966 para hacer referencia a la distincion entre ciencias de la computacion y el desarrollo de sistemas intensivos de software. Sin embargo, años atrás, en la edición de junio de 1965 de la revista 'Computers and Automation', apareció un anuncio de trabajo buscando un "ingeniero de software".
-
Los conceptos de la programación orientada a objetos tienen origen en Simula 67, un lenguaje diseñado en 1967 para hacer simulaciones de eventos discretos. La programación orientada a objetos fue el estilo de programación dominante a principio y mediados de los años noventa, en gran parte debido a la influencia de lenguajes como C++. Su predominio fue consolidado gracias al auge de las interfaces gráficas de usuario.
-
Patrocinó dos conferencias sobre ingeniería del software en 1968 (Garmisch, Alemania ) y en 1969, que dio al campo su impulso inicial. Muchos creen que estas conferencias marcaron el inicio oficial de la profesión de la ingeniería de software.
-
En esta etapa se introdujo la programacion modular junto con conceptos de acoplamiento y cohesión como mecanismos de composicion de algoritmos, Edsger Dijkstra adoptó un enfoque formal y nos dio la idea de la programación estructurada, mucho despúes Ole Dahl y Kristen Nygaard, crearían Simula, el 1er lenguaje de programación orientada a objetos. Las ideas de Barbara Liskov sobre tipos Abstractos de Datos y el modelado de entidad-relación por Peter Chen y muchas más concepto en esta época.
-
Debido a los crecientes problemas de calidad del software, el auge de los sistemas intensivos de software, la globalización del software y el desarrollo de sistemas distribuidos, nuevos enfoques fueron necesarios. Es aqui cuando las ideas de Ole Dahl y Kristen sobre programacion orientado a objetos (OO) dio lugar a lenguajes de programación como Smalltalk, C with Classes (posteriormente renombrado a C++), Ada, y muchos otros.
-
Algunos interpretan que no hay balas de plata significa que la ingeniería de software ha fracasado. Sin embargo, con otras lecturas, Brooks va a decir, "seguramente haremos progresos sustanciales en los próximos 40 años; un orden de magnitud en más de 40 años es casi mágico... ".Herramientas, Disciplina, Proceso, Profesionalismo.
-
Especificación: usuarios e ingenieros definen el software a producir y las restricciones en su funcionalidad.
Desarrollo: fase en la cual el software se diseña y se programa.
Validación: el software debe ser probado para asegurar que cumple con las necesidades del cliente.
Evolución: el software debe poder ser modificado para adaptarse a cambios en el mercado y en las necesidades de los usuarios. -
Combinación de procesos en cascada y prototipado. Fue definido por Barry Boehm en 1986 en el artículo “A Spiral Model of Software Development and Enhancement”. Modelo en espiral
-
Fred Brooks con ocasión del X Congreso Mundial de Informática de la IFIP.1 Brooks argumenta que «no hay un simple desarrollo en tecnología o técnica de gestión, que por sí solo prometa incluso una mejora en la productividad, fiabilidad, simplicidad, en un orden de magnitud dentro de una década». También afirma que, en el desarrollo de software, «no podemos esperar siquiera ver una ganancia del doble cada dos años», como la que hay en el desarrollo del hardware.
-
Y el boom de Internet había llegado al mundo de los negocios, de pronto ahora había una nueva plataforma, todo ahora pasaría a ser distribuido! Los clientes tendrían acceso directo desde cualquier parte del mundo a los sistemas y los sistemas se interconectarían con otros programas externos. Todo ello trajo que la Integración Continua y el desarollo Iterativo sea la forma principal de desarollo, el mundo de patrones se lanzaría a la fama con el famoso libro de la Banda de los Cuatro.
-
Métodos de desarrollo de software basados en procesos iterativos e incrementales, donde los requisitos y soluciones evolucionan durante la colaboración.
Metodologías como Scrum (1995), Extreme Programming (1999) o DSDM (1995) fueron evolucionando hasta que en Febrero del 2001 se publicó “Manifesto for Agile Software Development” para definir la aproximación ahora conocida como metodologías .ágiles. (1995-2012). -
El crecimiento del uso del navegador, corriendo en el lenguaje HTML, cambió la manera en que estaba organizada la visualización y la recuperación de la información. Las amplias conexiones de red condujeron al crecimiento y la prevención de virus informáticos internacionales en computadores con MS Windows, y la gran proliferación de correo basura se convirtió en una cuestión de diseño importante en sistemas de correo electrónico, inundando canales de comunicación y requiriendo de precalificación.
-
Con la creciente demanda de software en muchas organizaciones pequeñas, la necesidad de soluciones de software de bajo costo llevó al crecimiento de metodologías más simples y rápidas que desarrollaran software funcional, de los requisitos de implementación, más rápidos y más fáciles. El uso de prototipos rápidos evolucionó a metodologías ligeras completas como la programación extrema.
-
Actualmente estamos en un nuevo cambio, aunque la IA ha existido decádas, ella está influyendo el mundo de la ingenieria de software de una forma distinta a como antes. Todo ello gracias al crecimiento de la data de todas partes (imagenes, videos, audio) y el poder de la computación!, el Big Data, ha hecho posible el uso de la IA. Y ya hemos visto grandes hitos, como el de AlphaGo.