Behavioral Relationships Between Software Components

Abstract

Building software systems from reusable software components has been a goal of software engineers for nearly three decades. Despite progress, the realization of this goal remains surprisingly elusive. Expensive hardware systems such as aircraft, communication networks, and factory assembly lines are designed so that various subsystems (both hardware and software) can be removed and replaced in order to change the performance and functionality of the overall system. In a similar manner, it should be possible to change the behavior of a component-based software system in useful and predictable ways by removing and replacing entire components. In order to perform component-level maintenance, an engineer must understand not only the structural relationships but also the behavioral relationships among the component to be replaced, the system, and the replacement component. These behavioral relationships need to be clearly documented and available to engineers developing and maintaining component-based systems. This dissertation presents a small set of precisely defined relationships that concisely express behavioral relationships between software components. These relationships may be used to provide implementers and maintainers with useful information about how components can and should be composed when integrated into component-based systems. Furthermore, these relationships encourage strict adherence to the well-established software engineering principles of modularity, information hiding, polymorphism, and extendibility. The relationships described are language-independent and may be encoded in a variety of ways using modern programming languages. The dissertation describes how interface-only components, templates, inheritance, and other language mechanisms may be used to encode these relationships.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Oct 27, 1997
Accession Number
ADA331990

Entities

People

  • David S. Gibson

Organizations

  • Air Force Institute of Technology

Tags

Communities of Interest

  • C4I

DTIC Thesaurus Topics

  • Air Force
  • Application Software
  • Computer Program Documentation
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Engineers
  • High Level Languages
  • Object Code
  • Object Oriented Programming
  • Programming Languages
  • Software Development
  • United States

Fields of Study

  • Computer science
  • Engineering

Readers

  • Database Systems and Applications
  • Software Engineering
  • Theoretical Analysis.