A Caltech Library Service

A Software Design System


Hess, Gideon David (1980) A Software Design System. Dissertation (Ph.D.), California Institute of Technology. doi:10.7907/Z9348HB7.


The goal of the research described in this thesis was to build a system that supports, without interfering with, the activity of systematic software design and takes upon itself mechanical activities the designer can be spared.

Two of the main activities which constitute the process of software creation are:
1.Designing a solution to the problem.
2. Implementing the design.

The activity of design has to be performed by the programmer himself, it can only be aided by the computer. Producing a program from a complete design is a mechanical activity the computer can take upon itself.

These observations lead to the following objectives that a software design system should meet:
1. Providing tools that support the design activity and enable maximum flexibility.
2. Recognizing the lowest level primitives of the design as the target language and producing the program in this language.

A system along these guidelines was implemented. It permits the user to write definitions which refine high level design decisions into lower levels and, at the same time, serve as syntax descriptions and translation rules for the languages used in the design.

The system operates in two user-controlled passes. In the first pass the user's definitions are read, either interactively or from external files, and the syntax rules are stored in a dictionary. In the second pass a syntax driven language processor uses the dictionary to compile the user's program into the target language which consists of the lowest level constructs of the design.

Due to the freedom the programmer has in design, several kinds of syntactic ambiguities may be introduced with - or without - the user's attention. Unless caused by user errors, the translator tries to resolve these ambiguities to match the designers intentions.

In order to reduce the amount of time and space required for parsing, long texts are divided into subtexts which are translated separately. Guidance as to which subtexts are separately translatable is provided by the user in a natural way by composing the design of statements.

A command language enables the user to control the passes, to look at the contents of the dictionary and of external files, to monitor the translation process for debugging purposes, to store dictionaries for later use and retrieve them and to modify special symbols used in definitions.

The system is implemented in Simula. A second system is presently being implemented as part of POL (Problem Oriented Language), a system for writing and using application languages. POL's metalanguage enables the user to build - or extend object languages by writing new syntax rules. The tools of the development system described above are incorporated into the metalanguage in order to aid the application programmer in the design and compilation of the semantic routines of these rules.

Item Type:Thesis (Dissertation (Ph.D.))
Subject Keywords:Computer Science
Degree Grantor:California Institute of Technology
Division:Engineering and Applied Science
Major Option:Computer Science
Thesis Availability:Public (worldwide access)
Research Advisor(s):
  • Thompson, Frederick B.
Thesis Committee:
  • Unknown, Unknown
Defense Date:13 March 1980
Record Number:CaltechETD:etd-10182006-082833
Persistent URL:
Related URLs:
URLURL TypeDescription ItemComputer Science Technical Reports 1980.3762 in CaltechAUTHORS
Default Usage Policy:No commercial reproduction, distribution, display or performance rights in this work are provided.
ID Code:4163
Deposited By: Imported from ETD-db
Deposited On:31 Oct 2006
Last Modified:02 Dec 2020 01:10

Thesis Files

PDF (Hess_gd_1980.pdf) - Final Version
See Usage Policy.


Repository Staff Only: item control page