The idea behind software prototyping is to allow people who have some 'stake' or interest in a system to 'test drive' designs, rather than having to interpret those designs based on some other means. Though not all prototypes are interactive, the most useful application of prototyping is based upon providing a similation of some behaviour and functionality.
One of the best ways to test the usability of a product while there is still time to make changes is to develop a rapid prototype. The idea is to build a mock-up of the product, which simulates the look and feel of the interface and brings many of the complex interaction problems out in the open.
Once such a mock-up exists, you can show it to customers to determine if it was really what they had in mind. If the prototype does not meet their expectations, it is early enough in the development cycle to redesign and still make the ship date.
A prototype allows you to find out what you need to change. Just run a usability study with customers on the prototype's user interface, and you can have your answer in time to change the design if necessary before the product is fully developed.
Developing a software prototype frequently leads the software engineer to a greater understanding of the application requirements, thus improving the system design.
Prototyping is a highly recommended approach, because review of the prototype enables users, funders, project managers, and developers to agree on how an application should look (e.g. screen layouts, reports) and behave (e.g. flow of control, error handling). In some cases, a prototype enables a software engineer to confirm that a particular requirement, such as performance, can be met.
Details about SOFTWARE PROTOTYPING can be found at Reynard Thomson Website.