Design
Review preliminary software specifications
Develop functional specifications
Develop prototype based on functional specifications
Review functional specifications
Incorporate feedback into functional specifications
Obtain approval to proceed
Design complete