Le développement d'un logiciel suivant les démarches classiques peut être décomposé en une suite de phases : phase de spécification, phase de conception, phase de programmation et phase de maintenance. Dans l'entreprise, ces phases sont souvent prises en charge par des personnes ou des services distincts et clôturées par la production d'un document-type : Par exemple, la phase de conception se conclut par la formalisation d'un cahier des charges des fonctions à modéliser lors de l'étape suivante.
Ce cycle de vie dit "en cascade" marque nettement la succession des phases de travail, ainsi que la division des tâches entre clients, analystes, programmeurs et exploitants.
C'est aux phases de conception et de programmation que nous nous intéresserons plus particulièrement. Celles-ci sont souvent formalisées par un cycle en V.
Cycle de conception en V.
Les étapes du bras descendant sont validées par leur pendant sur le bras ascendant. Ainsi à la conception de l'architecture de l'application répondent les tests de fonctionnement des composants individuels et leur intégration mutuelle.
Ce schéma met clairement en lumière l'inconvénient principal de la démarche classique : On ne peut valider l'analyse que l'on a menée au début de la démarche qu'une fois tout le travail de programmation, de tests des composants et de leur intégration accompli.