ACM Home Page
Please provide us with feedback. Feedback
Digital Library logoTake a look at the new version of this page: [ beta version ]. Tell us what you think.
Automatic extraction of object-oriented component interfaces
Full text PdfPdf (248 KB)
Source International Symposium on Software Testing and Analysis archive
Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis table of contents
Roma, Italy
SESSION: Dynamic analysis table of contents
Pages: 218 - 228  
Year of Publication: 2002
ISBN ~ ISSN:0163-5948 , 1-58113-562-9
Also published in ...
Authors
John Whaley  Stanford University
Michael C. Martin  Stanford University
Monica S. Lam  Stanford University
Sponsor
SIGSOFT: ACM Special Interest Group on Software Engineering
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 9,   Downloads (12 Months): 100,   Citation Count: 50
Additional Information:

abstract   references   cited by   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/566172.566212
What is a DOI?

ABSTRACT

Component-based software design is a popular and effective approach to designing large systems. While components typically have well-defined interfaces, sequencing information---which calls must come in which order---is often not formally specified.This paper proposes using multiple finite statemachine (FSM) submodels to model the interface of a class. A submodel includes a subset of methods that, for example, implement a Java interface, or access some particular field. Each state-modifying method is represented as a state in the FSM, and transitions of the FSMs represent allow able pairs of consecutive methods. In addition, state-preserving methods are constrained to execute only under certain states.We have designed and implemented a system that includes static analyses to deduce illegal call sequences in a program, dynamic instrumentation techniques to extract models from execution runs, and a dynamic model checker that ensures that the code conforms to the model. Extracted models can serve as documentation; they can serve as constraints to be enforced by a static checker; they can be studied directly by developers to determine if the program is exhibiting unexpected behavior; or they can be used to determine the completeness of a test suite.Our system has been run on several large code bases, including the joeq virtual machine, the basic Java libraries, and the Java 2 Enterprise Edition library code. Our experience suggests that this approach yields useful information.


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
 
4
A. N. Habermann R. H. Campbell. The specification of process synchronization by path expressions. Lecture Notes on Computer Science, 16, 1974.
5
 
6
M. Dahm. Byte code engineering library. http://bcel.sourceforge.net, 2000.
7
 
8
D. Engler, B. Chelf, A. Chou, and S. Hallem. Checking system rules using system-specific, programmer-written compiler extensions. In Proceedings of the Symposium on Operating Systems Design and Implementation, pages 1-16, 2000.
9
10
 
11
12
13
 
14
M. Van Hilst and D. Notkin. Using C++ templates to implement role-based designs. Technical Report TR 95-07-02, Department of Computer Science and Engineering, University of Washington, 1996.
15
16
17
 
18
Sun Microsystems. Java 2 platform, enterprise edition. http://java.sun.com/j2ee/, 2001.
 
19
Sun Microsystems. Petstore application for the java 2 platform, enterprise edition. http://java.sun.com/features/2001/05/petstore.html, 2001.
 
20
J. Nimmer and M. Ernst. Static verification of dynamically detected program invariants: Integrating Daikon and ESC/Java. In Electronic Notes in Theoretical Computer Science, volume 55, 2001.
 
21
 
22
 
23
 
24
P. Wadler. Linear types can change the world. In M. Broy and C. B. Jones, editors, IFIP TC 2 Working Conference on Programming Concepts and Methods, pages 561-581, 1990.
 
25
J. Whaley. The joeq virtual machine. http://sourceforge.net/projects/joeq, 2001.
 
26
R. Wiebicke. Linkverify. http://rw7.de/ralf/htmltools/index.en.html, 1998.
 
27

CITED BY  50
Collaborative Colleagues:
John Whaley: colleagues
Michael C. Martin: colleagues
Monica S. Lam: colleagues