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. |
Year | DOI | Venue |
---|---|---|
2002 | 10.1145/566172.566212 | ISSTA |
Keywords | Field | DocType |
java interface,dynamic model checker,effective approach,automatic extraction,extracted model,approach yields useful information,dynamic instrumentation technique,object-oriented component interface,large system,large code base,enterprise edition library code,basic java library,object oriented,uml,virtual machine,debugging,testing | Interface (Java),Programming language,Model checking,Virtual machine,Software design,Unified Modeling Language,Software engineering,Object-oriented programming,Computer science,Real-time computing,Java,Debugging | Conference |
Volume | Issue | ISSN |
27 | 4 | 0163-5948 |
ISBN | Citations | PageRank |
1-58113-562-9 | 160 | 9.84 |
References | Authors | |
18 | 3 |
Name | Order | Citations | PageRank |
---|---|---|---|
John Whaley | 1 | 735 | 53.70 |
Michael C. Martin | 2 | 335 | 21.26 |
Monica S. Lam | 3 | 5585 | 705.61 |