Section 1: Overview
Prototyping is a method of quickly developing a version of the new system which allows users to interact, evaluate, and provide feedback.
- a data gathering technique used to seek initial reaction from users and management, as well as suggestions about changing or enhancing the prototype, possible innovations, and revision plans for what needs to be done next.
- reduces the time needed to develop requirements for a system.
- reduces the time before the user sees something concrete from the design effort
- provides rapid feedback from the user to the designer
- enhances both designer and user understanding of what the system should accomplish
- results in meaningful user involvement in the design process
- may be used as part of the Systems Development Life Cycle (SDLC) or as an alternative to the SDLC
Section 2: Types of Prototypes
Throwaway prototype
- functional but not full-featured model; may be inefficient (also called patched-up prototype)
Nonoperational prototype
- nonworking scale model for purpose of testing certain aspects of design (may omit error-handling, help, etc., in order to test specific features)
First-of-a-series prototype
- fully functional, but restricted to a single site until thoroughly tested
Selected features prototype
- includes some, but not all of the desired features (stubs); may evolve into final system
Section 3: Prototyping vs. Systems Development Life Cycle
Development Cost – resources used in analyzing, designing, and implementing the system
- not clear which is lower
Development Time
- about the same for delivery, but the time until a tangible is delivered is reduced by prototyping
Prototyping Resource Cost
- higher with prototype
Operating Costs – costs to use system
- if 4GL tools used to develop prototype there will be more overhead
Maintenance (modifying, updating, enhancing)
- similar
Section 4: Advantages and Disadvantages
Advantages
- time between determination of user requirements and delivery of system in SDLC may be so long that requirements have evolved
- users don't know what they want until they see a tangible example
- potential for changing the system early in its development
- opportunity to stop development on an unworkable system
- possibility of developing a system that closely addresses users' needs and expectations
Disadvantages
- development begins before system is understood
- managing the prototyping process is difficult because of its rapid, iterative nature
- requires feedback on the prototype
- users may want to adopt incomplete prototypes
Section 5: Development Guidelines
Guidelines for Developing a Prototype
- work on manageable modules
- build the prototype rapidly
- modify the prototype in successive iterations (maintainability and modifiability)
- stress the user interface
-
users must be involved in ...
- experimenting with the prototype
- giving open reactions to the prototype
- suggesting additions to and/or deletions from the prototype
More on prototyping here.