Bulletin
406
authors - and is followed by a reply and critical discussion from other participants. Often it is only in these discussions that the real import of the theory presented in the main papers becomes really clear. This form of presentation is such a good idea that I feel moved to recommend that all editors of collected papers should consider this format. It really is very enlightening, not to say stimulating. After an introductory chapter, with appendices introducing 'classical' and modal logics and links to probability theory, there is a paper on game-theoretic semantics for first order logics used in knowledge based systems from Peter Jackson from Edinburgh University. After this we find papers on modal logics of belief and time and a contribution from Moore on his autoepistemic logic and its distinction from nonmonotonic logics. This is followed by two papers on nonmonotonic logic and one on its applications to frame systems. After a paper on probabilistic logic there is a presentation from Smets on the use of belief functions for the quantification of subjective judgements. Dubois and Prade close with an introduction to possibility theory and fuzzy logics. Naturally, the post-chapter discussions get very heated in the later chapters (especially in the vicinity of fuzzy logic), but this is their valuable, thought provoking character. Reading them made me wish I had been present at the debates. This is the best, broad ranging, book on this subject yet, and its wonderfully innovative format alone makes it a must for anyone interested in this topic. Highly recommended. lan Graham
5.3.
Object Oriented Analysis
The 1990s look like becoming the decade of 'object orientation'. I have the feeling that this book by P. Coad and E. Yourdon (Yourdon Press/Prentice-Hall, 1990, ISBN 0-13-629122-8) is going to be a very important book for some time to come. It is particularly significant for two reasons. First, it emphasises that the object oriented paradigm is not so much about programming languages as it is about systems analysis and, to some extent, design. Secondly, this book comes from a 'respectable' camp of software engineering rather than from the research labs. There have been a few attempts to introduce a notation for object oriented system description, perhaps most notably arising from the ADA camp and the work of Booch. This is the first really consistent notation and really structured approach I have seen which goes beyond the limitations of some particular programming language. The authors offer advice, supported by case studies, on how to go about describing a problem in terms of five categories: objects or entities; hierarchical inheritance and classification structures; attributes; methods or services (encapsulated procedures) and their message connexions; and finally something new, borrowed from the idea of layers in data flow diagrams, organisation into 'subjects'. Each step receives the attention of a chapter which gives notation, examples and advice on how to spot key points in real situations. As usual with 'methods' books everything said is intuitively obvious but it's nice to have it written down in a checklist! Other chapters cover benefits, Smalltalk and object oriented design, but the philosophy is genuinely implementation independent. Appendices summarise key points and relate the methods to DoD (i.e. ADA) standards. The most important point to emerge is that specifications (like code) should be reusable. This book contains important ideas of critical significance to everyone in the IT industry. It will be a classic. However, I permit myself one criticism. This is, in places, one of the worse written books I have ever read in all my life. Given the excellent content, even this would have been excusable if the authors could have forborne the temptation to insert a tutorial on how to write good English which they seem to equate with short sentences and the vocabulary of an eight year old. -
lan Graham