<p>Programmers using an API often must follow protocols that specify when it is legal to call particular methods. Several techniques have been proposed to find violations of such protocols based on mined specifications. However, existing techniques either focus on single-object protocols or on particular kinds of bugs, such as missing method calls. There is no practical technique to find multi-object protocol bugs without a priori known specifications. In this paper, we combine a dynamic analysis that infers multi-object protocols and a static checker of API usage constraints into a fully automatic protocol conformance checker. The combined system statically detects illegal uses of an API without human-written specifications. Our approach f...
API libraries are becoming increasingly popular in modern software industries because these librarie...
Abstract—Many APIs enable cross-platform system develop-ment by abstracting over the details of a pl...
The proliferation of distributed, multilayer software services is encouraging a separation of Applic...
Programmers using an API often must follow protocols that specify when it is legal to call particula...
Abstract—Programmers using an API often must follow protocols that specify when it is legal to call ...
In this paper, we consider object protocols that constrain interactions between objects in a program...
In this paper, we consider object protocols that constrain in-teractions between objects in a progra...
A number of tools can statically check program code to identify commonly encountered bug patterns. A...
Application Programming Interfaces (APIs) typically come with (implicit) usage constraints. The viol...
Today's software industry relies heavily on the reuse of existing software libraries. Such libraries...
An active area of research in computer science is the prevention of violations of object protocols, ...
Static analysis tools cannot detect violations of application-specific rules. They can be extended w...
Code artefacts that have non-trivial requirements with respect to the ordering in which their method...
Over the last few years, researchers proposed a multitude of automated bug-detection approaches that...
Mining specifications and using them for bug detection is a promising way to reveal bugs in programs...
API libraries are becoming increasingly popular in modern software industries because these librarie...
Abstract—Many APIs enable cross-platform system develop-ment by abstracting over the details of a pl...
The proliferation of distributed, multilayer software services is encouraging a separation of Applic...
Programmers using an API often must follow protocols that specify when it is legal to call particula...
Abstract—Programmers using an API often must follow protocols that specify when it is legal to call ...
In this paper, we consider object protocols that constrain interactions between objects in a program...
In this paper, we consider object protocols that constrain in-teractions between objects in a progra...
A number of tools can statically check program code to identify commonly encountered bug patterns. A...
Application Programming Interfaces (APIs) typically come with (implicit) usage constraints. The viol...
Today's software industry relies heavily on the reuse of existing software libraries. Such libraries...
An active area of research in computer science is the prevention of violations of object protocols, ...
Static analysis tools cannot detect violations of application-specific rules. They can be extended w...
Code artefacts that have non-trivial requirements with respect to the ordering in which their method...
Over the last few years, researchers proposed a multitude of automated bug-detection approaches that...
Mining specifications and using them for bug detection is a promising way to reveal bugs in programs...
API libraries are becoming increasingly popular in modern software industries because these librarie...
Abstract—Many APIs enable cross-platform system develop-ment by abstracting over the details of a pl...
The proliferation of distributed, multilayer software services is encouraging a separation of Applic...