The document discusses various software modeling techniques:
1. Software models use abstract languages or diagrams to express software design, especially for object-oriented design using UML.
2. Common models described include waterfall, V-shaped, incremental, RAD, agile, iterative, spiral and prototype models.
3. The incremental model divides requirements into independent modules passing through phases until complete. The spiral model combines prototyping and waterfall elements with risk analysis and user feedback at each cycle. RAD uses minimal planning and rapid prototyping.