A Software Design System
Creators: name: Hess, Gideon David
Publisher: name: California Institute of Technology
Year: 1980

description: The goal of the research described in this thesis was to
build a system that supports without interferinq with the
activity of systematic software design and tokes 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 hos 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 herself.

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 description~ 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 specials 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 language. 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 aplication programmer in the design and compilation of the semantic routines of these rules.
description: © 1980 California Institute of Technology. 

I wish to thank Dr. Frederick B. Thompson for his patient guidance and help during my graduate studies at Caltech.
description: Submitted - TR_3762_80.pdf