This document provides an overview of software process models. It defines a software process as a series of steps involving activities, constraints and resources to produce intended output. Key activities in the process include communicating with customers, identifying requirements, analyzing requirements, designing, developing, and testing software. Constraints and resources like people, software, hardware, equipment, time and money must also be considered. The document discusses fundamental activities in software processes like specification, development, validation and evolution. It also covers characteristics like understandability, visibility, supportability, acceptability, reliability and maintainability. Finally, it describes plan-driven and agile software process models and mentions various process models like waterfall, incremental, prototype, spiral and fountain models.