Institute for Software Research
School of Computer Science, Carnegie Mellon University


The Impact of Interface Complexity on Failures:
an Empirical Analysis and Implications for Tool Design

Marcelo Cataldo, Cleidson R.B. de Souza*,
David L. Bentolila*, Tales C. Miranda*, Sangeeth Nambiar**

January 2010


Keywords: APIs, API design, empirical software engineering, software quality, development tools

Information hiding is a cornerstone principle of modern software engineering. Interfaces are central to realizing the benefits of information hiding, but despite their widespread use, designing good interfaces is not a trivial activity. Particular design choices can have a significant detrimental effect on quality or development productivity. In this paper, we examine the relative impact of interface complexity on the failure proneness of source code files using data from two large-scale systems from two distinct software companies. Our analyses showed that increases in the complexity of interfaces are associated with increases the failure proneness of source code files. Building on our empirical results, we develop a set of implications for designing tools aimed at assisting developers to cope with the detrimental impact of interface complexity.

17 pages

*Department of Informatics, Universidade Federal do Para
**Robert Bosch Engineering and Business Solutions, Ltd.

Return to: SCS Technical Report Collection
School of Computer Science homepage

This page maintained by