Foundations of Software Development.

Abstract

Algorithms and data structures are among the primary constituents of computer software and thus are among basic objects of study in Computer Science. This project is concerned with the structure and automated design of algorithms and data structures. Our scientific hypothesis is that there exist general algorithm, data structure, and design concepts that underlie and explain most of the detailed structure of conventional software systems. By abstracting and formalizing these concepts and showing how to mechanize their application, we can prepare the way for the coming generation of automated software design environments. Our approach involves identifying classes of algorithms that solve a broad range of useful problems. In particular we have emphasized formalizing abstract algorithms that make minimal assumptions about the structure of a problem. Once a class of algorithms has been identified we represent its essence as a theory, called an algorithm theory. Under ONR support we have developed algorithm theories and design tactics for divide and conquer, simple problem reduction, global search (binary search, backtrack, branch-and-bound), problem reduction generators (dynamic programming, generalized branch-and-bound, game tree search), local search, constraint propagation and others. These have all been at least partially implemented and tested in the KIDS system. KIDS has been used to derive over 70 algorithms. More recent work has focused on theories and operations on theories as the formal underpinings of algorithm design as well as data structure design and refinement and general software development.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Nov 01, 1995
Accession Number
ADA327574

Entities

People

  • Douglas R. Smith

Organizations

  • Kestrel Institute

Tags

Communities of Interest

  • C4I
  • Energy and Power Technologies
  • Human Systems

DTIC Thesaurus Topics

  • Aircrafts
  • Airlift Operations
  • Algorithm Theory
  • Algorithms
  • Artificial Intelligence
  • Command And Control
  • Command And Control Systems
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Construction
  • Electronic Mail
  • Engineering
  • Lisp Programming Language
  • Software Development
  • United States Transportation Command

Fields of Study

  • Computer science

Readers

  • Operations Research
  • Software Engineering.
  • Theoretical Analysis.