C0mputer-aidedpr0t0typing:
transformationalapproach
N Habra
The paper outlines an experiment in the development of a
computer-aided prototyping tool. The idea is to generate a proto-
type from requirements specification by a succession of transfor-
mations. The objective is to support early validation of require-
ments and easier modification of spec!/ication. The tool involves a
set o/'transjbrmation rules that transJorms a non-executable speci-
.fcation into an executable prototype. The specification is written
in the algebraic language ELICSIR and the prototype in the logic
programming language Prolog. The prototype produced by trans-
.['ormation is formally correct with respect to the original specifica-
tion. In addition, it is a high-level product that keeps a sufficient
trace o/'the original specification; this allows the specification to be
easily adjusted according to the user's comments about the proto-
type execution. The computer-aided prototyping approach is illus-
trated by showing the application of the successive trans[ormation
steps on the spec!fcation of a short and complete example.
prototyping, requirements specification, requirements validation,
transformations, computer-aided software engineering, CASE
PROTOTYPING IN SOFTWARE LIFE-
CYCLE
In recent years, there has been a growing use of the terms
"prototype' and 'prototyping' in the software engineering
literature t-3. Nevertheless, a careful analysis reveals that
these words involve a wide spectrum of products and
processes. The various prototyping approaches can be
classified in a multidimensional way according to the
following axes4:
• The objective(s) sought. Prototyping approaches aim at
different objectives, such as validation of specification 5,
elicitation of requirements 6, and experimentation with
new environments.
• The properties concerned. According to the intended
use, a prototype should be a faithful representation of
some (but not all) properties of the final product.
Different properties can be concerned, such as ade-
quacy, feasibility, effectiveness, and user-friendliness.
• The scope covered. Prototypes cover different scopes of
the operational system, such as functionality4, user
interface7-9, or database interface ~°.
lnstitut d'lnformatique, Facultts Universitaires de Namur, 21, Rue
Grandgagnage, B-5000Namur, Belgium
The status of the prototype product in the software life-
cycle model. This status can be determined by the rela-
tionship between the prototype and the specification
product on the one hand (e.g., 'correct implementation
of, 'part of', 'identity') and the relationship between the
prototype and the target operational product on the
other (e.g., 'first version of', 'part of').
The prototyping process. Different kinds of tools and
strategies are used to produce prototypes. Generally,
computer-aided strategies and tools are used for proto-
typing; the idea is to reduce the cost and the duration of
this extra activity. One strategy consists of producing
prototypes directly making use of a prototype compo-
sition tool; such tools include general-purpose ones
such as high-level programming languages ~.~2 and spe-
cific ones such as the so-called fourth-generation lan-
guages. Another strategy consists of the use of an inter-
preting tool that allows some other software product to
be viewed as a prototype; a good representative of this
strategy is the interpretation of specification (e.g., the
interpreters of state-transition diagramsg). The third
strategy, presented in this paper, is based on the trans-
formation of an existing software product, namely, the
specification, into a prototype. Thus a general transfor-
mation tool is used to develop a computer-aided soft-
ware engineering (CASE) prototyping tool that is able
to achieve the desired transformation.
For the sake of generality, the following definitions of
prototype product and prototyping activity are proposed.
The idea is to cover most prototyping approaches; the
concept of sound prototyping is added to avoid an inter-
pretation where the word prototyping disguises the quick
production of some dirty product, which has no well
defined status in the software life-cycle.
Definitions
• A 'prototype' is an executable software product that
represents some of the features of the system to be
eventually produced and that is obtained more quickly
than this system, so as to get early feedback from the
users involved.
• 'Prototyping' is the activity that consists of producing
such a product.
• A prototyping activity is sound if it has a well defined
status on the classification axes given above.
vol 33 no 9 november 1991 0950-5849/91/090685-13 © 1991 Butterworth-Heinemann Ltd 685