Also referred as static prototypes, wireframes are visual guides representing the structure/layout of website or an application. They arrange graphical elements and layout/ structures, serving a particular purpose — as defined by a product concept or other creative idea. The objective is to provide early visualizations of potential user interfaces, thus setting the basis for quick iterations and product decisions; wireframes can be used to hide complexity by focusing on the user interaction scenarios and aspects of user experience; they are great to help explain the concept and capture feedback from users and stakeholders.
Wireframes are used for decisions in both early and mature stages of the product development process. They are typically reviewed by product team members, stakeholders and representative users; feedback is used to make decisions about the features, information architecture, user flows and other aspects of the product.
Software prototyping refers to incomplete versions of the software product. The purpose a functional prototype is to present a potentially complex idea in a realistic form to its target users and stakeholders; to allow them to interact through characteristic scenarios and good approximations of the real (to-be-developed) product; to capture feedback empowering better and faster product decisions.
Functional prototypes are used early in the product development process, for a short period of time — for demonstrations, discussions and user testing. As soon as decisions are made to move on to product development, the functional prototype is expected to become obsolete shortly.
The functional prototype is typically a quick implementation (under assumptions and other constraints) of the most representative/ important functionality. This is by no means stand-alone or production-ready deliverable. Access to the Functional prototype is not expected to be given to clients directly (typically only as part of workshops and demonstrations). The functional prototype should not be that expensive to build — but this depends on the case. To build the real product though a disproportionate effort may be required.