What is a prototype?
A prototype system can be defined as a small version of the final system. It is
designed to test how well we understand the problem, or in other words to make
sure that the problem-solving strategy, the tool selected for building a system,
and techniques for representing acquired data and knowledge are adequate to
the task. It also provides us with an opportunity to persuade the sceptics and, in
many cases, to actively engage the domain expert in the system’s development.
After choosing a tool, massaging the data and representing the acquired
knowledge in the form suitable for that tool, we design and then implement a
prototype version of the system. Once it is built, we examine (usually together
with the domain expert) the prototype’s performance by testing it with a variety
of test cases. The domain expert takes an active part in testing the system, and as
a result becomes more involved in the system’s development.
What is a test case?
A test case is a problem successfully solved in the past for which input data and
an output solution are known. During testing, the system is presented with the
same input data and its solution is compared with the original solution.
What should we do if we have made a bad choice of the system-building
tool?
We should throw the prototype away and start the prototyping phase over again
– any attempt to force an ill-chosen tool to suit a problem it wasn’t designed for
would only lead to further delays in the system’s development. The main goal of
the prototyping phase is to obtain a better understanding of the problem, and
thus by starting this phase with a new tool, we waste neither time nor money.