Software Prototypes Used In Software Development
Tags: webdev, programming, softwareengineering, sre
Published: 2023-06-26 13:59:36

Software Prototypes is the process of building the working model of software that is under development. But prototype may not be holding the exact functionality of the real software product. Software prototyping is most of the most popular techniques in software development it enables the development team to understand the customer requirements. It helps us to get valuable feedback from customers and helps the development team’s designers of the product about what is the actual scope of the product and what we are going to develop.

What is Software Prototyping?

Prototyping is the working model of the software with limited functionality. The prototype of the software product always does not hold the exact logic of the software. Software prototyping is most of the most popular techniques in software development it enables the development team to understand the customer requirements. It helps us to get valuable feedback from customers and helps the development team’s designers of the product about what is the actual scope of the product and what we are going to develop. It helps us to develop the initial product that is described in the proposal.

Some of the important steps are given below.
### Basic Requirement Identification

This phase includes the identification of system requirements by continuously communicating with customers and developers and Business Analysts (BA). This phase begins with the gathering of business requirements of the system this is the most important activity and need to be managed well most of the customer is not sure about what exactly they need. The system test plan is based on the system design.

### Developing the initial prototype

After defining the basic requirements of the system then design the showcase the requirement into the initial user interface of the system.

### Review the prototype

After defining the initial interface present it to the customer and other all stakeholders and collect the feedback from the customer then review the prototype and then redesign the prototype and then use feedback for the product under development.

### Revise and enhance the prototype

The feedback of customers and comments are discussed during the Review of the prototype stage some negotiations happen with the customer on some factors. Time and budget constraints, feasibility constraints, and technical feasibility constraints of the actual product implementation. So, the prototype cycle is changed again and again until the customer's expectation is met.        

## Software Prototypes Types
We discuss the following types of software prototypes.

### Through Away/ Rapid Prototyping

Trough away prototyping is rapid prototyping or close-ended prototyping. This type of prototype uses little effort and minimum requirement analysis. Once the actual requirements are understood then a prototype is discarded, and the actual product is developed based on clear and understood requirements.    

### Evolutionary Prototyping

Evolutionary development is called breadboard prototyping which means building the functional prototype with minimal functionality at the beginning of the software development process. By using evolutionary prototypes, we use the prototype in later stages, and in this type of prototype the requirements are well-understood are included in the prototype and other requirements are added when they are well understood.     

### Incremental Prototyping

Incremental prototyping refers to incrementally building multiple fully functional prototypes integrating all the prototypes at the end of the system development.  

### Extreme Prototyping

The extreme prototype is used when in the website development domain. It consists of three sequential phases. First, the prototype is made with all existing resources and presented in HTML pages then data is simulated using prototypes. In the final phase, the services are implemented with final prototypes.     

### Applications of prototyping

Prototyping has great importance in software development. It increases the user involvement in the system, so the quality and user expectations are met very efficiently. Software prototype provides an initial preview of the system so that is why it is widely used in the modern software development industry.  

### Advantages of Software Prototyping

- It increases the user interaction with software development teams before and in the middle of the system development.
- It helps the user to understand the system well before it is developed the system.
- Reduce development time and cost because the defects can be detected much earlier.
- Encourage customer feedback.
- Missing functionality can be identified early.
- A quick review of the initial software product
- Confuse and hidden functions can be identified.
### Dis-Advantages of Software Prototyping

- Risk is insufficient requirement analysis on the dependency of the prototype.
- Users may get confused about the prototype and actual system.
- Developers may use the existing prototype but technically it is not feasible.