editorial

2
Information and Sofiware Technology 1995 31 (5-6) 258-259 Z Special Issue Editorial Jonathan Bowen Oxford University Computing Laboratory, Wolfson Building, Parks Road, Oxford OX1 3QD, UK Mike Hinchey University of Cambridge Computer Laboratory, New Museums Site, Pembroke Street, Cambridge CB2 3QG, UK Z is one of the most widely adopted formal specification notations in use today. It is a typed language based on set theory and first order predicate logic. The mathematical basis is sufficiently simple for it to be assimilated by any competent engineer with suitable training. It was originated by Jean-Raymond Abrial some 15 years ago while visiting the Oxford University Computing Laboratory and has sub- sequently been developed by other researchers at Oxford and elsewhere. It has been used in industry to develop many software and some hardware systems and is now undergoing international IS0 standardization. More recently Abrial has developed the B-Method which aids software development, as well as specification, sup- ported with a dedicated tool in the form of the B-Tool. The B approach has also seen significant and successful industrial use, especially in France. This special issue of papers relating to Z presents a number of revised papers selected from the 1994 Z User Meeting (ZUM’94), together with some papers especially written for this issue. The papers were selected to present a broad range of the areas in which Z, together with related notations and techniques, are applicable. An important aspect of formal methods is the education of engineers who will be designing the computer-based systems of the future. Currently the development of software is often little more than a cottage industry in terms of the techniques that are applied during the design process. One problem with many current computer science courses, even where formal methods have been explicitly included as part of the curriculum, is that the formal approach is presented in a disengaged manner from the rest of the course, often as an option at a late stage. Thus while students may learn to recognize some of the notations of formal methods, they often learn little of the actual application and benefits of formal methods in practice. The first paper in this special issue presents an attempt by Garlan and others to avoid the above pitfall by integrating formal methods into the entire course, including the tech- niques wherever they may be applied usefully to the software engineering process. A number of different formal methods, including Z, have been used as part of the course, and the pros and cons of such an approach are discussed. We hope this pioneering approach will inspire other teachers of software engineering to attempt to adopt a similar strategy in their own courses. The second paper, by Bowen and Gordon, includes a very brief summary of Z for those not familiar with the notation. This will not, of course, serve as a substitute for learning Z, which requires significant effort to assimilate for skilful use (providing commensurate benefits in return). However, it does provide a flavour of the approach. The main part of the paper demonstrates how Z can be embedded in an existing theorem proving tool, HOL based on higher order logic, to allow the mechanization of proofs about Z specifications, providing increased confidence in their correctness. A comparison of ‘shallow’ and ‘deep’ embedding techniques together with a survey of related work are included. Tool support is an important aspect of the industrialization of Z. While the paper presents a simple approach, available in the public domain, commercial industrial-strength theorem proving, type-checking, and other support tools for Z are available. Z has been applied to a significant number of industrial applications and has been shown to be beneficial for the reduction of errors and to be cost effective (e.g., see the IBM work in the UK on the development of the CICS transaction processing system). Here Mataga and Zave present some work at AT&T in the USA on the specification of features available for ISDN telephone systems. Significant parts of the system have been specified and the benefits and problems accrued by the use of Z are discussed. One of the problems of many so-called formal ‘methods’ is that there is little guidance for methodological aspects and instead much emphasis on the notation. Z itself is strictly a notation rather than a method. However, much research into the integration of Z into the design process and its combination with other approaches, to build on the strengths of each, has been undertaken. Here Mander and Polack present their work on the combination of Z and the structured method SSADM to produce the ‘SAZ Method’. 258 0950-584911995 Elsevier Science B.V.

Upload: jonathan-bowen

Post on 26-Jun-2016

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Editorial

Information and Sofiware Technology 1995 31 (5-6) 258-259

Z Special Issue

Editorial

Jonathan Bowen Oxford University Computing Laboratory, Wolfson Building, Parks Road, Oxford OX1 3QD, UK

Mike Hinchey University of Cambridge Computer Laboratory, New Museums Site, Pembroke Street, Cambridge CB2 3QG, UK

Z is one of the most widely adopted formal specification notations in use today. It is a typed language based on set theory and first order predicate logic. The mathematical basis is sufficiently simple for it to be assimilated by any competent engineer with suitable training. It was originated by Jean-Raymond Abrial some 15 years ago while visiting the Oxford University Computing Laboratory and has sub- sequently been developed by other researchers at Oxford and elsewhere. It has been used in industry to develop many software and some hardware systems and is now undergoing international IS0 standardization.

More recently Abrial has developed the B-Method which aids software development, as well as specification, sup- ported with a dedicated tool in the form of the B-Tool. The B approach has also seen significant and successful industrial use, especially in France.

This special issue of papers relating to Z presents a number of revised papers selected from the 1994 Z User Meeting (ZUM’94), together with some papers especially written for this issue. The papers were selected to present a broad range of the areas in which Z, together with related notations and techniques, are applicable.

An important aspect of formal methods is the education of engineers who will be designing the computer-based systems of the future. Currently the development of software is often little more than a cottage industry in terms of the techniques that are applied during the design process. One problem with many current computer science courses, even where formal methods have been explicitly included as part of the curriculum, is that the formal approach is presented in a disengaged manner from the rest of the course, often as an option at a late stage. Thus while students may learn to recognize some of the notations of formal methods, they often learn little of the actual application and benefits of formal methods in practice.

The first paper in this special issue presents an attempt by Garlan and others to avoid the above pitfall by integrating formal methods into the entire course, including the tech- niques wherever they may be applied usefully to the software engineering process. A number of different formal methods,

including Z, have been used as part of the course, and the pros and cons of such an approach are discussed. We hope this pioneering approach will inspire other teachers of software engineering to attempt to adopt a similar strategy in their own courses.

The second paper, by Bowen and Gordon, includes a very brief summary of Z for those not familiar with the notation. This will not, of course, serve as a substitute for learning Z, which requires significant effort to assimilate for skilful use (providing commensurate benefits in return). However, it does provide a flavour of the approach.

The main part of the paper demonstrates how Z can be embedded in an existing theorem proving tool, HOL based on higher order logic, to allow the mechanization of proofs about Z specifications, providing increased confidence in their correctness. A comparison of ‘shallow’ and ‘deep’ embedding techniques together with a survey of related work are included. Tool support is an important aspect of the industrialization of Z. While the paper presents a simple approach, available in the public domain, commercial industrial-strength theorem proving, type-checking, and other support tools for Z are available.

Z has been applied to a significant number of industrial applications and has been shown to be beneficial for the reduction of errors and to be cost effective (e.g., see the IBM work in the UK on the development of the CICS transaction processing system). Here Mataga and Zave present some work at AT&T in the USA on the specification of features available for ISDN telephone systems. Significant parts of the system have been specified and the benefits and problems accrued by the use of Z are discussed.

One of the problems of many so-called formal ‘methods’ is that there is little guidance for methodological aspects and instead much emphasis on the notation. Z itself is strictly a notation rather than a method. However, much research into the integration of Z into the design process and its combination with other approaches, to build on the strengths of each, has been undertaken. Here Mander and Polack present their work on the combination of Z and the structured method SSADM to produce the ‘SAZ Method’.

258 0950-584911995 Elsevier Science B.V.

Page 2: Editorial

Editorial: J Bowen and M Hinchey

A previous version of this paper was presented at ZUM’94 where it won the best presentation competition, selected by

all participants at the meeting. While Z is designed primarily for the specification of

discrete systems, a significant proportion of the notation can be executed (albeit inefficiently) on a computer. This can be useful for animation purposes, when demonstrating features of a proposed software system to a customer, for example. A number of approaches have been suggested, mostly using a logic or functional programming paradigm. Here Valentine advocates a functional subset of Z (named Z--) using formal development from a Z specification to

obtain a Z-- program. Z is designed mainly for specification rather than

development, although the formality of the notation allows data refinement and a degree of operation refinement to be undertaken. As previously mentioned, the B method has been designed specifically with program development in mind. Lano and Haughton provide a tutorial introduction to the B Abstract Machine Notation (AMN) which is particularly suitable for readers already familiar with the Z notation. The material is based on part of a tutorial presented at ZUM’94.

This special issue is rounded off with an annotated bibliography of important Z references collected by Bowen, Stepney and Barden. As well as a list ordered by author, the entries are cross-referenced by subject area to aid readers in finding papers related to a particular field of interest. A glossary of notation for Z is also included for the con- venience of readers in this issue.

Also included here are a report on ZUM’94 held in Cambridge, England, and information on the International Conference of Z Users (ZUM’95) at Limerick, Ireland, in September 1995, the ninth in the series. The latter has generated considerable interest with over twice as many

paper submissions as in previous years. Some readers may be aware of the recent rapid growth

in information accessible on-line around the world via the Internet ‘network of networks’, particularly using the World Wide Web (WWW) hypermedia system. A significant amount of information is now available on formal methods in general and Z in particular, as part of the globally dis- tributed WWW Virtual Library. To access the information, users may start from the following ‘URL’ (Uniform Resource Locator) using a WWW client program such as netscape:

http://www.comlab.ox.ac.uklarchivelz.html

This provides hyperlinks to a searchable Z bibliography (on which the annotated Z bibliography in this issue is based), information on tools, details of relevant meetings, newsgroups for on-line discussion on Z and formal methods, etc. Details of further relevant links are, of course, welcome for possible inclusion and may be sent to either of the editors.

We hope you enjoy this special issue and find it helpful for your research. It is intended to provide a useful and representative collection of papers presenting some of the current activities being undertaken in the development of areas associated with the Z notation.

Rpplications of Formal Methods Edited by M. HINCHEY, NJ/T and J. BOWEN, University of Oxford

rhis collection of case studies contains numerous zontributions illustrating the application of formal methods to sal-life problems with industrial relevance.

1995 452pp Hbk 0-13-366949-1 U2.95 $49.95 DH lntematioflal Series in Computer Science

Using Z I.C.P. WOODCOCK and 1. DAVIES, both of UniversQ of Oxford ; ,, Using Z is the first book to cover all aspects of the z notation - including specification, rigorous and formal p&f, #‘id refinements into code. _ ,I_ 1995 4OOpp Pbk 0-13-946472-6 El&.& S37.$g PH international Series in Computer Science

Z in Practice ROSALhVD BARDEN, SUSAN STEPNEY, and

DAVD COOPER, all of Logica UK Ltd

This book aims to be a practical guide for people who have already understood the basis of the Z language but now wish to become users of it.

1994 45Opp Pbk o-13-124934-7 E22.95 $43.39 PH KS Practitioner Series

An t&xluctkn %#$ormal Specificatbn and Z BEN POTER, Uni~~~~~~~ffertfordshife, JA&E S###@% Open

University, and DAVIL) TH.1, City University

Written as an introduction to the ideas of %rmaf@+peoification, this leading textbook introduces Z at a &el su&&&$or undergraduates.

~,

1991 324pp Pbk 0-l3-476702&l9.95 j%&#!$ PH International Series in Computer Science I

), $‘,

The Z Nutation: A Reference Manual,‘afe MlKE SP/VE& Uhersity of Oxford

This referancr;.manual provides a complete and d&@Iitive guide to notation& and meanings of Z. 1991 16$&a Pbk Ol3-978529-9 ‘U8.95 S35.95 PH /nterna~@&9j Series m,Com~uter SO&W

i;,,,i ~ ;;J , 9

Specific&@ Case Stu&ies, 2/e Edited by IA~,,$‘4)*Ez, &ker~ity af Queensland ; _ The original,‘nQw?,&@&! colt&ion of work on mathematically- based speci&&&?,

1992 35O~@$k O-13-632544-8 C21.95 $41.95 PH /nternatkT~$Werlss‘fn Computer Science

Program&b& From Specifications, 2/e CARROLL J$?&&, University of Oxford

Present$ a &&hod for developing programs from

spe~~f@lr)ns in Z.

19Q?I;~3&Opp Pbk O-U-123274-6 S19.95 $36.95 Wf&+7W~onaf Series in Computer Science

P&d ale subject to change without notice.

259