Authors: Peter Andreae, Robert Biddle, Ewan Tempero
Source: GZipped PostScript (66kb); Adobe PDF (286kb)
An important part of the creation of a reusable software component is the design of the component's interface. Despite its importance, there are still well-known abstract data types for which there seems to be no agreement as to what their interface is.
In this paper, we describe an experiment in understanding ADT interface design. The experiment consisted of a development of an interface for one specific ADT, the Map, in one specific language, C++. Given these restrictions, we anticipated few problems. Instead we found that many ``natural'' choices interacted in subtle ways, resulting in an interface that was not as useful as expected.
We believe the difficulties we encountered are indicative of the state of the art of interface design. We hope that the issues raised in this study indicate a useful starting point for the development of good interfaces and help identify appropriate language support for ADT interface design.