Results 1 - 10
of
10
Software Reuse
- ACM Computing Surveys
, 1992
"... Software reuse is the process ofcreating software systems from existing software rather than building software systems from scratch. ‘l’his simple yet powerful vision was introduced in 1968. Software reuse has, however, failed to become a standard software engineering practice. In an attempt to unde ..."
Abstract
-
Cited by 207 (2 self)
- Add to MetaCart
Software reuse is the process ofcreating software systems from existing software rather than building software systems from scratch. ‘l’his simple yet powerful vision was introduced in 1968. Software reuse has, however, failed to become a standard software engineering practice. In an attempt to understand why, researchers have renewed their interest in software reuse and in the obstacles to implementing it. This paper surveys the different approaches to software reuse found in the research literature. It uses a taxonomy to describe and compare the different approaches and make generalizations about the field of software reuse. The taxonomy characterizes each reuse approach interms of its reusable artifacts and the way these artifacts are abstracted, selected, speciahzed, and integrated. Abstraction plays a central role in software reuse. Concise and expressive abstractions are essential if software artifacts are to be effectively reused. The effectiveness of a reuse technique can be evaluatedin terms of cognztzue dwtance-an intuitive gauge of the intellectual effort required to use the technique. Cognitive distance isreduced in two ways: (l) Higher level abstractions ina reuse technique
From ML to Ada: Strongly-typed Language Interoperability via Source Translation
, 1993
"... We describe a system that supports source-level integration of ML-like functional language code with ANSI C or Ada83 code. The system works by translating the functional code into type-correct, "vanilla" C or Ada; it offers simple, efficient, type-safe inter-operation between new functional code com ..."
Abstract
-
Cited by 59 (3 self)
- Add to MetaCart
We describe a system that supports source-level integration of ML-like functional language code with ANSI C or Ada83 code. The system works by translating the functional code into type-correct, "vanilla" C or Ada; it offers simple, efficient, type-safe inter-operation between new functional code components and "legacy" third-generationlanguage components. Our translator represents a novel synthesis of techniques including user-parameterized specification of primitive types and operators; removal of polymorphism by code specialization; removal of higher-order functions using closure datatypes and interpretation; and aggressive optimization of the resulting first-order code, which can be viewed as encoding the result of a closure analysis. Programs remain fully typed at every stage of the translation process, using only simple, standard type systems. Target code runs at speeds comparable to the output of current optimizing ML compilers, even though handicapped by a conservative garbage collector.
Automatically Checking an Implementation against Its Formal Specification
- IEEE Transactions on Software Engineering
, 2000
"... - ..."
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...
Software Design for Reliability and Reuse -- A Proof-Of-Concept Demonstration
- IN CONFERENCE ON TRI-ADA ’94
, 1994
"... The Pacific Software Research Center is developing a new method to support reuse and introduce reliability into software. The method is based on design capture in domain specific design languages and automatic program generation using a reusable suite of program transformation tools. The transformat ..."
Abstract
-
Cited by 15 (0 self)
- Add to MetaCart
The Pacific Software Research Center is developing a new method to support reuse and introduce reliability into software. The method is based on design capture in domain specific design languages and automatic program generation using a reusable suite of program transformation tools. The transformation tools, and a domain specific component generator incorporating them, are being implemented as part of a major project underway at the Oregon Graduate Institute of Science and Technology. The processes used in tool development and application of the method are being captured. Once completed, an experiment will be performed on the generator to assess its usability and flexibility. This paper describes the Software Design for Reliability and Reuse method and illustrates its application to the Message Translation and Validation domain, a problem identified by our sponsors so that our method can be compared directly to a previously existing state-of-the-art solution based on code templates pr...
Calculating Software Generators from Solution Specifications
- In TAPSOFT'95, volume 915 of LNCS
, 1994
"... Software application generators can eliminate many of the technical aspects of programming for most computer users. We have developed a uniform approach to the design of program generators, based upon a simple idea---provide a declarative specification language for each application domain and give i ..."
Abstract
-
Cited by 9 (7 self)
- Add to MetaCart
Software application generators can eliminate many of the technical aspects of programming for most computer users. We have developed a uniform approach to the design of program generators, based upon a simple idea---provide a declarative specification language for each application domain and give it a computable, denotational semantics. To make this idea practical, however, requires a comprehensive system for transforming and translatiing expressions in the higher-order functional operators of the semantics formulation into a reasonably efficient implementation expressed in a first-order, imperative programming language. This paper describes the system we have built to accomplish this. The technique and the system have been applied to produce a generator for modules that validate and translate messages sent from a peripheral sensor to a central controller. The input to a generator is a specification of the data formats and data constraints that characterize a message. The output is an...
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.
Software Design Automation: Language Design in the Context of Domain Engineering
, 1997
"... Domain-specific languages improve the productivity of application engineers by raising the level at which they define domain instances. However, more support for designing and implementing these languages in practice is needed. The Software Design Automation (SDA) method is a specific approach for d ..."
Abstract
-
Cited by 6 (1 self)
- Add to MetaCart
Domain-specific languages improve the productivity of application engineers by raising the level at which they define domain instances. However, more support for designing and implementing these languages in practice is needed. The Software Design Automation (SDA) method is a specific approach for doing domain-specific language design and implementation based on a principled, semantics-based approach to language definition and implementation. This paper articulates SDA as a software development method to be used in the context of existing domain engineering methods. 1. Introduction Throughout the history of computing, domain-specific languages (DSLs) have codified knowledge and increased the productivity of software developers. Significant DSLs include the Formula-Translator (FORTRAN), yet another compiler compiler (yacc), spread sheet languages, and hyper-text markup languages. Traditionally, DSLs have been created opportunistically by visionary experts. Also, techniques for designi...
Design Automation: Making Formal Methods Relevant
- ICSE-17 Workshop on Formal Methods Application
, 1995
"... ormal methods are critical to the emergence of software engineering as a well-organized discipline based, as are other engineering disciplines, on sound and well-tested mathematical models. To this end, future research must be focused on approaches that would have a direct positive impact on large-s ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
ormal methods are critical to the emergence of software engineering as a well-organized discipline based, as are other engineering disciplines, on sound and well-tested mathematical models. To this end, future research must be focused on approaches that would have a direct positive impact on large-scale software development. Crucial to this effort are the following goals ffl Incorporate formal models and algorithms in computer tools designed to solve problems of practical significance ffl Recognize that practical software development is largely driven by user requirements changes Authors supported in part by Air Force Materiel Command. y Pacific Software Research Center, Oregon Graduate Institute of Science & Technology, P.O. Box 91000, Portland, OR 97291-1000 USA, http://www.cse.ogi.edu/PacSoft. ffl Recognize that human understanding and creativity play an important role in software development As well as a c
Static Analysis for Program Generation Templates
"... This paper presents an approach to achieving reliable cost-effective software via automatic program generation patterns. The main idea is to certify the patterns once, to establish a reliability property for all of the programs that could possibly be generated from the patterns. We focus here on pro ..."
Abstract
- Add to MetaCart
This paper presents an approach to achieving reliable cost-effective software via automatic program generation patterns. The main idea is to certify the patterns once, to establish a reliability property for all of the programs that could possibly be generated from the patterns. We focus here on properties that can be checked via computable static analysis. Examples of methods to assure syntactic correctness and exception closure of the generated code are presented. Exception closure means that a software module cannot raise any exceptions other than those declared in its interface. 1.

