Software Prototyping:It refers to the activity of creating prototype of software applications that is incomplete versions of a software program being developed.
Prototype Model:Prototype model is generally used when the requirements are unclear. It is used when the customer is unclear about the details of the input, process and the output needs of the software.
A prototype is a toy implementation of the system.
It is usually built using several "shortcuts". The shortcuts might involve using inefficient, inaccurate, or dummy functions.
Example: In a process we can show a table-look-up instead of showing actual computation.
In this prototyping quick iterations are planned and quick modelling occurs.
The prototype is implemented and then accessed by customer or user for their feedback to refine requirements for the software.
That prototyping is turned and iterated till the customer satisfaction.Prototype_model
StepWise Approach to Design a Software Prototype
Quick design:After requirement gathering, a quick design is made that is work on flow diagram, languages etc.
Building prototype:In this basic requirements are showcaseed and user interfaces are provided. This prototype gives some look and feel to the customer in what will be exactly product.
Evaluate / review of the prototype:The Prototype developed is then presented to the customer and the other stakeholder in the project. Feedback is collected and used for further enhancements.
Refine prototype:Feedback and comment are discussed and some negotiation happen with customer based on time and budget constraints. The changes accepted again incorporated in new prototype. This cycle repeats until customer expectations are met.
Product:After repeating above the steps, finally product is developed , meeting user expectations.
Need for a prototype in a software development:
To Illustrate the input data formats, messages, report and the interactive dialogue to the customer.
• How the screens might look like.
• How the user interface would behave.
• How the system would produce outputs.
Another reason for developing a prototype is that it is impossible to get the perfect product in the first attempt.
A prototype model can be used when technical solutions are unclear to the development team.
A developed prototype also helps engineers to critically examine the technical issues associated with the product development.
Example:- user requirement are not cleared,
like billing in retail shop, the user of the software not clear about that different functionalities required.
Example 2: Technical issues are not clear.
Suppose project involves writing a compiler and development never written a compiler.
In such case team can consider a simple language, try to build a compiler in order to check the issues.