-
Period: to
1950
Se aplica al desarrollo de software el mismo proceso que al desarrollo de hardware, tipo cascada rigurosa. Las lecciones aprendidas fueron las siguientes: -
Period: to
1960
El desarrollo de software es artesanal. Las propiedades de software, tales como: fácil de modificar, fácil de copiar, no se gasta, es invisible, fomentaron el proceso de desarrollo tipo “codifica y corrige” (code and fix). Se inició la cultura del hacker en el buen sentido de la palabra, es decir experto en programación. -
Period: to
1970
Se identifican las diferentes fases del desarrollo: requerimientos, análisis, diseño, codificación y pruebas. Se introduce la programación estructurada y métodos formales para especificar software. Se identifican principios de diseño, como modularidad, encapsulación, abstracción de tipos de datos, acoplamiento débil y alta cohesión, entre otros. Se publica el modelo de cascada y se definen los conceptos de verificación y validación. -
Period: to
1980
Se busca la productividad y escalabilidad de sistemas y equipos de desarrollo. La Orientación a Objetos renace con fuerza a través de las múltiples propuestas de lenguajes de programación. Se crea el primer modelo de madurez de capacidades de procesos (SW-CMM) y los primeros estándares. Nace el concepto de Fábricas de Software y se generan las primeras herramientas para incrementar la productividad a través de la programación por el usuario, tales como 4GLs. -
Period: to
1990
La Orientación a Objetos se extiende a las fases de análisis y diseño. Se acuerda un lenguaje de modelado (UML) y se genera el primer proceso comercial de desarrollo orientado a objetos (RUP). Se define el Modelo Espiral para el desarrollo basado en el análisis de riesgos y su vertiente conocida como desarrollo iterativo e incremental. empieza a ocupar la posición crítica en el mercado competitivo y en la sociedad (web). El Software Libre toma fuerza y se crean los primeros ejemplos exitosos. -
Period: to
2000
Los temas nuevos son la agilidad en el desarrollo y el valor para el cliente. Surgen nuevos dispositivos (PDAs, celulares) que involucran el ciclo: Aprendizaje-Seguridad-Mejorar su uso. Las cualidades prioritarias de sistemas son: Seguridad/Privacidad, Usabilidad y Confiabilidad. Crece el entendimiento de las bondades del código abierto. El desarrollo dirigido por modelos (MDD, Model Driven Development) toma fuerza. Se integra el proceso de desarrollo de software con el de sistemas.