SDLC Prototype model: Software development life cycle prototype model is based on building software applications prototypes. These application prototypes display the functional behavior of the product under development but in actual procedure it does not hold the exact logic of the original software product.
The basic idea behind the working behavior of prototype model is that in this SDLC model instead of freezing of customer requirements before a design or coding phase (likewise waterfall model) can proceed. A throwaway or a temporary prototype is built to understand the customer product requirements. This prototype model is developed under the current requirements of the product. By the use of these prototypes the customer can get “a real behavior” of developed product. In this model of SDLC the customer interactions with prototype can enable the customer to better understand the requirements of the desired system. Customer involvement and provide a valuable feedback about the functional behavior of the software product helps to software developer and designers to better understand the problem and overcome the problem with continuously working. So that the exactly as per the user expectation product developed.
Prototyping SDLC modeling approach, also known as evolutionary approach. This approach came to picture after the failures of the final version of the software application development approach used in waterfall model. The failure in the waterfall model generally occurs when the changes in the requirement of the proposed system form the customer side or when a gap in between better understanding the customer requirement by the software development team. A gap in the first version of the developed application, inevitably leads to the need for redoing the application. To overcome these limitations, the concept of prototyping was introduced.
Design of Prototype model:
Prototyping modeling approach is an attractive approach for complicating and large systems for which there is no manual process or existing system to help determining the requirements. The prototypes are usually improper systems and many of the details about he developed system are not built in the prototype. The ultimate goal of this model is to provide a system with overall functionality.
Following phases in the figure below representing the different phases of SDLC Prototype model:
- Requirement gathering and analysis:
In this phase of prototype model the basic requirement identification done by the product analysis team members. It involves to understanding the user functional requirement by requirement analysis team. After completely understanding the user demand team members ready a product requirement tools documents. But in more intricate details of the internal design and external aspects like performance and security can be ignored at this stage.
- Quick Design:
In the quick design phase of prototype model development team developing the initial prototype of the system. In this stage of the model the very basic requirements are showcased and user interfaces are provided. These features used in quick design may not exactly work in the same manner as the actual software developed. But the overall working environment around are used to give the similar look and feel as the final product development to the customer in the prototype developed.
- Building prototypes:
In this phase of prototype model takes quick design from the output of the quick design and build that system design locally. This local building prototype gives a look and feel similar as the final product has to be designed.
- Customer evaluation:
After building the prototype of the system the customer review process is under work in customer evaluation phase of the Prototype model. The customer checks the working functionality of the build prototype and gives a feedback to the development team. These feedback from customer and stackholder of the product is collected in an organized manner and used for further enhancements in the product under development phase.
- Refining product:
This phase is also called revise and enhance the prototype. In the refining product the development team discusses on the customer feedback and reviews about the build prototype and if any issue occurred in the product then team trying to refining the project and successively fulfill the customer desire about the system. This stage some negotiations happen with the customer based on some different factors like, time and budget constraints and technical feasibility of actual implementation. These all changes accepted are again incorporated in the new Prototype developed and the cycle repeats until customer expectations are met.
- Engineer product:
After all successive feedback and positive reviews form the customer the build prototype take over by the software designed and development team. The actual product is designed and development in this phase of prototype model.
These all phases get together gives a successful environment to the SDLC prototype model.
Advantages and disadvantages of SDLC Prototype model:
Every software development model has own advantages and disadvantages that decide the working area of the model. Here we are listing all the advantage and disadvantages of prototype model:
Advantages of prototype model:
The advantage to developing software in the prototype model is that this model allows a high user interface of the customer with the developed system. The working methodology of prototype model is to build a model which provide actual look and feel of system being developed for customer review and feedback about the system functionality. Errors and issues can be detected very easily.
Disadvantages of Prototype model:
To concern the disadvantage of system development in the prototype model increase the complexity of the system as the functional scope of the system is extended beyond the pre-scheduled function of the system. Incomplete application may cause application not to be used as the full system and the functionality of the product.
Pros and Cons of Prototype model:
The SDLC prototype model is used in typical cases when the big amount of data and high functional system development. The decision should be taken very carefully in prototype modelling so that the efforts spent in building the prototype add considerable value to the final software developed. The model has its own pros and cons listed in below table.
|Pros of prototype model||Cons of prototype model|
|High involvement of the customer before actual implementation of the product.||Risk of insufficient requirement analysis owing to too much dependency on prototype.|
|User gets a better understanding with the developed system when a working model of the system displayed in build prototype phase.||Users may get confused in the prototypes and actual systems.|
|Reduces time and cost as the defects can be detected much earlier.||Practically, this methodology may increase the complexity of the system as scope of the system may expand beyond original plans.|
|Quicker user feedback is available leading to better solutions.||Developers may try to reuse the existing prototypes to build the actual system, even when it’s not technically feasible.|
|Missing functionality can be identified easily.||The effort invested in building prototypes may be too much if not monitored properly.|
|Confusing or difficult functions can be identified.|
Application of SDLC Prototype Model:
Software development Prototype model is most very useful approach in the application software development. This model has high level of user interactions with almost all phases of the model such as online systems. In prototype model the system development which needs users to fill out forms or go through various screens before data is processed can use prototyping very effectively to give the imaginary similar to actual working feel and look even before the actual software is developed.
One of the highly required applications of system developed under prototype model is to handle high data processing environment. This model involves too much of data processing and most of the functionality is internal with very little user interface that does not usually benefit from prototyping. System developed under prototype model could be an extra overhead in such projects and may need lot of extra efforts.
In prototype model development team ensures that the end users constantly work with the system and review the system and provide a feedback which is incorporated in the prototype to result in a usable system. They are excellent for designing good human computer interface systems.