One of the most common methods, even though a lot exsist now, is circular design, which is shown in this diagram.

This method starts up with an analyze of the needs (This might be a really big part of the project).
The next part in the cycle is the design itself, thats matches the needs, found when analyzing.
The design goes through a testhe client, and changes are made.
Now we get to the programming itself, that are going to be followed by another test of the (nearly) done project.
Finally the product goes into production.
FRom here, it will be possible to restart the cycle with a new analyze (e.g. to make a second version of the product).