ACM Home Page
Please provide us with feedback. Feedback
Validating structural properties of nested objects
Full text PdfPdf (309 KB)
Source Conference on Object Oriented Programming Systems Languages and Applications archive
Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications table of contents
Vancouver, BC, CANADA
SESSION: Practitioner reports table of contents
Pages: 294 - 304  
Year of Publication: 2004
ISBN:1-58113-833-4
Authors
Darrell Reimer  IBM Research, Hawthorne, NY
Edith Schonberg  IBM Research, Hawthorne, NY
Kavitha Srinivas  IBM Research, Hawthorne, NY
Harini Srinivasan  IBM Research, Hawthorne, NY
Julian Dolby  IBM Research, Hawthorne, NY
Aaron Kershenbaum  IBM Research, Hawthorne, NY
Larry Koved  IBM Research, Hawthorne, NY
Sponsors
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 3,   Downloads (12 Months): 13,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1028664.1028774
What is a DOI?

ABSTRACT

Frameworks are widely used to facilitate software reuse and accelerate development time. However, there are currently no systematic mechanisms to enforce the explicit and implicit rules of these frameworks. This paper focuses on a class of framework rules that place restrictions on the properties of data structures in framework applications. We present a mechanism to enforce these rules by the use of a generic "bad store template" which can be customized for different rule instances. We demonstrate the use of this template to validate specific bad store rules within J2EE framework applications. Violations of these rules cause subtle defects which manifest themselves at runtime as data loss, data corruption, or race conditions. Our algorithm to detect "bad stores" is implemented in the Smart Analysis-Based Error Reduction (SABER) validation tool, where we pay special attention to facilitating problem understanding and remediation, by providing detailed problem explanations. We present experimental results on four commercially deployed e-commerce applications that show over 200 "bad stores".


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
2
 
3
D. Bacon, J. Bloch, J. Bogda, C. Click, P. Haahr, D. Lea, T. May, J. Maessen, J.D. Mitchell, K. Nilsen, W. Pugh, E.G. Sirer. The "Double check locking is broken". http://www.cs.umd.edu/ pugh/java/memoryModel/DoubleCheckedLocking.html.
 
4
5
6
7
8
 
9
D. L. Detlefs. An overview of the extended static checking system. SIGSOFT Proceedings of the First Workshop on Formal Methods in Software Practice, January 1996, 1--9.
10
11
 
12
D. Engler, B. Chelf, A. Chou and S. Hallem, Checking System Rules Using System-Specific, Programmer-Written Compiler Extensions, In Proc. of SOSP, October 2000, 1--16.
13
14
 
15
D. Hovemeyer and W. Pugh, Finding Bugs is Easy, <http://www.cs.umd.edu/ pugh/java/bugs/docs/findbugsPaper.pdf>
16
 
17
JavaTM 2 Platform, Enterprise Edition Specification, v1.4 API Specification, Sun Microsystems. 11/24/2003.
 
18
S.C. Johnson. Lint, a C program checker. Unix Programmer's Manual, 4.2 Berkeley Software Distribution Supplementary Docs; U.C. Berkeley, 1984.
19
 
20
K.M.Leino, G. Nelson, and J. Saxe. ESC/Java User's Manual. Technical note 2000-002, Compaq Systems Research Center, Oct. 2001.
21
 
22
Parasoft Corporation. Automatic Java{TM} software and component testing: using Jtest to automate unit testing and coding standard enforcement, <http://www.parasoft.com/jsp/products/article.jsp?articleId=839&product=Jtest>>.
 
23
D. Reimer, K. Srinivas, H. Srinivasan, RD Johnson, and L. Koved. SABER: Smart Analysis Based Error Reduction. IBM Research Report, 2004.
24
 
25
N. Sterling. Warlock: a static data race analysis tool. In USENIX Proceedings, Winter Technical Conference, 1993, 97--106.
 
26

Collaborative Colleagues:
Darrell Reimer: colleagues
Edith Schonberg: colleagues
Kavitha Srinivas: colleagues
Harini Srinivasan: colleagues
Julian Dolby: colleagues
Aaron Kershenbaum: colleagues
Larry Koved: colleagues