Results 1 -
8 of
8
A Perspective of Generative Reuse
- ANNALS OF SOFTWARE ENGINEERING
, 1998
"... This paper presents a perspective of generative reuse technologies as they have evolved over the last 15 years or so and a discussion of how generative reuse addresses some key reuse problems. Over that time period, a number of different reuse strategies have been tried ranging from pure component ..."
Abstract
-
Cited by 26 (3 self)
- Add to MetaCart
This paper presents a perspective of generative reuse technologies as they have evolved over the last 15 years or so and a discussion of how generative reuse addresses some key reuse problems. Over that time period, a number of different reuse strategies have been tried ranging from pure component reuse to pure generation. The record of success is mixed and the evidence is sketchy. Nevertheless, the paper will use some known metric evidence plus anecdotal evidence, personal experience, and suggestive evidence to define some of the boundaries of the success envelope. Fundamentally
Validating Component Compositions in Software System Generators
- In Proceedings of the Fourth International Conference on Software Reuse
, 1995
"... GenVoca generators synthesize software systems by composing components from reuse libraries. Although GenVoca components can be composed in a vast number of ways, not all compositions are correct. In this paper, we present a model for validating component compositions. The model is based on attribut ..."
Abstract
-
Cited by 22 (7 self)
- Add to MetaCart
GenVoca generators synthesize software systems by composing components from reuse libraries. Although GenVoca components can be composed in a vast number of ways, not all compositions are correct. In this paper, we present a model for validating component compositions. The model is based on attribute grammars and provides a powerful debugging capability of explanation-based error reporting. We demonstrate our results with examples from a GenVoca generator for container data structures. Keywords: software architectures, software system generators, attribute grammars, domain models, GenVoca, software components, explanation-based error reporting. 1 Introduction Software component technologies will play an important role in future software development. Examples of today's componentry include Unix file filters and Visual Basic custom controls (VBXes) [Ude94]. Support for componentry in distributed environments is under development: the Object Management Group's CORBA (Common Object Reque...
A Programming Language for Writing Domain-Specific Software System Generators
, 1996
"... tomized software systems can be quickly and easily assembled from component libraries. Our research demonstrates that for generators to be successful, component libraries must be scalable. Scalability enables libraries to be small, because the components of the library implement distinct and lar ..."
Abstract
-
Cited by 18 (0 self)
- Add to MetaCart
tomized software systems can be quickly and easily assembled from component libraries. Our research demonstrates that for generators to be successful, component libraries must be scalable. Scalability enables libraries to be small, because the components of the library implement distinct and largely orthogonal features. These components can be combined to yield an enormous family of software systems and subsystems. Generators thus become tools for combining components to manufacture these systems and subsystems. In GenVoca, the programming model that forms the foundation of our research, components act as large-scale refinements which simultaneously transform multiple classes from one abstraction to another. Because GenVoca advocates a novel style of program organization, there is little language or tool support for vi this paradigm. We have developed a programming language called P++, which extends C++ with specialized constructs to support the GenVoca model. It permits
Achieving Reuse with Software System Generators
, 1995
"... A key problem in software engineering is building complex software systems economically... In this paper, we review a related set of projects that we have undertaken to understand better the unusual software design techniques that are required and to evaluate the productivity and performance potenti ..."
Abstract
-
Cited by 8 (0 self)
- Add to MetaCart
A key problem in software engineering is building complex software systems economically... In this paper, we review a related set of projects that we have undertaken to understand better the unusual software design techniques that are required and to evaluate the productivity and performance potentials of software system generators.
P++: A Language for Software System Generators
, 1993
"... P++ is a programming language that supports the GenVoca model, a particular style of software design that is intended for building software system generators. P++ is an enhanced version of C++: it offers linguistic extensions for component encapsulation, abstraction, parameterization, and inherit ..."
Abstract
-
Cited by 6 (3 self)
- Add to MetaCart
P++ is a programming language that supports the GenVoca model, a particular style of software design that is intended for building software system generators. P++ is an enhanced version of C++: it offers linguistic extensions for component encapsulation, abstraction, parameterization, and inheritance, where a component is a suite of interrelated classes and functions. This paper describes the motivations for P++, the ideas which underlie its design, the syntax and features of the language, and related areas of research.
A Scalable Approach to Software Libraries
- In Proceedings of the 6th Annual Workshop on Software Reuse (Owego
, 1993
"... Software libraries offer a convenient and accessible means to achieve the benefits of reuse. The components of these libraries are written by hand, and each represents a unique combination of features that distinguishes it from other components. Unfortunately, as the number of features grows, the si ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
Software libraries offer a convenient and accessible means to achieve the benefits of reuse. The components of these libraries are written by hand, and each represents a unique combination of features that distinguishes it from other components. Unfortunately, as the number of features grows, the size of these libraries grows exponentially, making them unscalable. Predator is a research project to develop abstractions and tools to provide the benefits of software libraries without incurring the scalability disadvantages just mentioned. Our approach relies on a careful analysis of an application domain to arrive at appropriate high-level abstractions, standardized (i.e., plug-compatible) interfaces, and layered decompositions. Predator defines language extensions for implementing components, and compilers to automatically convert component compositions into efficient programs. Keywords: Predator, GenVoca, domain analysis, containers, software libraries, software reuse, compositional reu...
Constructing Scripts from Components: Working Note 6
"... this paper. Scripts bear many similarities to computer software -- both are sequences of actions which perform some task. Our work on building scripts from components thus takes us close to work on software composition and reuse. In our model below we draw heavily from the inspiring work by Don Bat ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
this paper. Scripts bear many similarities to computer software -- both are sequences of actions which perform some task. Our work on building scripts from components thus takes us close to work on software composition and reuse. In our model below we draw heavily from the inspiring work by Don Batory's software group at Univ. Texas at Austin [Batory, 1995]
A Compositional Approach to Representing Planning Operators
, 1996
"... AI has frequently been criticized for being `stuck in the microworld' because of the common inability of AI systems to cope with the complexity of real domains. Often, adding details removes regularity, transforming a representation from a few simple structures to a large, unwieldy collection of ..."
Abstract
- Add to MetaCart
AI has frequently been criticized for being `stuck in the microworld' because of the common inability of AI systems to cope with the complexity of real domains. Often, adding details removes regularity, transforming a representation from a few simple structures to a large, unwieldy collection of specialized ones. This paper addresses this problem in the context of representing planning operators (domainspecific knowledge about the effects of actions in a domain) for use by AI planning systems. We present a novel approach in which domain-specific operators are represented as a composition of general components, and show that the problem of manually building a detailed set of operators can be avoided by constructing them from a small number of such components instead. Each component encapsulates information about a domain feature that might be modeled, and each may contribute to several operators. Moreover, we describe how the choice of what to model and what to ignore in a domain can then be easily varied, simply by controlling which components are used. Finally, we show how operator sets built in this way can be used by planning algorithms. 1

