  Software Interfaces are meant to describe contracts governing interactions
between logic modules. Interfaces, if well designed, significantly reduce
software complexity and ease maintainability . However, as software evolves,
the organization and the quality of software interfaces gradually deteriorate.
As a consequence, this often leads to increased development cost, lower code
quality and reduced reusability . Code clones are one of the most known bad
smells in source code. This design defect may occur in interfaces by
duplicating method/API declarations in several interfaces. Such interfaces are
similar from the point of view of public services/APIs they specify, thus they
indicate a bad organization of application services. In this paper, we
characterize the interface clone design defect and illustrate it via examples
taken from real-world open source software applications. We conduct an
empirical study covering nine real-world open source software applications to
quantify the presence of interface clones and evaluate their impact on
interface design quality . The results of the empirical study show that
interface clones are widely present in software interfaces. They also show that
the presence of interface clones may cause a degradation of interface cohesion
and indicate a considerable presence of code clones at implementations level.

Software Engineering