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**
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.
*Department of Informatics, Universidade Federal do Para
**Robert Bosch Engineering and Business Solutions, Ltd.