Illuminating software specifications

  • Authors:
  • Arthur Ryman

  • Affiliations:
  • IBM Canada Laboratory

  • Venue:
  • CASCON '93 Proceedings of the 1993 conference of the Centre for Advanced Studies on Collaborative research: software engineering - Volume 1
  • Year:
  • 1993

Quantified Score

Hi-index 0.00

Visualization

Abstract

A software specification is a description of what a system is to compute, and as such, it serves as an essential communication vehicle between the customers of the system and its implementers. The overriding concern in writing a specification is therefore one of clarity.Traditionally, specifications have been written in a procedural style known as structured English or pseudo-code. The problem with this style of specification is that it only implicitly defines what the system is to compute in terms of a procedure or algorithm that describes how to compute it. As a consequence, the reader of such a specification must mentally execute the procedure to understand what it computes, and thus ascertaining its correctness is error-prone.To remedy this situation, recent research has focused on declarative specification techniques, such as Z notation, that use mathematical logic to explicitly describe the goal of computation. While declarative specifications are an improvement over procedural ones in terms of precision and verifiability, mathematical logic is difficult to write and to read, even for experienced software engineers, much less typical customers.This paper describes a new technique for illuminating declarative software specifications through the use of complementary diagrams that are borrowed from database theory. This technique, based on the use of Entity-Relationship diagrams, a well-known conceptual modelling method, and GraphLog, a novel visual query language, has all the precision and formality of mathematical logic. In addition it presents information in a way that exploits the capability of the human visual system for pattern recognition. We claim that these diagrams often present typical specifications more clearly than the corresponding logical formulas. The paper illustrates this technique using a family tree application taken from a software engineering textbook, and concludes with a brief description of 4Thought, a supporting tool set that is currently under development.