Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Building and using pluggable type-checkers
Dietl W., Dietzel S., Ernst M., Mulu K., Schiller T.  ICSE 2011 (Proceeding of the 33rd International Conference on Software Engineering, Waikiki, Honolulu, HI,  May 21-28, 2011) 681-690. 2011. Type: Proceedings
Date Reviewed: Jan 7 2013

The Checker Framework tool supports the processing of custom-built annotations for Java at compile time. This paper reports on a case study using the tool to build five checkers. The ease of building, the ease of use, and the effectiveness of each checker are discussed at length. An informal report is provided on classroom use of the Nullness checker.

Figure 1 presents the case study statistics. Four of the five checkers were small in size, but the Nullness checker comprised over 4,000 lines of code. The number of annotations written for each program in the case study was typically over 100. Defects capable of causing runtime failure were found in more than half of the programs. Other kinds of errors, such as incorrect documentation, were found in most programs. The false positive rate was over 50 percent for eight of the 11 programs studied. In the classroom study, all students found at least one null pointer defect. The majority of students, however, only used the two annotations they had been taught (@NonNull and @Nullable).

The authors conclude that the five checkers were easy to build and use. Since time was not used as a measure, particularly the time needed to identify and suppress false positives, these claims could be disputed. However, readers will be impressed by the detection of over 40 defects in well-tested and well-used programs. These checkers found defects for Google Collections that had been missed by the FindBugs static analysis tool. This paper is strongly recommended to the software engineering community.

Reviewer:  Andy Brooks Review #: CR140805 (1304-0319)
Bookmark and Share
  Reviewer Selected
Featured Reviewer
Data Types And Structures (D.3.3 ... )
Object-Oriented Programming (D.1.5 )
Specifying And Verifying And Reasoning About Programs (F.3.1 )
Would you recommend this review?
Other reviews under "Data Types And Structures": Date
 Creating good data: a guide to dataset structure and data representation
Foxwell H.,  Apress, New York, NY, 2020. 124 pp. Type: Book (978-1-484261-02-6)
Sep 2 2021
Union and intersection types to support both dynamic and static typing
Ortin F., García M.  Information Processing Letters 111(6): 278-286, 2011. Type: Article
Jul 7 2011
Types for describing coordinated data structures
Ringenburg M., Grossman D.  Types in languages design and implementation (Proceedings of the 2005 ACM SIGPLAN International Workshop on Types in Languages Design and Implementation, Long Beach, California, USA,  Jan 10, 2005) 25-36, 2005. Type: Proceedings
Mar 30 2005

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright © 2000-2021 ThinkLoud, Inc.
Terms of Use
| Privacy Policy