skip to main content
Skip header Section
Software engineering with BDecember 1996
Publisher:
  • Addison-Wesley Longman Publishing Co., Inc.
  • 75 Arlington Street, Suite 300 Boston, MA
  • United States
ISBN:978-0-201-40356-5
Published:01 December 1996
Pages:
331
Skip Bibliometrics Section
Bibliometrics
Abstract

No abstract available.

Cited By

  1. ACM
    Flanagan C, Leino K, Lillibridge M, Nelson G, Saxe J and Stata R (2013). PLDI 2002, ACM SIGPLAN Notices, 48:4S, (22-33), Online publication date: 9-Jul-2013.
  2. Paulus S, Mohammadi N and Weyer T Trustworthy Software Development 14th IFIP TC 6/TC 11 International Conference on Communications and Multimedia Security - Volume 8099, (233-247)
  3. Lin L, Yang W and Lin J (2012). A layer-based method for rapid software development, Computers & Mathematics with Applications, 64:5, (1364-1375), Online publication date: 1-Sep-2012.
  4. ACM
    Hörne T and van der Poll J Planning as model checking Proceedings of the 2008 annual research conference of the South African Institute of Computer Scientists and Information Technologists on IT research in developing countries: riding the wave of technology, (114-123)
  5. Claessen K and Svensson H Finding counter examples in induction proofs Proceedings of the 2nd international conference on Tests and proofs, (48-65)
  6. Banach R and Fraser S Retrenchment and the b-toolkit Proceedings of the 4th international conference on Formal Specification and Development in Z and B, (203-221)
  7. ACM
    Flanagan C, Leino K, Lillibridge M, Nelson G, Saxe J and Stata R Extended static checking for Java Proceedings of the ACM SIGPLAN 2002 conference on Programming language design and implementation, (234-245)
  8. ACM
    Flanagan C, Leino K, Lillibridge M, Nelson G, Saxe J and Stata R (2019). Extended static checking for Java, ACM SIGPLAN Notices, 37:5, (234-245), Online publication date: 17-May-2002.
  9. Banach R and Poppleton M (1999). Sharp Retrenchment, Modulated Refinement and Simulation, Formal Aspects of Computing, 11:5, (498-540), Online publication date: 1-Dec-1999.
Contributors
  • IBM United Kingdom Limited

Recommendations

Reviews

Nancy R. Mead

I was pleasantly surprised to see a book that incorporated so much of the methodology that was taught when I was at IBM. It appears that the notions of data abstraction, predicate calculus, what versus how (a distinction between the abstract and the concrete), and functional verification are still current and being practiced, as well as taught, in various places. There is some overlap with Witt, Baker, and Merritt [1], but that is to be expected, since the two works are describing methods that have the same theoretical underpinnings. The book is about the use of formal methods and notations for software specification and design, and is supported by the B toolkit. The toolkit helps to overcome some of the reluctance to use formal methods and helps with the refinement process. There is a step-by-step discussion of methods of specification development that will result in the classical layered system. Since the author is heavily involved in B, the B notation is part and parcel of the book, and is used for the examples. The book is divided into ten chapters: Introduction Structure of a Simple Machine The Class Managers Assistant Deferred Sets and Non-determinism Constructing Large Machines More Substitutions for Machines Software Design Implementation API-Layer Machines and Their Implementations Refinements There are several appendices, including a review of discrete math. Wordsworth gives sample solutions to some of the exercises. The bibliography is limited, and the glossary is on the informal side. For example, an abstract object is defined as a value chosen to represent a more complex object. The author correctly states that the book can be used in an introductory course at the undergraduate or graduate level, or by practitioners. It includes a fair number of exercises, and comes with a diskette that provides some of the tool support. Additional tools need to be downloaded from the authors Web page. The reader is presumed to have some background in discrete math, including predicate calculus and set theory. The level of the book seems right for undergraduates or for an introductory industry course. I do not think the material is advanced enough for graduate-level software engineering courses. I liked the book, although it is not exactly light reading. I would recommend it for practitioners who are exploring software engineering methods.

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.