Toward a Formal Model of the Design and Evolution of Software

Abstract

This report summarizes recent activities on the development of a formal model of the design and evolution of software. The model is intended to be both descriptive and prescriptive. It is descriptive in that we are attempting to capture known design processes in the model. The model is also intended to be prescriptive in the sense that it provides the conceptual basis for the sophisticated knowledge-based software design environments of the future. It should have the flexibility to support a variety of design methodologies, be comprehensive enough to encompass the gamut of software lifecycle activities, and be precise enough to provide the conceptual foundations for an open yet rigorous development environment. We also present recent work on the structure and design of a class of algorithms called global search. The design tactic for global search algorithms provides a rich example of the kind of design process that the abstract model is intended to capture. We present a tactic for designing global search algorithms and illustrate it with the derivation of an algorithm for enumerating cyclic difference sets - a rare kind of set that bear some similarities to the prime numbers. The design tactic has been implemented and used to derivation dozens of global search algorithms including one for enumerating cyclic difference sets.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Dec 20, 1988
Accession Number
ADA212533

Entities

People

  • Cordell Green
  • Douglas R. Smith

Organizations

  • Kestrel Institute

Tags

Communities of Interest

  • C4I
  • Human Systems
  • Materials and Manufacturing Processes
  • Space

DTIC Thesaurus Topics

  • Algorithms
  • Classification
  • Computations
  • Computer Programming
  • Computer Science
  • Consistency
  • Construction
  • Language
  • Monitoring
  • Optimization
  • Programming Languages
  • Semantics
  • Side Effects
  • Software Design
  • Software Development
  • Software Development Tools
  • Standards

Fields of Study

  • Computer science

Readers

  • Artificial Intelligence
  • Software Engineering
  • Theoretical Analysis.