Adaptable, reusable code

  title={Adaptable, reusable code},
  author={Margaret J. Davis},
  booktitle={SSR '95},
This paper discusses the concept of adaptability as a means for reaping the cost and schedule reduction benefits of reuse. Adaptability strives to implement the variability identified by domain analyses while managing the cost of implementation, extension, and use. The paper discusses a context for understanding different domain-specific reuse approches relative to adaptability and analyzes experience in designing and developing adaptable code. The experience is drawn from the ARPA Software… 

Figures from this paper

Architecting for Domain Variability
This paper addresses how domain analysis served to help create reusable achitectures and components in the development of a real-time embedded system and the approach to incorporating tailorability into these components is described.
Software Reuse: Methods, Models, and Costs
This book covers cost models for reuse, certification of reusable components, and reuse-driven requirements engineeering-as well as a discussion on reuse in dynamic systems.
Reverse Inheritance : An Approach for Modeling Adaptation and Evolution of Applications
In order to facilitate adaptation, evolution, and software re-engineering of application which are written with an object-oriented language, we propose an approach bases on a reverse inheritance
Software architecture adaptability: an NFR approach
This paper adapts the NFR (Non-Functional Requirements) Framework and treats software adaptability requirement as a goal to be achieved during development and treats design alternatives, analysis of tradeoffs and rationalization of design decisions through this adaptation.
Reusable template for product database development
  • W. Dai, D. Zhang, J. R. Crawford
  • Computer Science
    1996 IEEE International Conference on Systems, Man and Cybernetics. Information Intelligence and Systems (Cat. No.96CH35929)
  • 1996
A software reuse approach to show how industrial databases can be built rapidly is presented to demonstrate the effectiveness of such an approach, and the obtained product database template was extensively tested and found to be robust and effective in a variety of applications.
Fundamental Approaches to Software Engineering
  • T. Maibaum
  • Computer Science
    Lecture Notes in Computer Science
  • 2000
A personal view of the development of software engineering and its theoretical foundations is presented, the current state is assessed, and some unresolved problems are lists and directions of fruitful research are identified.
Evaluating tools to support component based software engineering
A tools evaluation strategy is proposed that provides a qualitative list of important issues distilled from many years experience of making tool selection decisions that form the basis of a process for tool evaluations as required by higher levels of the SEI Capability Maturity Model.
Software as Learning: Quality Factors and Life-Cycle Revised
Under the notion of incremental learning, a new factor, predictiveness, is introduced as the ability to foresee future changes in the specification, thereby reducing the number of revisions, and as a result, other quality factors are revised.
Survivability Architecture for Workflow Management Systems
The work on increasing the survivability of the METEOR workflow management system is described and an architecture describing the main technologies that enable survivability in WfMS is defined.


Reuse of software process and product through knowledge-based adaptation
The reuse capability that Boeing has developed as one of the prime contractors on the U.S. Advanced Research Projects Agency (ARPA) Software Technology for Adaptable, Reliable Systems (STARS) program provides for retrieval and adaptation of both appropriate software artifacts and the processes for using them.
Feature-Oriented Domain Analysis (FODA) Feasibility Study
This report will establish methods for performing a domain analysis and describe the products of the domain analysis process to illustrate the application of domain analysis to a representative class of software systems.
Software component design-for-reuse: a language-independent discipline applied to ADA
This research applies software engineering principles to individual component design and shows all four properties of component C are shown to be locally certifiable.
A Scalable Approach to Software Libraries
Predator is a research project to develop abstractions and tools to provide the bene ts of software libraries without incurring the scalability disadvantages of these libraries.
Software Technology for Adaptable, Reliable Systems (STARS)
The Style Guide addresses three areas of style: (1) application/user interactions of dialogues; (2) conventions for developing applications; and (3) formal and informal user interface standardization efforts.
P~-~-: a language for large-scale reusable software
P++ is an enhanced version of C++ with linguistic extensions for component encapsulation, abstraction, parameterization, and inheritance, where a component is a subsystem, i.e., a suite of interrelated classes and functions.
An architecture developed by Boeing Defense & Space Group, the Domain Architecture for Reuse in Training Systems (DARTS) is discussed and a set of attributes which are believed to characterize a "good" software architecture are derived.
KAPTUR User's Manual, DSTI-93-019
  • National Aeronautics and Space Agency (NASA)
  • 1993
An Instance of the Air Vehicle Training Systems Domain: A ST~S Demonstration Project
  • Proceedings of the 1994 Military, Government and Aerospace Simulation Multiconference
  • 1994
Reuse–Driven Software Process Guidebook
  • Reuse–Driven Software Process Guidebook
  • 1993