Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
A Practical Approach to Programming With Assertions
Rosenblum D. IEEE Transactions on Software Engineering21 (1):19-31,1995.Type:Article
Date Reviewed: Feb 1 1996

An assertion processing tool called APP (Annotation PreProcessor) for C programs in UNIX environments is described. Embedded assertions have been described as tools for detection of software faults during debugging, testing, and maintenance, although their use in practice has not been so widespread. Two possible reasons for the lack of widespread use are that earlier tools did not easily integrate with the then-existing environments, and the effectiveness of various assertions in detecting software faults was not well understood.

Rosenblum has addressed the concerns of ease of use and effectiveness. The paper describes a classification of the assertions that have been found to be most effective in detecting faults. C has, through predefined macro assert, provided a simple assertion facility. Extensions have been proposed for C++ to provide higher-level assertion capabilities, while languages such as Turing and Eiffel provide assertion features as part of the language definition. APP recognizes assertions that appear as annotations in the C source programs, and the APP assertions specify constraints that apply to some state of the computation. APP integrates relatively easily into the process of developing C programs because the changes to the programmer’s accustomed use of C and UNIX are minimal.

The author claim that APP can process 20,000 lines of C code per CPU minute on a Sun-4 workstation. I have not been able to verify this claim, and I recommend such verification to those who do this research. Assertion checking is a powerful and reasonably practicable technique that can improve the quality and reliability of software systems. More comprehensive studies involving large controlled experiments on large systems are needed, and this paper is certainly a good starting point for such research.

Reviewer:  Jagdish C. Agrawal Review #: CR119389 (9602-0121)
Bookmark and Share
 
Testing And Debugging (D.2.5 )
 
 
Assertion Checkers (D.2.4 ... )
 
 
Run-Time Environments (D.3.4 ... )
 
 
Processors (D.3.4 )
 
 
Requirements/ Specifications (D.2.1 )
 
 
Software/ Program Verification (D.2.4 )
 
Would you recommend this review?
yes
no
Other reviews under "Testing And Debugging": Date
Software defect removal
Dunn R., McGraw-Hill, Inc., New York, NY, 1984. Type: Book (9789780070183131)
Mar 1 1985
On the optimum checkpoint selection problem
Toueg S., Babaoglu O. SIAM Journal on Computing 13(3): 630-649, 1984. Type: Article
Mar 1 1985
Software testing management
Royer T., Prentice-Hall, Inc., Upper Saddle River, NJ, 1993. Type: Book (9780135329870)
Mar 1 1994
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy