This document discusses software engineering methodologies. It begins by defining software and software engineering. It then covers the software development life cycle including processes like requirements analysis, design, development, testing and maintenance. It describes various methodologies like waterfall, prototyping, iterative development and agile. Waterfall is a linear sequential model while agile focuses on rapid iteration, customer collaboration and responding to change. The document compares agile and plan-driven methods, noting their different suitability based on factors like project length, team experience and requirements stability.