Case Study On Prototyping Model
Case Study On Prototyping Model
A Case Report on
“PROTOTYPING MODEL”
In partial fulfillment of the requirement for the degree of BSc Computer Science
and Information Technology
(BSc CSIT)
Submitted to:
Submitted by:
Prajjwal Rana
Prabin Magar
2081
I
Tribhuvan University
LETTER OF APPROVAL
We certify that we have read this project report and, in our opinion, it is satisfactory in the
scope and quality as a project in the partial fulfillment of the requirement of Bachelor’s
Degree in BSc Computer Science and Information Technology.
……………………….. ..………………………
II
Executive Summary
Prototyping, a technique utilized by organizations like Microsoft, Disney, and Tesla, plays a
crucial role in product innovation, communication, and development. By creating tangible
artifacts, prototypes enable designers, developers, managers, and end-users to visualize and
refine final systems. This iterative process, wherein a prototype is repeatedly tested and
improved based on user feedback, is particularly effective when project requirements are
initially unclear. Historical examples include Tesla's digital prototypes for detecting design
conflicts, Disney's storyboards for film production, and Microsoft's beta versions for software
testing. The approach's main advantages include reduced development time and costs, improved
user involvement, and early issue detection.
However, prototyping also has potential drawbacks, such as insufficient project analysis,
developer attachment to prototypes, excessive development time, and high start-up costs.
Despite these challenges, its applications in requirements gathering, user interface design,
feasibility studies, stakeholder engagement, and training are invaluable. Effective
implementation requires clear communication, structured management, comprehensive
analysis, sufficient resource allocation, and active user engagement. When properly executed,
prototyping enhances communication, ensures better-defined requirements, and significantly
increases the likelihood of project success.
III
Contents
Introduction .................................................................................................................. 1
History of Prototyping.................................................................................................. 2
Findings ......................................................................................................................... 8
Implementations ........................................................................................................... 9
Recommendations ....................................................................................................... 10
Conclusion ................................................................................................................... 11
References .................................................................................................................... 12
IV
Introduction
A prototype is a tangible artifact, not an abstract description that requires interpretation.
Designers, as well as managers, developers, customers and end-user, can use these artifacts to
envision and reflect upon the final system [1]. Tesla builds digital prototypes of its Electrical
vehicles allowing the detection of design conflicts before the parts are manufactured and
assembled. Disney uses storyboards to work through the process of producing feature-length
films. Microsoft sends out thousands of copies of "beta" versions of its software and then uses
its customers as the testers of its "prototype" [2]. It’s a powerful technique, but what place does
it have in systems analysis?
The Prototyping is one of the most popularly used Software Development Life Cycle Models
(SDLC). 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. The purpose of a prototype is to allow users of the
software to evaluate developers' proposals for the design of the eventual product by actually
trying them out, rather than having to interpret and evaluate the design based on descriptions.
Software prototyping provides an understanding of the software's functions and potential
threats or issues. [3]
For the concept of Prototyping Model, The system is partially implemented before or during
the analysis phase thereby allowing 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 until the user approves
the prototype and finds the user approves the prototype and finds the working model to be
satisfactory.
This paper will look at what prototyping is to systems analysis. It will explain some of the
advantages and disadvantages of prototyping and discuss why an organization might or might
not want to consider prototyping. It will discuss who should be involved in prototyping and
how to choose a prototyping approach and a prototyping tool. This is meant to be an overview
of prototyping in systems analysis rather than a step-by-step guide. Links are provided where
more information is available online.
1
History of Prototyping
Early prototyping often involved the creation of an original version of a design that was
improved upon later. This can be seen with the work of aircraft pioneers the Wright Brothers,
who improved their design by working on the real thing rather than a mock-up. This technique
was also used in early software programming, where developers would create new iterations of
an existing product.
In the late 1980s, Carl Deckard began using layered-based manufacturing which paved the way
for rapid prototyping, whereby tooling and materials are used to create 2D models and software
systems are tested before being rolled onto production [6].
Prototyping has come a long way since its inception and remains an important part of product
development today.
2
Positive Aspects of Prototyping Model
There are many advantages to using prototyping in software development – some tangible,
some abstract.
• Reduced time and costs: Prototyping can improve the quality of requirements and
specifications provided to developers. Because changes cost exponentially more to
implement as they are detected later in development, the early determination of what
the user really wants can result in faster and less expensive software. [9]
• Improved and increased user involvement: Prototyping requires user involvement and
allows them to see and interact with a prototype allowing them to provide better and
more complete feedback and specifications. [10] The presence of the prototype being
examined by the user prevents many misunderstandings and miscommunications that
occur when each side believe the other understands what they said. Since users know
the problem domain better than anyone on the development team does, increased
interaction can result in a final product that has greater tangible and intangible quality.
The final product is more likely to satisfy the user's desire for look, feel and
performance.
3
Negative Aspects of Prototyping Model
• Insufficient analysis: The focus on a limited prototype can distract developers from
properly analyzing the complete project. This can lead to overlooking better solutions,
preparation of incomplete specifications or the conversion of limited prototypes into
poorly engineered final projects that are hard to maintain. Further, since a prototype is
limited in functionality it may not scale well if the prototype is used as the basis of a
final deliverable, which may not be noticed if developers are too focused on building a
prototype as a model.
• Excessive development time of the prototype: A key property to prototyping is the fact
that it is supposed to be done quickly. If the developers lose sight of this fact, they very
well may try to develop a prototype that is too complex. When the prototype is thrown
away the precisely developed requirements that it provides may not yield a sufficient
increase in productivity to make up for the time spent developing the prototype [11].
Users can become stuck in debates over details of the prototype, holding up the
development team and delaying the final product.
4
Uses and Applications of Prototyping Model
5
Problems and Solutions in the Use of Prototyping Model
6
Methodologies in Using Prototyping Model
• Incremental Prototyping: Develop the system in small increments, each building on the
previous one, to gradually refine the prototype based on user feedback. This approach
allows for continuous improvement and adaptation, and helps ensure that the final
system meets user needs and expectations.
• Evolutionary Prototyping: Start with a simple prototype and continuously refine and
expand it until it evolves into the final system. This approach is particularly useful for
projects with complex or uncertain requirements, as it allows for ongoing refinement
and validation of the system's design and functionality [12].
• Throwaway Prototyping: Create a prototype solely for the purpose of gathering
requirements and feedback, then discard it and develop the final system from scratch
based on the insights gained. This approach can be useful for projects with well-defined
requirements and a clear vision for the final system, as it allows for rapid prototyping
and iteration without the constraints of maintaining and evolving the prototype.
• Hybrid Prototyping: Combine elements of incremental, evolutionary, and throwaway
prototyping to create a tailored approach that meets the specific needs of the project.
This can include using throwaway prototyping for initial requirements gathering,
followed by incremental or evolutionary prototyping for ongoing development and
refinement [13].
7
Findings
8
Implementations
To successfully implement the Prototyping Model, organizations should follow a structured
approach:
• Select Appropriate Tools: Evaluate and choose prototyping tools that align with the
project requirements and team capabilities. Examples include Balsamic, Sketch, Axure,
and In Vision.
• Training and Skill Development: Provide training and support to the development team
to ensure they have the necessary skills to create effective prototypes.
• Define Clear Objectives: Establish clear objectives for each prototyping iteration,
including specific features to be developed and tested.
• Stakeholder Involvement: Involve stakeholders throughout the prototyping process to
gather feedback and ensure their requirements are met.
• Iterative Development: Implement an iterative development process, allowing for
continuous feedback and refinement of prototypes.
• Integration with Development Process: Integrate prototyping into the overall
development process, ensuring that prototypes are used to guide design, development,
and testing.
• Regular Reviews and Adjustments: Conduct regular reviews of prototypes and make
necessary adjustments based on stakeholder feedback and testing results [11].
9
Recommendations
• Clear Communication: Clearly communicate the purpose and scope of the prototype to
all stakeholders to manage expectations. Emphasize that the prototype is a work in
progress and subject to change, and set clear boundaries and timelines for its
development and refinement.
• Structured Approach: Implement a structured approach to manage changes and
iterations effectively. Establish clear guidelines and processes for incorporating user
feedback, prioritizing changes, and maintaining documentation and traceability.
• Comprehensive Analysis: Combine prototyping with other analysis techniques to
ensure a thorough understanding of system requirements. Conduct formal requirements
analysis, create detailed documentation, and involve subject matter experts and
stakeholders in the analysis process.
• Resource Management: Allocate sufficient resources for prototyping activities,
including time, budget, and personnel. Plan and prioritize prototyping tasks and ensure
that they are aligned with the overall project schedule and objectives.
• User Training and Support: Provide training and support to users to ensure they can
effectively contribute to the prototyping process. Create a collaborative and inclusive
environment for user input and feedback.
10
Conclusion
11
References
[2] C. Melissa McClendon, Larry Rigot, Gerri Akers, " University of Missouri-St. Louis,"
18 July 2024. [Online]. Available:
https://www.umsl.edu/~sauterv/analysis/prototyping/intro.html.
[5] Boehm, B. W., & Hansen, W. J., "A Spiral Model of Software Development and
Enhancement," Crosstalk: The Journal of Defense Software Engineering, pp. 4-11, 2001.
[7] Dewar, Robert B. K.; Fisher Jr., Gerald A.; Schonberg, Edmond; Froehlich, Robert;
Bryant, Stephen; Goss, Clinton F.; Burke, Michael, “The NYU Ada translator and
interpreter,” Proceeding of the ACM-SIGPLAN symposium on Ada programming
language, vol. 15, pp. 194-201, November 1980.
12
13