Results 1 - 10
of
35
The design and implementation of hierarchical software systems with reusable components
- ACM Transactions on Software Engineering and Methodology
, 1992
"... We present a domain-independent model of hierarchical software system design and construction that is based on interchangeable software components and largescale reuse. The model unifies the conceptualizations of two independent projects, Genesis and Avoca, that are successful examples of software c ..."
Abstract
-
Cited by 347 (71 self)
- Add to MetaCart
We present a domain-independent model of hierarchical software system design and construction that is based on interchangeable software components and largescale reuse. The model unifies the conceptualizations of two independent projects, Genesis and Avoca, that are successful examples of software component/building-block technologies and domain modeling. Building-block technologies exploit large-scale reuse, rely on open architecture software, and elevate the granularity of programming to the subsystem level. Domain modeling formalizes the similarities and differences among systems of a domain. We believe our model is a blue-print for achieving software component technologies in many domains.
A Domain-Specific Software Architecture Engineering Process Outline
- ACM SIGSOFT Software Engineering Notes
, 1993
"... "In order to reuse software, there needs to be software to reuse." -- Tracz [9] One of the dilemmas that has prevented software developers from reusing software is the lack of software artifacts to use or the existence of artifacts that are difficult to integrate. Domain-Specific Software Architectu ..."
Abstract
-
Cited by 81 (0 self)
- Add to MetaCart
"In order to reuse software, there needs to be software to reuse." -- Tracz [9] One of the dilemmas that has prevented software developers from reusing software is the lack of software artifacts to use or the existence of artifacts that are difficult to integrate. Domain-Specific Software Architectures (DSSAs) have been proposed[4] in order to address these issues. A DSSA not only provides a framework for reusable software components to fit into, but captures the design rationale and provides for a degree of adaptability. This paper 1 presents an outline for a DomainSpecific Software Architecture engineering process. Keywords: Domain Analysis, Domain Specific Software Architecture, Domain Engineering Introduction The purpose of the paper is to outline the domainengineering process 2 being used to generate a Domain-Specific Software Architecture (DSSA) as part the DARPA DSSA-ADAGE (Avionics Domain Application Generation Environment) Project 3 . It is based 1 A previous version...
Program and interface slicing for reverse engineering
- In IEEE/ACM 15 th Conference on Software Engineering (ICSE'93
, 1993
"... Reverse engineering involves a great deal of effort in comprehension of the current implementation of a software system and the ways in which it differs from the original design. Automated support tools are critical to the success of such efforts. We show how program slicing techniques can be employ ..."
Abstract
-
Cited by 77 (2 self)
- Add to MetaCart
Reverse engineering involves a great deal of effort in comprehension of the current implementation of a software system and the ways in which it differs from the original design. Automated support tools are critical to the success of such efforts. We show how program slicing techniques can be employed to assist in the comprehension of large software systems, through traditional slicing techniques at the statement level, and through a new technique, interface slicing, at the module level. 1
Architecturing software using a methodology for language development
- Proceedings of the 10 th International Symposium on Programming Language Implementation and Logic Programming, number 1490 in Lecture Notes in Computer Science
, 1998
"... Domain-speci c languages (DSLs) can be viewed from both a programming language and a software architecture perspective. The goal of this paper is to relate the two viewpoints. In particular, we demonstrate that DSLs can be constructed using an existing formal methodology for developing general purpo ..."
Abstract
-
Cited by 43 (15 self)
- Add to MetaCart
Domain-speci c languages (DSLs) can be viewed from both a programming language and a software architecture perspective. The goal of this paper is to relate the two viewpoints. In particular, we demonstrate that DSLs can be constructed using an existing formal methodology for developing general purpose
P2: A Lightweight DBMS Generator
- JOURNAL OF INTELLIGENT INFORMATION SYSTEMS
, 1995
"... A lightweight database system (LWDB) is a high-performance, application-specific DBMS. It differs from a general-purpose (heavyweight) DBMS in that it omits one or more features and specializes the implementationof its features to maximizeperformance. Although heavyweight monolithic and extensible D ..."
Abstract
-
Cited by 30 (10 self)
- Add to MetaCart
A lightweight database system (LWDB) is a high-performance, application-specific DBMS. It differs from a general-purpose (heavyweight) DBMS in that it omits one or more features and specializes the implementationof its features to maximizeperformance. Although heavyweight monolithic and extensible DBMSs might be able to emulate LWDB capabilities, they cannot match LWDB performance. In this paper, we describe P2, a generator of lightweight DBMSs, and explain how it was used to reengineer a hand-coded, highly-tuned LWDB used in a production system compiler (LEAPS). We present results that show P2-generated LWDBs reduced the development time and code size of LEAPS by a factor of three and that the generated LWDBs executed substantially faster than versions built by hand or that use an extensible heavyweight DBMS.
DiSTiL: a Transformation Library for Data Structures
- In USENIX Conference on Domain-Specific Languages
, 1997
"... DiSTiL is a software generator that implements a declarative domain-specific language (DSL) for container data structures. DiSTiL is a representative of a new approach to domain-specific language implementation. Instead of being the usual one-of-a-kind standalone compiler, DiSTiL is an extension lib ..."
Abstract
-
Cited by 30 (11 self)
- Add to MetaCart
DiSTiL is a software generator that implements a declarative domain-specific language (DSL) for container data structures. DiSTiL is a representative of a new approach to domain-specific language implementation. Instead of being the usual one-of-a-kind standalone compiler, DiSTiL is an extension library for the Intentional Programming (IP) transformation system (currently under development by Microsoft Research). DiSTiL relies on several reusable, general-purpose infrastructure tools offered by IP that substantially simplify DSL implementation.
Domain-Specific Languages: from Design to Implementation Application to Video Device Drivers Generation
- IEEE Transactions on Software Engineering
, 1999
"... Domain-specific languages (DSL) have many potential advantages in terms of software engineering ranging from increased productivity to the application of formal methods. Although they have been used in practice for decades, there has been little study of methodology or implementation tools for the D ..."
Abstract
-
Cited by 28 (5 self)
- Add to MetaCart
Domain-specific languages (DSL) have many potential advantages in terms of software engineering ranging from increased productivity to the application of formal methods. Although they have been used in practice for decades, there has been little study of methodology or implementation tools for the DSL approach. In this paper we present our DSL approach and its application to a realistic domain: the generation of video display device drivers. The presentation focuses on the validation of our proposed framework for domain-specific languages, from design to implementation. The framework leads to a flexible design and structure, and provides automatic generation of efficient implementations of DSL programs. Additionally, we describe an example of a complete DSL for video display adaptors and the benefits of the DSL approach for this application. This demonstrates some of the generally claimed benefits of using DSLs: increased productivity, higher-level abstraction, and easier verification....
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
A Framework of Application Generator Design
, 1996
"... Application generators have been demonstrated as a successful approach to achieving software reuse and typically yields higher productivity gains than methods such as component-based reuse. Despite their advantages, industrial software developers are reluctant to adopt these methods due to the lack ..."
Abstract
-
Cited by 20 (10 self)
- Add to MetaCart
Application generators have been demonstrated as a successful approach to achieving software reuse and typically yields higher productivity gains than methods such as component-based reuse. Despite their advantages, industrial software developers are reluctant to adopt these methods due to the lack of tools for constructing generators. This paper presents a framework for the development of application generators. This framework provides a structured design approach and automatic tools for design. The framework consists of a two level design process: The first level is the identification of operations that expresses the fundamental computations of the application domain. The second level is the design of a domain-specific language which allows one to express variations within a family of applications. The domain-specific language is implemented in terms of the operations defined by the first level. We show that the uniform application of partial evaluation enables automatic applicati...

