SENov 19, 2013

A Notion of Dynamic Interface for Depth-Bounded Object-Oriented Packages

arXiv:1311.4615v12 citations
Originality Incremental advance
AI Analysis

This work addresses protocol specification for software components, which is incremental as it builds on state-machine interfaces for single objects by generalizing to packages.

The paper tackles the problem of formalizing and statically computing dynamic package interfaces (DPI) to specify legal method call protocols for software components, introducing a novel heap abstract domain based on depth-bounded systems to handle unbounded objects and references, and demonstrates effectiveness in representing common usage patterns like container-iterator relationships.

Programmers using software components have to follow protocols that specify when it is legal to call particular methods with particular arguments. For example, one cannot use an iterator over a set once the set has been changed directly or through another iterator. We formalize the notion of dynamic package interfaces (DPI), which generalize state-machine interfaces for single objects, and give an algorithm to statically compute a sound abstraction of a DPI. States of a DPI represent (unbounded) sets of heap configurations and edges represent the effects of method calls on the heap. We introduce a novel heap abstract domain based on depth-bounded systems to deal with potentially unboundedly many objects and the references among them. We have implemented our algorithm and show that it is effective in computing representations of common patterns of package usage, such as relationships between viewer and label, container and iterator, and JDBC statements and cursors.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes