Relevant to your project work, a wireframe diagram can be used to communicate, explain, and prototype the basic functionality and requirements, as well as the layout of your product. At the core, wireframes are stories about the future that help to define the functional requirements. User interface wireframes used as prototypes can be coupled with some descriptions to form the body of functional requirements. Functional requirements describe what software does, whereas non-functional requirements capture the quality and constraints of the software, such as performance or security. Functional requirements are gathered through interviews with users and can be written in documents that are difficult to review. Wireframes are an alternate approach to documenting and prototyping functional requirements.