Publications

View publication

Title When Should Internal Interfaces be Promoted to Public?
Authors Andre Hora, Marco Tulio Valente, Romain Robbes, Nicolas Anquetil
Publication date 2016
Abstract Commonly, software systems have public (and stable)
interfaces,
and internal (and possibly unstable) interfaces. Despite being discouraged,
client developers often use internal interfaces, which may cause their
systems to fail when they evolve. To overcome this problem, API producers
may promote internal interfaces to public. In practice, however, API
producers have no assistance to identify public interface candidates. In
this paper, we study the transition from internal to public interfaces. We
aim to help API producers to deliver a better product and API clients to
benefit sooner from public interfaces. Our empirical investigation on five
widely adopted Java systems present the following observations. First, we
identified 195 promotions from 2,722 internal interfaces. Second, we found
that promoted internal interfaces have more clients. Third, we predicted
internal interface promotion with precision between 50%-80%, recall 26%-82%,
and AUC 74%-85%. Finally, by applying our predictor on the last version of
the analyzed systems, we automatically detected 382 public interface
candidates.
Downloaded 5 times
Pages 278-289
Conference name ACM SIGSOFT Symposium on Foundations of Software Engineering
Publisher ACM Press (New York, NY, USA)
PDF View PDF
Reference URL View reference page