Systematic software development using VDM
Systematic software development using VDM
Software engineering: planning for change
Software engineering: planning for change
The Z notation: a reference manual
The Z notation: a reference manual
An introduction to formal specification and Z
An introduction to formal specification and Z
Visualizing and querying software structures
ICSE '92 Proceedings of the 14th international conference on Software engineering
Simulating the behaviour of software modules by trace rewriting
ICSE '93 Proceedings of the 15th international conference on Software Engineering
The entity-relationship model—toward a unified view of data
ACM Transactions on Database Systems (TODS) - Special issue: papers from the international conference on very large data bases: September 22–24, 1975, Framingham, MA
Z: An Introduction to Formal Methods
Z: An Introduction to Formal Methods
Software Development with Z: A Practical Approach to Formal Methods in Software Engineering
Software Development with Z: A Practical Approach to Formal Methods in Software Engineering
Constructing Software Design Theories and Models
ICSE '93 Selected papers from the Workshop on Studies of Software Design
CASCON '92 Proceedings of the 1992 conference of the Centre for Advanced Studies on Collaborative research - Volume 1
Structured Analysis and System Specification
Structured Analysis and System Specification
Architecture and applications of the Hy+ visualization system
IBM Systems Journal
Hi-index | 0.00 |
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.