well it depends upon the specification you have.
Appropriate models are
Raid (most popular)
The first model is specially used when you are 100% sure about the requirements and you just start developing when you get requirements.
The second model is mostly used and is called Rapid Application Development model, in this you develop the thing as soon as you get the requirement of that particular module, test it and evaluate it with the client and make appropriate changes. it continues to work in a circle.
The prototype model is mostly used in large application in mixture with RAID, in this model you develop software in modules and integrate them at the end. each module is then developed using RAID.
heey, its me Nse.. am also a software engineer.
if you have a clear and specific requirements and u also have a high budget and the Milestones of each activity at a time is clear so use the waterfall.
you can use the Throw-away prototyping if the requirements was poorly understood i mean that the throw-away helps u to understand the whole system, to validate and derive the system requirements then you throw it coz it doesn't considered as a final system.
the evolutionary prototyping must be used for systems where the specifications can not be developed in advance and based on systems that allow rapid system iteration .