When should internal interfaces be promoted to public?

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.
Type de document :
Communication dans un congrès
FSE 2016 Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering , Nov 2016, Seattle, United States. 〈10.1145/2950290.2950306〉
Liste complète des métadonnées

https://hal.inria.fr/hal-01417888
Contributeur : Lse Lse <>
Soumis le : vendredi 16 décembre 2016 - 10:41:42
Dernière modification le : jeudi 11 janvier 2018 - 06:22:25

Identifiants

Collections

Citation

André Cavalcante Hora, Marco Tulio Valente, Romain Robbes, Nicolas Anquetil. When should internal interfaces be promoted to public?. FSE 2016 Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering , Nov 2016, Seattle, United States. 〈10.1145/2950290.2950306〉. 〈hal-01417888〉

Partager

Métriques

Consultations de la notice

160