This document discusses system design and prototyping. It covers functional and architectural design, prototyping, advantages and disadvantages of prototyping, and when to use a prototype model. Prototyping involves building a throwaway prototype based on initial requirements to help clients better understand the system. Prototypes allow for early detection of errors and user feedback to refine requirements and solutions before full development. Prototyping is best for systems with significant user interaction where requirements may be unclear.