 |
| Requirements Gathering - The developer meets
with the end-user, determines the overall objectives for the new
applications and identifies any known requirements. |
| Quick Design - A quick design then follows
that concentrates on parts of the system that the user sees such as GUI,
menus and basic functions. |
| Building Prototype - The information customer
reactions from the above stages are used to create the first prototype. (see
NOTE 1 below) |
| Customer Evaluation - Once a working prototype
has been completed, the customer reviews the software and reports back to
the developer. This feedback includes clarification of uncertainty,
extended functions, calculation rules and logic rules. |
| Refining Prototype - the customer feedback is
mapped against the existing prototype, logic and calculation rules are
revised and user screens and reports are modified or created. It is
acceptable and common for early prototypes to be thrown away. (see
NOTE 2 below)
The refinement process then moves back into the Quick Design
stage. There will be several iteration of the prototyping stages
until the customer's evaluation is complete. |
Engineering - Once the refining iterations
have been completed the prototype development moves into its final stage
where:
 | the program code is tidied up, |
 | error handling procedures are developed, |
 | databases normalised and performance tuned, |
 | data validation is added to all input screens and interfaces
and |
 | reporting selection criteria are programmed. |
|
|
NOTE 1 Building Prototype - there can be different
types of first prototype:
 | Interactions prototype - a paper or software prototype that
makes it possible for users to understand how to interact with the software
system |
 | Subset Function prototype - a working software program that
implements a subset of the required functionality |
 | Existing program - an existing program with of the required
functionality already present but some of its features need to be improved
in a later refinement stages. |
NOTE 2 There will be two types of complete
prototypes emerging from the Refining Stage:
 | Throwaway prototype - although this may be a usable program,
it is either too big, too slow, too difficult to maintain or of indifferent
quality. |
 | Refinement prototype - this version of a
program will be capable of further enhancement or reworking with the
expectation that it will become the finally engineered version. |
|