In this paper, we consider object protocols that constrain interactions between objects in a program. Several such protocols have been proposed in the literature [3, 9, 6, 5]. For many APIs (such as JDOM [23], JDBC [22]), API designers constrain how API clients interact with API objects. In practice, API clients violate such constraints, as evidenced by postings in discussion forums for these APIs. Thus, it is important that API designers specify constraints using appropriate object protocols and enforce them.\ud \ud The goal of an object protocol is expressed as a protocol invariant. Fundamental properties such as ownership can be expressed as protocol invariants. We present a language, PROLANG, to specify object protocols along with their...
Code artefacts that have non-trivial requirements with respect to the ordering in which their method...
Libraries are the most widespreaded form of software reuse. In order to properly use a library API, ...
Conventionally, interfaces of objects export a set of messages with their types, and suggest nothing...
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...
Abstract—Programmers using an API often must follow protocols that specify when it is legal to call ...
<p>Programmers using an API often must follow protocols that specify when it is legal to call partic...
Programmers using an API often must follow protocols that specify when it is legal to call particula...
An active area of research in computer science is the prevention of violations of object protocols, ...
Application Programming Interface (API) constraints on objects are rules that API client code must f...
Application Programming Interfaces (APIs) often define protocols— restrictions on the order of clien...
High level design decisions are never captured formally in programs and are often violated as progra...
In object-oriented programs, it is often the case that object types define usage protocols as an imp...
Software architecture research has proposed using protocols for specifying the interactions be-tween...
Software architecture research has proposed using protocols for specifying the interactions between ...
Code artefacts that have non-trivial requirements with respect to the ordering in which their method...
Libraries are the most widespreaded form of software reuse. In order to properly use a library API, ...
Conventionally, interfaces of objects export a set of messages with their types, and suggest nothing...
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...
Abstract—Programmers using an API often must follow protocols that specify when it is legal to call ...
<p>Programmers using an API often must follow protocols that specify when it is legal to call partic...
Programmers using an API often must follow protocols that specify when it is legal to call particula...
An active area of research in computer science is the prevention of violations of object protocols, ...
Application Programming Interface (API) constraints on objects are rules that API client code must f...
Application Programming Interfaces (APIs) often define protocols— restrictions on the order of clien...
High level design decisions are never captured formally in programs and are often violated as progra...
In object-oriented programs, it is often the case that object types define usage protocols as an imp...
Software architecture research has proposed using protocols for specifying the interactions be-tween...
Software architecture research has proposed using protocols for specifying the interactions between ...
Code artefacts that have non-trivial requirements with respect to the ordering in which their method...
Libraries are the most widespreaded form of software reuse. In order to properly use a library API, ...
Conventionally, interfaces of objects export a set of messages with their types, and suggest nothing...