This document compares five models of software engineering: waterfall, iterative, V-shaped, spiral, and extreme programming. It summarizes each model, noting their key phases or features. For each model it outlines the advantages and disadvantages. The waterfall model involves sequential phases from requirements to maintenance, but is rigid. The iterative model overlaps phases to allow for feedback, but milestones are ambiguous. The V-shaped model emphasizes testing but has little flexibility. The spiral model focuses on risk analysis through repeated cycles but is costly. Extreme programming centers on pair programming and frequent small releases but may lack documentation.