Results 1 - 10
of
63
Architectural Mismatch or Why it's hard to build systems out of existing parts
, 1995
"... Many would argue that future breakthroughs in software productivity will depend on our ability to combine existing pieces of software to produce new applications. An important step towards this goal is the development of new techniques to detect and cope with mismatches in the assembled parts. Some ..."
Abstract
-
Cited by 277 (6 self)
- Add to MetaCart
Many would argue that future breakthroughs in software productivity will depend on our ability to combine existing pieces of software to produce new applications. An important step towards this goal is the development of new techniques to detect and cope with mismatches in the assembled parts. Some problems of composition are due to low-level issues of interoperability, such as mismatches in programming languages or database schemas. However, in this paper we highlight a different, and in manywaysmore pervasive, class of problem: architectural mismatch. Specifically, we use our experience in building a family of software design environments from existing parts to illustrate a variety of types of mismatch that center around the assumptions a reusable part makes about the structure of the application in which is to appear. Based on this experience we show how an architectural view of the mismatch problem exposes some fundamental, thorny problems for software composition and suggests poss...
JTS: Tools for Implementing Domain-Specific Languages
- In Proceedings Fifth International Conference on Software Reuse
"... The Jakarta Tool Suite (JTS) aims to reduce substantially the cost of generator development by providing domainindependent tools for creating domain-specific languages and component-based generators called GenVoca generators. JTS is a set of precompiler-compiler tools for extending industrial progra ..."
Abstract
-
Cited by 91 (21 self)
- Add to MetaCart
The Jakarta Tool Suite (JTS) aims to reduce substantially the cost of generator development by providing domainindependent tools for creating domain-specific languages and component-based generators called GenVoca generators. JTS is a set of precompiler-compiler tools for extending industrial programming languages (e.g., Java) with domain-specific constructs. JTS is itself a GenVoca generator, where precompilers for JTS-extended languages are constructed from components.
Evolving objectoriented designs with refactorings
- Automated Software Engg
, 2001
"... Abstract 1 Refactorings are behavior-preserving program transformations that automate design level changes in object-oriented applications. Our previous research established that many schema transformations, design patterns, and hotspot meta-patterns are automatable. This research evaluates whether ..."
Abstract
-
Cited by 70 (3 self)
- Add to MetaCart
Abstract 1 Refactorings are behavior-preserving program transformations that automate design level changes in object-oriented applications. Our previous research established that many schema transformations, design patterns, and hotspot meta-patterns are automatable. This research evaluates whether refactoring technology can be transferred to the mainstream by restructuring non-trivial C++ applications. The applications that we examine were evolved manually by software engineers. We show that an equivalent evolution could be reproduced significantly faster and cheaper by applying a handful of general-purpose refactorings. In one application, over 14K lines of code were transformed automatically that otherwise would have been coded by hand. Our experiments identify benefits, limitations, and topics of further research related to the transfer of refactoring technology to a production environment. 1.
Using C++ Templates to Implement Role-Based Designs
- JSSST International Symposium on Object Technologies for Advanced Software
, 1996
"... Abstract. Within the object-oriented technology community, much recent work on design reuse has focused on role-based collaborations distributed across multiple objects. Many bene ts can be derived by mapping role-based designs directly into implementations, including greater ease in maintaining the ..."
Abstract
-
Cited by 63 (3 self)
- Add to MetaCart
Abstract. Within the object-oriented technology community, much recent work on design reuse has focused on role-based collaborations distributed across multiple objects. Many bene ts can be derived by mapping role-based designs directly into implementations, including greater ease in maintaining the connection between designs and implementations under change, and the opportunity for code reuse along with design reuse. Current e orts in role-based designs do not generally provide these bene ts. We provide a method for mapping role-based designs into implementation, preserving the design without unnecessary constraints on the design structures. Roles are represented as parameterized classes, where the parameters represent the types of the participants in the collaboration. Composition of roles is implicit in the binding of parameters to classes in the implementation. The bindings are created at compile time by class de nitions that are separate from the role implementations. In this paper we focus on the use of templates in the C++ language as the supporting mechanism. 1
Design Wizards and Visual Programming Environments for GenVoca Generators
- IEEE Transactions on Software Engineering
, 2000
"... Abstract 1 Domain-specific generators will increasingly rely on graphical languages for declarative specifications of target applications. Such languages will provide front-ends to generators and related tools to produce customized code on demand. Critical to the success of this approach will be dom ..."
Abstract
-
Cited by 45 (17 self)
- Add to MetaCart
Abstract 1 Domain-specific generators will increasingly rely on graphical languages for declarative specifications of target applications. Such languages will provide front-ends to generators and related tools to produce customized code on demand. Critical to the success of this approach will be domain-specific design wizards, tools that guide users in their selection of components for constructing particular applications. In this paper, we present the P3 ContainerStore graphical language, its generator, and design wizard. 1
A Software Engineering Experiment in Software Component Generation
- In 18th International Conference in Software Engineering
, 1996
"... This paper presents results of a software engineering experiment in which a new technology for constructing program generators from domain-specific specification languages has been compared with a reuse technology that employs sets of reusable Ada program templates. Both technologies were applied to ..."
Abstract
-
Cited by 34 (6 self)
- Add to MetaCart
This paper presents results of a software engineering experiment in which a new technology for constructing program generators from domain-specific specification languages has been compared with a reuse technology that employs sets of reusable Ada program templates. Both technologies were applied to a common problem domain, constructing message translation and validation modules for military command, control, communications and information systems (C 3 I). The experiment employed four subjects to conduct trials of use of the two technologies on a common set of test examples. The experiment was conducted with personnel supplied and supervised by an independent contractor. Test cases consisted of message specifications taken from Air Force C 3 I systems. The main results are that greater productivity was achieved and fewer error were introduced when subjects used the program generator than when they used Ada templates to implement software modules from sets of specifications. The d...
Eliminating Redundancies with a “Composition with Adaptation” Meta-programming Technique
- Proc. ESEC-FSE'03, European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering
, 2003
"... Redundant code obstructs program understanding and contributes to high maintenance costs. While most experts agree on that, opinions- on how serious the problem of redundancies really is and how to tackle it- differ. In this paper, we present the study of redundancies in the Java Buffer library, JDK ..."
Abstract
-
Cited by 30 (11 self)
- Add to MetaCart
Redundant code obstructs program understanding and contributes to high maintenance costs. While most experts agree on that, opinions- on how serious the problem of redundancies really is and how to tackle it- differ. In this paper, we present the study of redundancies in the Java Buffer library, JDK 1.4.1, which was recently released by Sun. We found that at least 68 % of code in the Buffer library is redundant in the sense that it recurs in many classes in the same or slightly modified form. We effectively eliminated that 68 % of code at the meta-level using a technique based on “composition with adaptation ” called XVCL. We argue that such a program solution is easier to maintain than buffer classes with redundant code. In this experiment, we have designed our meta-representation so that we could produce buffer classes in exactly the same form as they appear in the original Buffer library. While we have been tempted to re-design the buffer classes, we chose not to do so, in order to allow for the seamless integration of the XVCL solution into contemporary programming methodologies and systems. This decision has not affected the essential results reported in this paper.
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.
Abstract Syntax from Concrete Syntax
- IN PROC. OF INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE
, 1997
"... Modern Software Engineering practice advocates the development of domain-specific specification languages to characterize formally the idioms of discourse and jargon of specific problem domains. With poorly-understood domains it is best to construct an abstract syntax to characterize the domain conc ..."
Abstract
-
Cited by 26 (0 self)
- Add to MetaCart
Modern Software Engineering practice advocates the development of domain-specific specification languages to characterize formally the idioms of discourse and jargon of specific problem domains. With poorly-understood domains it is best to construct an abstract syntax to characterize the domain concepts and abstractions before developing a concrete syntax. Often, however, a good concrete syntax exists a priori: sometimes in sophisticated formal languages characterizing (often mathematical) domains but more often in miniature, legacy-code languages, sorely in need of reverse engineering. In such cases, it is necessary to derive an appropriate abstract syntax – or its first cousin, an object-oriented model – from the concrete syntax. This report describes a transformation process that produces a good abstract representation from a low-level concrete syntax specification.
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

