API protocols play an important role in program verification, testing, evolution and other phases of the software development process. Many approaches have been proposed to mine API protocols automatically from progra...
详细信息
API protocols play an important role in program verification, testing, evolution and other phases of the software development process. Many approaches have been proposed to mine API protocols automatically from programs. However, few tools are available,especially dynamical API protocol mining tools. In this paper, we present a dynamical API protocol mining tool for Java programs:ProExtor. Our tool mines API protocols in an online mode based on the instrumentation technique of Java agent. For each class, it produces two models: a probabilistic model and a deterministic model. The probabilistic model will be evolved persistently when more application programs are fed for mining. The deterministic model is transformed from the latest probabilistic model, which can be used for program verification, testing, evolution, etc. Both models can be visualized with the software Graphviz. We elaborate design and implementation details of our tool and an application to a real-world program. We believe our work is a good reference for the development of similar tools.
暂无评论