significant improvement in software technology is needed to improve programming productivity and software reliability.' Computeraided, rapid prototyping via specification and reusable components is a promising approach that makes this improvement possible. In this approach, the traditional software life cycle is replaced by a life cycle with two phases: rapid prototyping and automatic program generation.2 Completely automatic generation of programs from very high-level specifications is not practical today, but automatic generation of prototypes is feasible. Current manual prototyping methods require too much time and effort, but a computeraided prototyping system would reduce the cost of prototyping and improve the efficiency of the process. However, before such a system can be developed, methods for specifying, selecting, retrieving, and composing reusable components into a prototype that meets a set of requirements must be addressed. Our approach to rapid prototyping uses a specification language (the prototypesystem description language PSDL) integrated with a set of software tools, includ-0740-7459/88/0300/06/$01 .OO 0 1988 IEEE ersity ing an execution support system, a rewrite system, a syntax-directed editor with graphics capabilities, a software base, a design d a t a b a s e , a n d a designmanagement system. The prototyping language lets the designer use dataflow diagrams with nonprocedural control constraints as part of the specification of a hierarchically structured prototype. The resulting description is free f r o m programming-level details, in contrast to prototypes constructed with a programming language. The underlying computational model unifies dataflow and control flow, providing a vehicle for developing top-down decompositions. Such decompositions let large prototypes be executed with practical computation times, in contrast to prototyping by simulating specifications via logic programming without providing a system architecture. The prototype is executed with the aid of reusable components drawn from a software base. The prototyping language is an integral part of the designmanagement system because specifications are used to organize and retrieve reusable components in the software base. IEEE Software
CAPS REF uses a specification language, PSDL (Prototype System Description Language), integrated with a set of software tools, including an execution support system, a rewrite system, a syntax-directed editor with graphics capabilities, a software base, a design database, and a design management system.
A computer-aided prototyping system
IEEE Software
IEEE Software
Computer Science