This document provides an overview of various software development life cycle (SDLC) models and methodologies. It begins by describing the Capability Maturity Model (CMM) which defines five levels of process maturity. It then discusses traditional models like waterfall and V-shaped, as well as agile approaches like rapid application development, evolutionary prototyping, incremental development, spiral model, and extreme programming. For each model, it summarizes the key steps, strengths, and weaknesses.