Version control in families of large programs

  • Authors:
  • J. F. H. Winkler

  • Affiliations:
  • Siemens AG D-8000 München 83 Fed.Rep. of Germany

  • Venue:
  • ICSE '87 Proceedings of the 9th international conference on Software Engineering
  • Year:
  • 1987

Quantified Score

Hi-index 0.00

Visualization

Abstract

Programs products are quite often families of large and modular programs. Modern programming languages support the formulation of such program families only partially. At the time being it is usually not possible to describe different revisions, variants, and versions of single program building blocks and whole programs. This paper presents a proposal for the formulation of such version information as part of the program text. In a newly introduced CONFIG part of a program building block the programmer can express: (1) to which versions the building block belongs, and (2) which versions of other building blocks it uses. In this new construct a version is defined as a pair (revision, variant), and a variant as a vector of attribute values. With these language constructs the “knowledge” about the program versions can be expressed by facts and rules. The representation of this knowledge is adapted to the structure of the program, and the generation of specific program versions can be done automatically. The configuration algorithm has been implemented in Prolog, and this prototype implementation has been used for some examples.