Este método divide los procesos de desarrollo en fases de proyecto, estas fases se realizan una sola vez y sus resultados sirven como hipótesis para la siguiente fase, esta metodología se utiliza específicamente en el desarrollo de software.
Esta metodología se le atribuye a Winston W. Royce un teórico de la informática sin embargo él no fue quien la invento, Royce propone un modelo compuesto por 7 fases:
- Requisitos del sistema.
- Requisitos del software.
- Análisis.
- Diseño.
- Implementación.
- Prueba.
- Servicio.
Pero lo más común es que se divida en cinco fases que son:
- Análisis: Se evalúan los requisitos como el coste, rentabilidad y factibilidad.
- Diseño: sirve para la solución específica en base a las exigencias, tareas y estrategias definidas en la fase anterior.
- Implementación: En esta fase se realiza la programación del software, la búsqueda de errores y las pruebas unitarias
- Verificación: permiten determinar si el software cumple con las exigencias definidas en las fases anteriores.
- Mantenimiento: Si la fase de verificación fue exitosa se aprueba la aplicación de productividad, esto incluye la entrega, el mantenimiento y la mejora del software.
Ventajas:
- Organización clara
- Se registran los borradores preliminares
- Ejecución rápida y rentable
- Los costes y la carga de trabajo se pueden estimar al comenzar el proyecto.
Desventajas:
- En ocasiones, los fallos solo se detectan una vez finalizado el proceso de desarrollo.
- No se pueden realizar cambios a largo plazo por el cambio de exigencias.
- No suele coincidir con la realidad el proyecto.