Prototype Model in Software Engineering

The prototype creation model is a method of developing the software in which a prototype of software or app is constructed, tested, and then reworked as needed until an acceptable result is obtained from which the complete software or product can be developed. This model works best in scenarios where not all project requirements are known in detail in advance. It is an iterative trial and error process that takes place between developers and users.

The new system requirements are set as strictly as possible. It usually involves interviewing multiple users representing all the departments or aspects of the existing system.

Software prototyping refers to the creation of software application prototypes that show the functionality of the product being developed, but that does not have the exact logic of the original software.

Software prototyping is becoming very popular as a software development model, as it allows us to understand customer needs at an early stage of development. It helps to get valuable customer feedback and helps software designers and developers understand exactly what is expected of the product being developed.

The prototype is a functional software model with some limited functions. The prototype does not always maintain the exact logic used in the actual software application and is an additional effort to consider when estimating the effort.

The prototype is used to allow users to evaluate the developers' proposals and test them before implementation. It also helps to understand the specific requirements of the user and that the developer has not taken into account during product design.

Prototype Model in Software Engineering

A step-by-step approach is followed to design a software prototype

Remark:- In this model client satisfaction is guaranteed

Basic Requirement Identification

This step involves understanding the basic requirements of the product, especially in terms of the user interface. At this stage, it is possible to ignore the more complex details of the internal design and external aspects such as performance and safety.

Developing the initial Prototype

The initial prototype is developed at this stage, where the basic requirements are shown, and user interfaces are provided. These features may not work in exactly the same way internally with the actual software developed. Meanwhile, alternative solutions are used to give the same appearance to the customer in the developed prototype.

Review of the Prototype

The developed prototype is demonstrated to the client and other stakeholders of the project. Comments are collected in an organized manner and used for further improvements in the product under development.

Revise and Enhance the Prototype

Review comments and feedback are discussed during this phase, and some negotiations take place with the client based on factors such as time and budget constraints and technical feasibility of the actual implementation. Accepted changes are incorporated back into the newly developed prototype, and the cycle is repeated until customer expectations are met.

Prototypes can have horizontal or vertical dimensions. A horizontal prototype shows the user interface for the product and offers a broader view of the entire system, without focusing on internal functions. On the other hand, a vertical prototype is a comprehensive explanation of a specific function or subsystem in the product.

The purpose of the horizontal and vertical prototype is different. Horizontal prototypes are used to obtain more information about the user interface and business requirements. It can also be presented at sales demonstrations to do business in the market. Vertical prototypes are technical and are used to obtain details on the exact operation of the subsystems. For example, the requirements of the database, the interaction, and the data processing are loaded into a given subsystem.

The prototyping of the software is used in typical cases, and the decision must be taken very carefully so that the efforts dedicated to the construction of the prototype add considerable value to the final software developed. The model has its pros and cons discussed as follows.

The advantages of the prototyping model are the following:

  1. Greater involvement of users in the product even before its implementation.
  2. As a  working prototype model is shown, users gain a better understanding of the software being developed.
  3. Reduce time and costs since defects can be detected much earlier.
  4. There are faster comments from users that lead to better solutions.
  5. Missing features can be easily identified.
  6. It is possible to identify confusing or difficult functions.

The disadvantages of the prototype model are the following:

  1. Risk of analysis of insufficient requirements due to too much dependence on the prototype.
  2. Users can be confused with real prototypes and systems.
  3. Practically, this methodology can increase the complexity of the system since the scope of the system can expand beyond the original plans.
  4. Developers can try to reuse existing prototypes to build the real system, even when it is not technically feasible.
  5. The effort invested in prototyping may be too much if it is not properly controlled.