Prototyping
Design by Prototyping
A prototype is an original or model on which something is patterned.
It is a first full-scale and usually functional form of a new type or design.
Systems analysts use prototyping tools and languages to implement
this concept.
Prototyping is used to improve the physical design phase.
Prototyping Advantages
- It encourages end-user participation. This increases support for the
system.
- Iteration and change occur during the course of system development.
Prototyping is more suited to this environment because it assumes that
the design evolves into the final system.
- Prototyping helps end-users to identify the requirements for
their system because they see its implementation.
- Prototyping creates an active design method for end-users to be part of.
- An approved prototype is equivalent to paper design specification that
allows errors to be detected much earlier.
- Prototyping can increase productivity through quicker feedback.
- Prototyping accelerates several phases of the SDLC (Software Design
Life Cycle):
- Definition Phase -- Quick experiments using different requirements are
possible. Each prototype may change the design and the requirements until
the end-user accepts them.
- Design Phase -- Screen and report layouts may be quickly changed
until the end-user accepts the design. Terminal dialogue can be tested for
completeness. The design created by the prototype can be used as a model
for coding in a more traditional language.
- Construction Phase -- Final products may be implemented in a prototyping
language.
Prototyping Disadvantages
Most of the disadvantages involved with prototyping come from the designer
attempting to take short-cuts in the design life cycle.
- Prototyping encourages the ``code, implement, and repair'' life cycle.
- It still requires a survey and study phase to identify the problems
involved in the project. This may be overlooked given the ability to
start prototyping too soon.
- Some paper design is still required.
- Prototyping can lead to premature commitment to physical design.
- The use of prototyping may restrict the creativity of designs
because of its dependence upon immediate physical designs.
- Prototypes often suffer from slower performance than their counterparts
written in 3GLs.
Prototyping Languages and Tools
Prototyping could not exist until 4GLs were available.
More traditional languages (3GLs) do not lend themselves to prototyping.
Prototypes must be built and modified quickly. 4GLs and applications
generators are used to do this.
4GLs and Application Generators
Fourth generation languages (4GLs) and applications generators
(AGs) are software tools which allow for quick and simple building of systems.
They allow specification of what a system should be doing instead of how
the system should go about doing it.
Virtually all are built around database management systems (DBMS).
DBMS allow you to organize and store related data.
Prototyping Strategy
The selection phase should be completed before prototyping begins. This is
to allow for the possibility of purchased software packages and for the
correct choice of computing power (ie. micro, mini, mainframe).
Given a feasible solution, prototyping can begin.
Prototyping can build simple outputs, terminal dialogues, functions, subsystems,
or entire systems.
Each prototype is reviewed by users and management who make recommendations
about requirements, methods, and formats.
The revision and review process continues until the prototype is accepted.
This design is usually followed by a construction and delivery phase.
Prototypes are often too inefficient in managing space or processing time
to become the final product.
When used as a real system the prototype database can grow much larger
than the test database causing the system's performance to decline.
Two types of prototyping are Rapid Prototyping and Systems
prototyping.
Rapid Prototyping
Rapid prototyping allows the designer to create and test input designs,
output designs, terminal dialogues, and simple procedures.
Only selected components of the system are built.
This method does not use a complete 4GL or applications generator. It instead
uses a computerized data or project dictionary.
Rapid prototyping proceeds as follows:
- The prototype tool is used to create screens or reports.
- The analyst may place headings, comments, instructions anywhere on the
screen.
- The analyst may also define fields (variables) to appear on the screen.
- When fields are positioned, the analyst can call up previously
described data element specifications from a dictionary.
- Once completed, the screens are demonstrated to the end-user.
- The user interacts with the prototyped system and informs the analyst
what they don't like and what needs to be improved.
- Once completed the analyst can generate code for several technical
environments.
- The entire process can often be done in several hours.
- Other aspects of the system are handled by traditional design techniques.
System Prototyping
Requires the use of 4GLs or application generators.
The system prototyping process involves
a prototype database is designed using whatever constraints are imposed
by the 4GL or AG. A set of test data is loaded into the prototype database.
The following steps may occur in parallel or any sequence:
- Prototyped outputs are created using the report generator of the 4GL/AG.
This allows reports to be quickly defined and their fields filled with
test data from the database.
- Prototyped inputs are created using the screen or report generator of
the 4GL/AG. Screens may be chained to form a dialogue. Input screens
are often designed with minimum editing and no security features.
After inputs/outputs are created they are integrated around some
sort of shell program.
Once completed and accepted the analyst may add security and editing facilities
to the system, or use the prototype as a model for a more traditional 3GL
implementation.
The database structure can often be modified to increase system efficiency.

Author: David Calvert
Date of Last Update: June 5, 1996.