Lichter, Horst, Schneider-Hufschmidt, Matthias, and Züllighoven, Heinz
IEEE Transactions on Software Engineering. Nov94, Vol. 20 Issue 11, p825-832. 8p. 3 Color Photographs, 1 Chart.
RAPID prototyping, PROTOTYPES, SOFTWARE engineering, COMPUTER software development, USER interfaces (Computer systems), and SYSTEMS design
Prototyping, a method and technique frequently used in many engineering disciplines, has been adopted as a technique in software engineering to improve the calculation of new projects involving risks. However, there has so far been a lack of documented experience with the use of prototyping in industrial software production. The present work tries to close this gap. First, we introduce central prototyping concepts and terminology. In the subsequent section we present five industrial software projects in which explicit use was made of prototyping. Based on our analysis of these projects we present the resulting conclusions: prototyping means more than rapidly developing user interfaces; prototyping is a central part of a development strategy; prototyping means end user involvement; finding the right mixture of prototypes improves the development process. [ABSTRACT FROM AUTHOR]
A method for designing and prototyping program construction systems using relational databases is presented. Relations are the only data structures used inside the systems and for interfaces; programs extensively use relational languages, in particular relational algebra. Two large projects are described. The Ada Relational Translator (ART) is an experimental compiler-interpreter for Ada in which all subsystems, including the parser, semantic analyzer, interpreter, kernel, and debugger, use relations as their only data structure; the relational approach has been pushed to the utmost to achieve fast prototyping in a student environment. Multi-Micro Line (MML) is a tool set for constructing programs for multimicroprocessors' targets, in which relations are used for allocation and configuration control. Both experiences confirm the validity of the approach for managing teamwork in evolving projects, identify areas where this approach is appropriate, and raise critical issues. [ABSTRACT FROM AUTHOR]
IEEE Transactions on Software Engineering. Sep2002, Vol. 28 Issue 9, p817-821. 5p. 2 Black and White Photographs, 1 Diagram.
RAPID prototyping, PROTOTYPES, and ENGINEERING models
The implementation and maintenance of industrial applications have continuously become more and more difficult. In this context, one problem is the evaluation of complex systems. The IEEE defines Prototyping as a development approach promoting the implementation of a pilot version of the intended product. This approach is a potential solution to the early evaluation of a system. It can also be used to avoid the shift between the description/specification of a system and its implementation. This brief introduction to the special section on Rapid System Prototyping illustrates a current picture of Prototyping. [ABSTRACT FROM AUTHOR]
RAPID prototyping, PROTOTYPES, PROCESS control systems, FLEXIBLE manufacturing systems, PETRI nets, and GRAPH theory
This paper presents a methodology for the rapid prototyping of process control systems, which is based on an original extension to classical Petri nets. The proposed nets, called PROT nets, provide a suitable framework to support the following activities: building an operational specification model; evaluation, simulation, and validation of the model; automatic translation into program structures. In particular, PROT nets are shown to be translatable into Ada® program structures concerning concurrent processes and their synchronizations. The paper illustrates this translation in detail using, as a working example, the problem of tool handling in a flexible manufacturing system. [ABSTRACT FROM AUTHOR]
HUMAN-computer interaction, COMPUTER operating systems, COMPUTER programming, RAPID prototyping, SOFTWARE engineering, and NONPROCEDURAL languages (Programming languages)
The design of dialog between the user and an interactive program is a demanding and time-consuming task. A promising approach is to provide a system that integrates specification, rapid prototyping, and the actual use of application dialogs. XS-2 is a system that incorporates these aspects: the XS-2 command language gram- mar, a nonprocedural description language based on regular expressions, is used to specify commands of any application program. The syntax of the command specification is visible to the user: command names and their activation rules are displayed as a command tree. Since we provide a small set of tools for the development and automatic translation of the command specification into a prototype application module in Modula-2, no programming work is necessary to design and evaluate the commands of an application. Our experience shows that an advanced end user can develop his own prototype application himself without any programmer's assistance. [ABSTRACT FROM AUTHOR]
The complexity of hardware/software codesign of embedded real-time signal processing systems can be reduced by rapid system prototyping (RSP). However, existing RSP frameworks do not provide a sound specification and design methodology (SDM) because they require the designer to choose the implementation target before specification and design exploration and they do not work together coherently across development stages. This paper presents a new SDM, called MAGIC, that allows the designer to capture an executable specification model for use in design exploration to find the optimal multiprocessor technology before committing to that technology. MAGIC uses a technique called "virtual benchmarking," for early validation of promising architectures. The MAGIC SDM also exploits emerging open-standards computation and communication middleware to establish model continuity between RSP frameworks. This methodology has been validated through the specification and design of a moderately complex system representative of the signal processing domain: the RASSP Synthetic Aperture Radar benchmark. In this case study, MAGIC achieves three orders of magnitude speedup over existing virtual prototyping approaches and demonstrates the ability to evaluate competitive technologies prior to implementation. Transfer of this methodology to the system-on-a-chip domain using Cadence's Virtual Component Codesign infrastructure is also discussed with promising results. [ABSTRACT FROM AUTHOR]
In this experiment, seven software teams developed versions of the same small-size (2000-4000 source instruction) application soft- ware product. Four teams used the Specifying approach. Three teams used the Prototyping approach. The main results of the experiment were the following. 1) Prototyping yielded products with roughly equivalent performance, but with about 40 percent less code and 45 percent less effort. 2) The prototyped products rated somewhat lower on functionality and robustness, but higher on ease of use and ease of learning. 3) Specifying produced more coherent designs and software that was easier to integrate. The paper presents the experimental data supporting these and a number of additional conclusions. [ABSTRACT FROM AUTHOR]
COMPUTER programming, COMPUTER software development, SYSTEMS design, SOFTWARE engineering, FUNCTIONAL programming (Computer science), and SOFTWARE architecture
Functional programming has enormous potential for reducing the high cost of software development. Because of the simple mathematical basis of functional programming it is easier to design correct programs in a purely functional style than in a traditional imperative style. We argue here that functional programs combine the clarity required for the formal specification of software designs with the ability to validate the design by execution. As such they are ideal for rapidly prototyping a design as it is developed. We give an example which is larger than those traditionally used to explain functional programming. We use this example to illustrate a method of software design which efficiently and reliably turns an informal description of requirements into an executable formal specification. [ABSTRACT FROM AUTHOR]