The document provides an overview of software prototyping techniques. It discusses requirements elicitation and applying analysis principles to construct a prototype model of the software. It describes close-ended and open-ended prototyping approaches, and factors to consider for prototyping candidacy. Evolutionary and throwaway prototyping are defined in the context of the software development process. Methods and tools for prototyping like fourth generation techniques, reusable software components, and formal specification environments are also outlined.