0% found this document useful (0 votes)
141 views5 pages

Prototyping Model in Software Development

The prototyping model is a software development life cycle model where an initial prototype is developed to obtain early customer feedback. This prototype is then iteratively refined based on additional customer feedback until the customer approves it. There are two approaches: rapid throwaway prototyping where each prototype is discarded, and evolutionary prototyping where the prototype is incrementally refined. The prototyping model is useful when requirements are unclear or changing, and helps address technical risks through experimenting with prototypes.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
141 views5 pages

Prototyping Model in Software Development

The prototyping model is a software development life cycle model where an initial prototype is developed to obtain early customer feedback. This prototype is then iteratively refined based on additional customer feedback until the customer approves it. There are two approaches: rapid throwaway prototyping where each prototype is discarded, and evolutionary prototyping where the prototype is incrementally refined. The prototyping model is useful when requirements are unclear or changing, and helps address technical risks through experimenting with prototypes.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Software Engineering | Prototyping Model

Prototyping is defined as the process of developing a working replication of a product or


system that has to be engineered. It offers a small scale facsimile of the end product
and is used for obtaining customer feedback as described below:

The Prototyping Model is one of the most popularly used Software Development Life
Cycle Models (SDLC models).This model is used when the customers do not know the
exact project requirements beforehand. In this model, a prototype of the end product is
first developed, tested and refined as per customer feedback repeatedly till a final
acceptable prototype is achieved which forms the basis for developing the final product.
In this process model, the system is partially implemented before or during the analysis
phase thereby giving the customers an opportunity to see the product early in the life
cycle. The process starts by interviewing the customers and developing the incomplete
high-level paper model. This document is used to build the initial prototype supporting
only the basic functionality as desired by the customer. Once the customer figures out
the problems, the prototype is further refined to eliminate them. The process continues
till the user approves the prototype and finds the working model to be satisfactory.
There are 2 approaches for this model:

1. Rapid Throwaway Prototyping –


This technique offers a useful method of exploring ideas and getting customer
feedback for each of them. In this method, a developed prototype need not
necessarily be a part of the ultimately accepted prototype. Customer feedback
helps in preventing unnecessary design faults and hence, the final prototype
developed is of a better quality.
2. Evolutionary Prototyping –
In this method, the prototype developed initially is incrementally refined on the
basis of customer feedback till it finally gets accepted. In comparison to Rapid
Throwaway Prototyping, it offers a better approach which saves time as well as
effort. This is because developing a prototype from scratch for every iteration of the
process can sometimes be very frustrating for the developers.

Advantages –
 The customers get to see the partial product early in the life cycle. This ensures a
greater level of customer satisfaction and comfort.
 New requirements can be easily accommodated as there is scope for refinement.
 Missing functionalities can be easily figured out.
 Errors can be detected much earlier thereby saving a lot of effort and cost, besides
enhancing the quality of the software.
 The developed prototype can be reused by the developer for more complicated
projects in the future.
 Flexibility in design.
Disadvantages –
 Costly w.r.t time as well as money.
 There may be too much variation in requirements each time the prototype is
evaluated by the customer.
 Poor Documentation due to continuously changing customer requirements.
 It is very difficult for the developers to accommodate all the changes demanded by
the customer.
 There is uncertainty in determining the number of iterations that would be required
before the prototype is finally accepted by the customer.
 After seeing an early prototype, the customers sometimes demand the actual
product to be delivered soon.
 Developers in a hurry to build prototypes may end up with sub-optimal solutions.
 The customer might lose interest in the product if he/she is not satisfied with the
initial prototype.
Use –
The Prototyping Model should be used when the requirements of the product are not
clearly understood or are unstable. It can also be used if requirements are changing
quickly. This model can be successfully used for developing user interfaces, high
technology software-intensive systems, and systems with complex algorithms and
interfaces. It is also a very good choice to demonstrate the technical feasibility of the
product.

Software Engineering | Phases of Prototyping Model


The Prototyping model is also a popular software development life cycle model. The
prototyping model can be considered to be an extension of the Iterative Waterfall model.
This model suggests building a working Prototype of the system, before the
development of the actual software.
A prototype is a toy and crude implementation of a system. It has limited
functional capabilities, low reliability, or inefficient performance as compared to
the actual software. A prototype can be built very quickly by using several
shortcuts by developing inefficient, inaccurate or dummy functions.
Necessity of the Prototyping Model –
 It is advantageous to develop the Graphical User Interface (GUI) part of a software
using the Prototyping Model. Through prototype, the user can experiment with a
working user interface and they can suggest any change if needed.
 The prototyping model is especially useful when the exact technical solutions are
unclear to the development team. A prototype can help them to critically examine
the technical issues associated with the product development. The lack of
familiarity with a required development technology is a technical risk. This can be
resolved by developing a prototype to understand the issues and accommodate
the changes in the next iteration.
Phases of Prototyping Model –
The Prototyping Model of software development is graphically shown in the figure
below. The software is developed through two major activities – one is prototype
construction and another is iterative waterfall based software development.

Prototype Development – Prototype development starts with an initial requirements


gathering phase. A quick design is carried out and a prototype is built. The developed
prototype is submitted to the customer for evaluation. Based on the customer feedback,
the requirements are refined and the prototype is suitably modified. This cycle of
obtaining customer feedback and modifying the prototype continues till the customer
approves the prototype.

Iterative Development – Once the customer approves the prototype, the actual
software is developed using the iterative waterfall approach. In spite of the availability of
a working prototype, the SRS document is usually needed to be developed since the
SRS Document is invaluable for carrying out tractability analysis, verification and test
case design during later phases.
The code for the prototype is usually thrown away. However, the experience gathered
from developing the prototype helps a great deal in developing the actual software. By
constructing the prototype and submitting it for user evaluation, many customer
requirements get properly defined and technical issues get resolved by experimenting
with the prototype. This minimises later change requests from the customer and the
associated redesign costs.
Advantages of Prototyping Model – This model is most appropriate for the projects
that suffer from technical and requirements risks. A constructed prototype helps to
overcome these risks.
Disadvantages of Prototyping Model –
 Cost of the development of the software by using prototyping model can increase
in various cases where the risks are very less.
 It may take more time to develop a software by using Prototyping model.
 The Prototyping model is effective only for those projects for which the risks can be
identified before the development starts. Since the prototype is developed at the
start of the project, so the Prototyping model is ineffective for risks that identified
after the development phase starts.

Common questions

Powered by AI

Customer feedback significantly impacts the development process in the Prototyping Model by enabling iterative refinement of the prototype to better meet customer needs. This feedback loop helps identify and correct design flaws, missing functionalities, or usability issues early in development, ensuring the product aligns closely with user expectations . It allows developers to adapt and refine the software's scope and performance parameters based on real-world interaction rather than assumptions, leading to higher user satisfaction and a product that squarely addresses the user's actual requirements . Ultimately, incorporating customer feedback helps minimize late-stage revisions and redesign costs, streamlining the transition from prototype to final product and enhancing its overall quality and usability .

The potential disadvantages of the Prototyping Model include the high cost in terms of time and money, excessive variability in customer requirements, and poor documentation due to constantly changing requirements . Repeated evaluations and changes can lead to confusion and complexity, increasing development time and cost . Customers might demand early delivery of the final product after viewing initial prototypes, which can pressure developers to produce sub-optimal solutions quickly . If not carefully managed, these issues can lead to incomplete requirements understanding, increased project timelines, and dissatisfaction with the final product. Developers may also struggle to accommodate all requested changes, and there is uncertainty in determining the number of iterations required before an acceptable solution is reached, further adding to the project challenges .

Prototyping is particularly beneficial for developing the GUI part of a software system because it provides a tangible interface that users can interact with early in the development process. This allows for experimentation and refinement based on real user feedback, ensuring the interface meets user needs and expectations . It facilitates the identification and correction of usability issues, design faults, and functional gaps, leading to an intuitive and effective user interface design . Engaging users in this way helps developers design an interface that is better aligned with user requirements .

The Software Requirements Specification (SRS) document plays a crucial role in the Prototyping Model by providing a definitive source of project requirements and serving as a basis for traceability, verification, and test case design during later development phases . Despite the existence of a working prototype, the SRS document is necessary because it formalizes the refined and approved requirements and serves as a contract between stakeholders. It ensures that all team members and stakeholders have a clear and consistent understanding of what the final software must accomplish, mitigating risks associated with ambiguous or misunderstood requirements . Additionally, the SRS document supports continuity in development should team members change, ensuring new developers have access to the full scope of project requirements .

Developing a prototype assists in resolving technical issues during software development by providing a practical means to explore and test potential solutions when the technical solutions are unclear. Prototyping allows developers to experiment with technology implementations in a low-risk, iterative manner, identifying and addressing issues such as performance bottlenecks, integration conflicts, or insufficient functionalities before full-scale development proceeds . This approach helps clarify technical uncertainties early on, allowing developers to refine solutions based on trial outcomes and user feedback. By iterating on improvements and validating concepts through experimentation, prototyping improves confidence in technical decisions and reduces the risk of significant revisions in later stages .

The Prototyping Model is most appropriately used in scenarios where product requirements are unclear or subject to rapid changes. It is particularly effective for developing user interfaces, high technology software-intensive systems, and when demonstrating the technical feasibility of a product . This model is suitable for projects with complex algorithms and interfaces since it allows iterative refinement based on frequent feedback. Additionally, it is valuable in situations with high technical risk due to the team's unfamiliarity with development technology, as prototyping enables exploring and resolving technical challenges early on .

The Prototyping Model might be less effective for projects with unidentified risks at the start because it relies heavily on having a preliminary understanding of potential risks at the onset of development. If risks emerge only during later stages of the project, the prototype might not adequately address or foresee these challenges, leading to significant rework or pivoting in the development process . This limitation can result in increased development costs and timelines, potentially causing delays in delivery and budget overruns. Moreover, unanticipated changes may disrupt the continuous feedback loop with customers, reducing the effectiveness of iterative improvements and affecting the final product's quality and user satisfaction .

The key advantages of using the Prototyping Model include early customer involvement, flexible design capabilities, early error detection, and iterative feedback. Early customer involvement ensures that customers can see a partial product early in the cycle, allowing for changes and refinements based on actual needs, which increases customer satisfaction . The flexibility in design allows for the accommodation of new requirements and the correction of missing functionalities, which enhances the final product's alignment with customer expectations . Early detection of errors reduces the cost and effort involved in later stages, contributing to overall software quality . Furthermore, prototypes can be reused in future, more complex projects, providing a foundation for better quality software solutions .

The iterative development phase in the Prototyping Model follows the approval of the prototype by the customer. Unlike the initial prototyping phase, where the focus is on refining the product through repeated customer feedback until a satisfactory prototype is achieved, the iterative development phase uses this approved prototype to develop the actual software using the iterative waterfall approach . The main objectives of this phase are to leverage the insights and defined customer requirements obtained from the prototype to minimize later change requests and associated redesign costs, thereby ensuring a smoother and cost-effective transition from prototype to final product .

Evolutionary prototyping differs from rapid throwaway prototyping in that it involves incrementally refining the initial prototype based on customer feedback until it is accepted, whereas rapid throwaway involves developing a prototype that may not contribute to the final product. Evolutionary prototyping is generally more time- and effort-efficient as it builds upon the previous version, preventing the need to start from scratch for each iteration . This continuity can reduce frustration and expedite reaching a satisfactory model. In contrast, rapid throwaway prototyping allows for more experimental ideas and quick feedback but can be more resource-intensive since prototypes are discarded and newly developed for each cycle .

You might also like