Software Synthesis via Domain-Specific Software Architectures

Abstract

Current software engineering practice concentrates on improving the process by which a programmer develops a solution from the description of a problem; we describe a new paradigm for software synthesis based on Domain-Specific Software Architectures (DSSAs) that eliminates this process entirely. A DSSA provides an overall software design that solves a whole class of problems in a broad area. It focuses on the designer's attention on the unique requirements of the current problem, suppressing those that are common to all problems of the type addressed by that DSSA. To use the DSSA approach, a software engineer provides a description of the unique requirements of a particular problem. A solution to that problem is then generated according to the DSSAs overall design by a system that implements the DSSA. Problem descriptions are checked for consistency by the system, and the generated software is guaranteed to solve the problem described. We briefly describe how we have used the DSSA approach to build Eli, a system for compiler construction. Generalizing from Eli, we identify requirements that the implementation of any DSSA should satisfy: incorporation of a manufacturing language to describe the incremental derivation of software objects with architecture-based error reporting; incorporation of an authoring language to allow on-line access to documentation and system components; and the ability to incorporate externally developed tools and export constructed programs.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Sep 01, 1992
Accession Number
ADA451709

Entities

People

  • Anthony M. Sloane
  • William W. Waite

Organizations

  • University of Colorado Boulder

Tags

Communities of Interest

  • Materials and Manufacturing Processes

DTIC Thesaurus Topics

  • Abstracts
  • Computer Science
  • Computers
  • Computing-Related Activities
  • Engineering
  • Engineers
  • Information Operations
  • Language
  • Software Design
  • Software Development

Fields of Study

  • Computer science
  • Engineering

Readers

  • Computational Linguistics
  • Operations Research
  • Software Engineering.