DocumentCode
1046646
Title
Discovering Documentation for Java Container Classes
Author
Henkel, Johannes ; Reichenbach, Christoph ; Diwan, Amer
Author_Institution
Google, Mountain View
Volume
33
Issue
8
fYear
2007
Firstpage
526
Lastpage
543
Abstract
Modern programs make extensive use of reusable software libraries. For example, we found that 17 percent to 30 percent of the classes in a number of large Java applications use the container classes from the java.util package. Given this extensive code reuse in Java programs, it is important for the reusable interfaces to have clear and unambiguous documentation. Unfortunately, most documentation is expressed in English and, therefore, does not always satisfy these requirements. Worse yet, there is no way of checking that the documentation is consistent with the associated code. Formal specifications present an alternative that does not suffer from these problems; however, formal specifications are notoriously hard to write. To alleviate this difficulty, we have implemented a tool that automatically derives documentation in the form of formal specifications. Our tool probes Java classes by invoking them on dynamically generated tests and captures the information observed during their execution as algebraic axioms. Although the tool is not complete or correct from a formal perspective, we demonstrate that it discovers many useful axioms when applied to container classes. These axioms then form an initial formal documentation of the class they describe.
Keywords
Java; algebraic specification; software libraries; system documentation; Java container class; algebraic axiom; documentation discovery; formal specification; software library; Containers; Data structures; Documentation; Formal specifications; Java; Libraries; Natural languages; Packaging; Probes; Testing;
fLanguage
English
Journal_Title
Software Engineering, IEEE Transactions on
Publisher
ieee
ISSN
0098-5589
Type
jour
DOI
10.1109/TSE.2007.70705
Filename
4267024
Link To Document