Use of Abstract Interfaces in the Development of Software for Embedded Computer Systems

Abstract

This report describes a procedure for designing computer systems that are developed specifically to be a component of a more complex system. Two significant characteristics of such design problems are the following: the computer system interface is determined by factors outside the control of the computer system designer, and the specifications of that interface are likely to change throughout the life cycle of the system. The purpose of the procedure described in this report is to reduce maintenance costs by means of a software organization that insulates most of the programs from changes in the interface. The procedure is based on the systematic compilation of an assumption list. The assumption list describes those aspects of the interface that future users and other knowledgeable persons consider essential and therefore stable. Other aspects of the interface are ignored. An abstract interface is designed on the basis of this assumption list. A specification of the abstract interface is used to procure the major components of the system. This report explains the principles behind the procedure and illustrates its use. The success of the procedure is primarily limited by the ability of designers and future users to compile an accurate list of assumptions. A side benefit of the procedure is simpler, better structured software. Successful application of the procedure should result in both increased reliability and reduced lift-cycle costs.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Jun 03, 1977
Accession Number
ADA043369

Entities

People

  • David L. Parnas

Organizations

  • United States Naval Research Laboratory

Tags

Communities of Interest

  • Human Systems
  • Materials and Manufacturing Processes

DTIC Thesaurus Topics

  • Abstracts
  • Air Resistance
  • Application Software
  • Buildings And Structures
  • Communication Networks
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Data Analysis
  • Embedded Systems
  • Language
  • Mathematical Analysis
  • Military Research
  • Operating Systems
  • Software Development
  • Specifications

Fields of Study

  • Engineering

Readers

  • Database Systems and Applications
  • Life Cycle Cost Analysis
  • Systems Analysis and Design

Technology Areas

  • Microelectronics