L'approche adoptée consiste à développer une première implémentation, à la présenter à l'utilisateur et à l'affiner à travers plusieurs versions. Les activités de spécification, de développement et de validation sont menées de manière concurrente. Il existe deux approches distinctes pour cette démarche.