Toward Zero-defect Programming

Front Cover
Addison-Wesley, 1999 - Computers - 240 pages
This book describes current methods for writing (nearly) bug-free programs. These methods are based on practices developed at IBM and elsewhere under the name Cleanroom Software Engineering. In a concise presentation, the author shows how to apply these methods in three key areas of software development: specification, verification, and testing. Requiring formal specifications forces students to program more simply and more clearly, eliminating many defects as a consequence. Performing semiformal verification as part of a team process uncovers additional defects. Testing the program, to compensate for human fallibility in the preceding steps, catches (nearly) all remaining bugs. The author departs somewhat from IBM Cleanroom methods to simplify the formalism that students must learn, and to make specification and verification readily accessible to anyone who can write well-structured programs. Although the book's examples are written in several programming languages, the largest number is in C.

From inside the book

What people are saying - Write a review

User Review - Flag as inappropriate

CLEAN ROOM DEVELOPMENT PROCESS

Contents

Introduction
1
The Functions Computed by Programs
11
Verification
31
Copyright

9 other sections not shown

Common terms and phrases

References to this book

About the author (1999)

Allan M. Stavely was a faculty member in the Computer Science Department at New Mexico Tech for more than twenty years. He has also been a visiting staff member at IBM Research in San Jose, California; at Hewlett-Packard Labs in Bristol, England; and at IBM UK Laboratories at Hursley Park, Winchester, England. Much of his teaching, and most of his research, have focused on software engineering, formal methods, and improved methods of programming in general. Dr. Stavely is now an independent consultant, and can be reached at astavely@acm.org; he has web pages at http://www.nmt.edu/~astavely.



0201385953AB05072001

Bibliographic information