IEEE Transactions on Software Engineering. Sep84, Vol. 10 Issue 5, p477-487. 11p. 2 Color Photographs, 3 Diagrams, 3 Charts.
COMPUTER software development, RAPID prototyping, ENGINEERING, TECHNOLOGY, COMPUTER software reusability, and ELECTRONIC systems
The present crisis in software development forces us to reconsider the fundamental ways in which programming is done. One often quoted solution is to exploit more fully the idea of reusable software. It is the purpose of this paper to examine this concept in all of its forms and to assess the current state of the art. In addition to its usual meaning of reusable code, reusability includes reusable design, various forms of specification systems, so-called application generators. and systems for prototyping. We examine each approach from the perspective of the practicing engineer, and we evaluate the work in terms of how it may ultimately improve the development process for large-scale software systems. [ABSTRACT FROM AUTHOR]
PROTOTYPES, ENGINEERING, TECHNOLOGY, QUALITY function deployment, CUSTOMER feedback, and CONSUMER preferences
Prototypes and models have been used to obtain information on detailed engineering parameters of design for quite some time. Prototypes reduce complexity in the design process by providing a platform for empirical testing of design assumptions. Unfortunately, the production of sufficiently complex prototypes for products such as hand-held mobile terminals, which incorporate both physical and data features, has been costly and time consuming. Thus it has been difficult to use them to generate up-front data such as details of customer needs. To address this problem, the notions of virtual prototypes, use of several successive prototype rounds, and partial prototypes have been put forth. The use of virtual prototypes has been useful, but the lack of a physical domain in them has been a limiting factor in product concept testing and user feedback studies. Resorting to several prototyping rounds has taken into account the need to take in customer feedback between design iterations and has allowed changes to be made, but has not addressed the cost and time consumption of these iterations. Partial prototypes and models of select product properties have been used to save on the cost and time it takes to produce a full prototype, but they have often lacked the depth needed. In this paper, the concept of product demonstrators is put forward to bridge the gap between the physical and virtual domains while retaining the flexibility and speed of the virtual prototypes. A modular demonstrator platform for performing fast demonstrations is presented as an implementation of the concept. [ABSTRACT FROM AUTHOR]
IEEE Transactions on Software Engineering. Nov87, Vol. 13 Issue 11, p1164-1169. 6p. 1 Color Photograph.
SOFTWARE engineering, ENGINEERING, COMPUTER software, and COMPUTER science
Typical software engineering courses teach principles in lectures and readings, then apply them in the development of a single program (requiring several months). We recently taught a software engineering class that incorporated many smaller exercises (requiring several hours). The class was successful: students were able to experiment with a broad set of ideas, and make interesting mistakes without jeopardizing the grades of their development team. This paper describes some tools and techniques we taught, and suggests how they might be incorporated into typical software engineering classes. [ABSTRACT FROM AUTHOR]
IEEE Transactions on Software Engineering. Sep95, Vol. 21 Issue 9, p717-734. 18p. 2 Color Photographs, 8 Diagrams.
PROGRAMMING languages, COMPUTER architecture, SOFTWARE engineering, ENGINEERING, COMPUTER software, and COMPUTER systems
This paper discusses general requirements for architecture definition languages, and describes the syntax and semantics of the subset of the Rapide language that is designed to satisfy these requirements. Rapide is a concurrent event-based simulation language for defining and simulating the behavior of system architectures. Rapide is intended for modelling the architectures of concurrent and distributed systems, both hardware and software. In order to represent the behavior of distributed systems in as much detail as possible, Rapide is designed to make the greatest possible use of event-based modelling by producing causal event simulations. When a Rapide model is executed it produces a simulation that shows not only the events that make up the model's behavior, and their timestamps, but also which events caused other events, and which events happened independently. The architecture definition features of Rapide are described here: event patterns, interfaces, architectures and event pattern mappings. The use of these features to build causal event models of both static and dynamic architectures is illustrated by a series of simple examples from both software and hardware. Also we give a detailed example of the use of event pattern mappings to define the relationship between two architectures at different levels of abstraction. Finally, we discuss briefly how Rapide is related to other event-based languages. [ABSTRACT FROM AUTHOR]
PROGRAMMING languages, ELECTRONIC data processing, COMPUTER software, SOFTWARE engineering, and ENGINEERING
The development of correct specifications is a critical task in the software development process. This paper describes an alternative approach for the development of specifications. The approach relies on a specification language for abstract data types and a synthesis system. The system is capable of translating an abstract data type specification into an executable program. This process defines an alternative methodology that provides the necessary tools for the early testing of the specifications and for the development of prototypes and implementation models. [ABSTRACT FROM AUTHOR]