El modelo en cascada se originó en la década de 1960 para desarrollar sistemas de software de manera estructurada y metódica, repitiendo las etapas de análisis de requisitos, diseño, codificación, pruebas, implementación y mantenimiento de manera ordenada. El modelo en cascada ha sido criticado porque un proyecto rara vez sigue un proceso lineal y porque cualquier error detectado en pruebas requiere rediseño y nueva programación aumentando los costos.