Moriconi and Lansky describe techniques which they have been developing for the representation and refinement of visual specifications of large software designs. The visual specifications are pictorial descriptions of interactions among the conceptual entities in a system design. The pictures of this technique differ from those of simple design specification languages and from conventional flowcharts. Associated with the pictures are internal representations manipulated through a formal language, called the form calculus.
Five or ten minutes of browsing the examples of the pictorial representations and their manipulation via a mouse controlled editor provide interesting insights into the difficulties of the endeavor and the current state of the art. The specification system is an early part of the PegaSys (Programming Environment for the Graphical Analysis of Systems) which the authors are developing in phases in order to achieve an ultimate software engineering environment encompassing the entire software life cycle. PegaSys is being implemented in Interlisp-D on the Xerox 1100 personal computer and is targeted to support software development utilizing the ADA language.
However, the form calculus is the heart of the paper. It is a formal language for explicitly describing system interaction and is capable of recording the hierarchy of refinements which led to the interactions in the final design. A form--a sentence in simple logic--represents the computationally important aspects of a picture. Constraints (called Acceptability Constraints) can be specified in order to restrict how entities may fit together and allow the system to automatically ensure that a picture is logically consistent within the context of the system under development.
The lexical structure of forms, the applications of system control models, and the picture refinement methodology are all described clearly and, with the examples, allow appreciation of the calculus and the methodology. The form calculus is described in such a way that little formal background in logic is required to understand it. A beginning computer science student devoting two hours to the paper will gain significant insights and background in the subject matter and related fields.
The authors conclude by mentioning future work involving two significant extensions to their system:
(1) automatic tracing of developed source code back to the formal specification through an automatic form generator for ADA programs, and
(2) visual debugging facilities based on animation of the visual specifications.