A software process model is an abstract representation of a process that guides the coordination and control of tasks needed to develop software. Common models include waterfall, prototype, rapid application development, evolutionary development, incremental, iterative, spiral, and component-based development. The waterfall model involves sequential phases from requirements to maintenance without iteration. Iterative models allow for incremental development and feedback through multiple iterations. The spiral model combines iterative development with risk analysis through iterations called spirals.