[comp.specification] recommended texts

dm@.com (Dave Mankins) (03/05/90)

I would appreciate recommendations of texts or articles which are good
introductions to the Vienna Development Method or Z.
--
david mankins (dm@think.com)

jon@cs.washington.edu (Jon Jacky) (03/06/90)

> David Mankins (dm@think.com) asks about recommendations of texts and articles
> which are good introductions to VDM or Z

Here are personal opinions about some of the references I've used:

The best introduction to Z is:

Specification Case Studies, Ian Hayes (editor), Prentice-Hall 1987, ISBN
0-13-826579-8

This is a series of relatively short examples of graduated difficulty.  Some
are reprints of journal papers.  One of the most instructive of these is:

Specification of the UNIX file system, by Carroll Morgan and Bernard Sufrin,
IEEE Transactions on Software Engineering, vol SE-10, no 2, March 1984, pps.
128 - 142.

Another recent journal paper of instructive value, which is not included
in the Hayes volume, is:

The Formal Specification of a Small Bookshop Information System, by David Gray,
IEEE Transactions on Software Engineering, 14(2), Feb 1988, 263 - 272.

There was also a special section on Z in the British journal, Software
Engineering Journal, 4(1) January 1989.  The articles aren't as good as those
in the Hayes book and the others I've mentioned, except one: An Introduction to
Z and Formal Specifications, by J.M. Spivey, which is a good tutorial. 
Actually it's probably the best first thing to read about Z.   That paper also
appears in slightly different form in:

The Z Notation, A Reference Manual by J.M. Spivey; Prentice-Hall 1989, ISBN
0-13-983768-X

The above volume has some tutorial material (like the reprint of the journal
article) but overall it really is a reference manual, not a tutor, and is
pretty dense, without much guidance about how or why to apply the stuff.
However, if you plan to experiment with Z you've got to have it.

Then there is:

Understanding Z: A Specification Language and its Formal Semantics, by J.M.
Spivey, Cambridge University Press, 1988.

An odd book that contains a mix of stuff --- a version of the tutorial example
that also appears in Spivey's other works, and a comparison of Z to other
formal notations, including VDM.  The heart of the book is a long formal
specification of Z itself (in Z --- what else?).  This last, frankly, is pretty
daunting, much much harder to understand than, say, the Unix specification.

One of the appeals of Z is that it is being picked up outside the group that
originated it (unlike most of the other formal specification languages).  I
recently saw a new textbook in a bookstore,  Software Engineering Mathematics,
by Woodcock and Loomes. I think the publisher was Addison-Wesley, 1989.  Its
cover bore the Software Engineering Institute logo and it said something like
"SEI Series on Software Engineering", for what that's worth.  It looked pretty
good.   It was basically a textbook in predicate calculus and set theory, with
a short survey of several formal methods, but it emphasized Z, in fact the
whole book used what looked a lot like Z as "the" notation of the book.   There
is also a new book called An Introduction to Discrete Mathematics and Formal
System Specification by D.C. Ince,  Clarendon Press. The first part was about
predicate calculus and set theory, and the second half  was a Z textbook.  I
got a better impression of Woodcock and Loomes, possibly because that one
seemed pitched at a more mature audience, but be warned I didn't have time to
read either one thoroughly.

A good introduction to formal specifcation in general is:

The Specification of Complex Systems by B. Cohen, W.T. Harwood, and M.I.
Jackson, Addison Wesley 1986.  

It discusses several notations, not including Z, but including VDM ("the Vienna
Development Method") which is rather similar (see Spivey's Understanding Z for
an explicit comparison).  In fact this book was much clearer and convincing to
me about VDM than the several books by Cliff Jones, its main exponent.   VDM is
about the only notation besides Z which seems to be getting much application
outside its originating research group. (The most recent of Jones' books on Z
is Systematic Software Development Using VDM, Cliff B. Jones, Prentice Hall,
1986.  I read somewhere that a new edition of this book was planned, to include
or conform to the new British Standards Institute (BSI) "standard" VDM
definition.

If you take a look at the books and decide you want to see more, there is an
electronic newsletter about Z that is very infrequently distributed over the
Internet.  To get added to the list, write to
zforum%prg.oxford.ac.uk@nsfnet-relay.ac.uk.   Back issues of Z Forum, and lots
of other stuff about Z, including bibliographies and manuscripts, are available
from the archives at Oxford.   If you want to get started with this, send a
message to  archive-server%uk.ac.oxford.prg@relay.mod.uk that simply includes
on a single line, the command "help".

Writing Z specifications presents challenges, since it is emphatically
non-ASCII.  It uses a lot of arcane symbology from mathematics and in addition
likes to draw boxes around things.  Mike Spivey created a set of LaTeX macros
in a file called "zed.sty" which I got from the Oxford archives.   Later,
Spivey created a newer Z tool called "fuzz" (by analogy with Unix "lint") which
includes newer, better LateX macros, plus a type checker and cross-referencer.
     
"Fuzz" uses the LaTeX source for Z also as the input source code for these
latter tools.  So this LaTeX source provides a way to write Z in ASCII. 
Fuzz is a product which Mike sells for a few hundred dollars, versions are
available for IBM PC's and Sun's, other platforms by special request (it says
here).  (I haven't tried or seen "Fuzz.")

(I started looking into formal specification languages to help with
specifying software for the control system of a medical cyclotron used for
neutron radiation therapy for cancer and isotope production.  I've decided to
use Z to specify a lot of it, although Z can't describe it all.)

- Jon Jacky             	(206)-548-4117
Radiation Oncology RC-08	jon@gaffer.rad.washington.edu
University of Washington
Seattle, WA  98195

goun@loiosh.enet.dec.com (Roger H. Goun) (03/07/90)

Formal Methods:  Theory and Practice, P.N. Scharbach, ed., Information
Technology 
Research Unit, BP Research Centre, Sunbury-on-Thames, U.K., CRC Press,
1989, ISBN 
0-8493-7140-6.

Would anyone who has read this book care to comment on it?

UUCP:     ...!decwrl!ddif.enet!goun             Roger H. Goun
Internet: goun@ddif.enet.dec.com                Digital Equipment Corporation
          goun%ddif.enet@decwrl.dec.com         110 Spit Brook Road, ZKO2-2/O23
                                                Nashua, NH 03062 USA
                                                +1 603 881 0022

mjl@cs.rit.edu (03/07/90)

> David Mankins (dm@think.com) asks about recommendations of texts and articles
> which are good introductions to VDM or Z

I can vouch for the D. C. Ince book "An Introduction to Discrete
Mathematics and Formal System Specification" (Oxford University Press,
1988).  As the title implies, it is designed for use as a text, but can
also serve for self study (the existence of exercises is a definite
plus).

I agree with Jon Jacky that this is not for those with deep
mathematical maturity.  It's more a gentle introduction to the
underlying mathematics and their application within Z, and is
especially useful if you're new to the area or your math skills are a
bit rusty.  Be forewarned:  the book does not cover everything in Z
(Ince estimates that he covers about 80%).  However, hitting Spivey's
books without any preparation is a bit like being catapulted off the
deck of an aircraft carrier:  you get up to speed quickly, but you
might not like the jolt :-).

Mike Lutz
Rochester Institute of Technology

Mike Lutz	Rochester Institute of Technology, Rochester NY
UUCP:		{rutgers,cornell}!rochester!rit!mjl
INTERNET:	mjl@csrit.edu

cliff@ipse2pt5.uucp (Cliff Jones) (03/15/90)

Newsgroups: comp.specification
Subject: Re: recommended texts
Summary: 
Expires: 
References: <34462@news.Think.COM> <10964@june.cs.washington.edu>
Sender: 
Reply-To: cliff@ipse2pt5.UUCP (Cliff Jones)
Followup-To: 
Distribution: 
Organization: University of Manchester, UK
Keywords: 


RE: I read somewhere ...

Jon Jacky is correct, I have just produced a revised version. Info is:

@book{Jones90a,
	author	    =	"C. B. Jones",
	title	    =	"Systematic Software Development using VDM",
	edition =	{Second},
	publisher   =	"Prentice Hall International",
	year	    =	"1990",
	note =		"ISBN 13-880733-7"
}

There is a companion "Case Study book":

@book{JonesShaw90,
	title =		"Case Studies in Systematic Software Development",
	editor =	"C.B. Jones and R.C.F. Shaw",
	publisher =	"Prentice Hall International",
	year =		"1990",
	note =		"ISBN 13-116088-5


}


A few words of explanation:

New Books on VDM

You may previously have seen "Systematic Software Development using
VDM". This note explains its revised form and a new book of case
studies. Both are available now from Prentice Hall.

The BSI (British Standards Institution) committee on VDM has made
significant progress towards a BSI-VDM standard and this has provided
an incentive to revise my 1986 book.  It has also made it worth collecting
some medium-sized case studies and producing two books in a uniform style.

The case studies book ("Case Studies in Systematic Software Development" -
edited by Jones and Shaw) collects together 12 different applications
written by 10 authors.  The examples include two database like systems, a
machine architecture, unification, user interface description and garbage
collection as well as two language descriptions (one covering object-oriented
features).

I believe that this book can provide the bridge from the "finger exercises" 
which fit in a text book to the larger tasks that students might face in
industrial applications.  In the intensive industry courses which I have
prepared, we have always waded into a significant case study.  I believe
that this approach should also be used in tertiary education (but recognise
the problems of fitting it into the exams structure).

I hope the availability of the Jones/Shaw book will overcome one of the 
limitations of my 1986 book.  I have also studied feedback from many people
in planning revisions to the textbook itself.
Apart from the syntactic changes,
I hope that the other visual impact will come from the improved typesetting
and layout.  (We now have LaTeX "bsivdm" macros and have produced output on 
a high-resolution Linotron printer.)  I have used a clearer way of bringing 
definitions into proofs and believe this has simplified one of the aspects of 
my earlier book which was hardest to teach.  The original material on 
operation decomposition was unclear and Chapter 10 has been completely
rewritten.
A new Chapter 11 presents a mini-casestudy so as to tie together all parts of
the specification and development method.

The use of BSI-VDM is emphasised by an appendix giving its concrete syntax
(the LaTeX macros actually make it easy to change syntax; it would - for
example - be straightforward to redefine things to produce output in the
limited ASCII syntax).  A host of minor corrections and improvements have also 
been incorporated in the second edition.

I am currently revising the "Teacher's Notes" and these will be available in
Spring 1990.  This time, they will be distributed from PHI.

Cliff Jones