Nothing Special   »   [go: up one dir, main page]

skip to main content
survey

A Systematic Review of API Evolution Literature

Published: 04 October 2021 Publication History

Abstract

Recent software advances have led to an expansion of the development and usage of application programming interfaces (APIs). From millions of Android packages (APKs) available on Google Store to millions of open-source packages available in Maven, PyPI, and npm, APIs have become an integral part of software development.
Like any software artifact, software APIs evolve and suffer from this evolution. Prior research has uncovered many challenges to the development, usage, and evolution of APIs. While some challenges have been studied and solved, many remain. These challenges are scattered in the literature, which hides advances and cloaks the remaining challenges.
In this systematic literature review on APIs and API evolution, we uncover and describe publication trends and trending topics. We compile common research goals, evaluation methods, metrics, and subjects. We summarize the current state-of-the-art and outline known existing challenges as well as new challenges uncovered during this review.
We conclude that the main remaining challenges related to APIs and API evolution are (1) automatically identifying and leveraging factors that drive API changes, (2) creating and using uniform benchmarks for research evaluation, and (3) understanding the impact of API evolution on API developers and users with respect to various programming languages.

References

[1]
Alberto Abelló Gamazo, Claudia Martinez, Carles Farré, Cristina Gómez, Marc Oriol, and Oscar Romero. 2017. A Data-driven approach to improve the process of data-intensive API creation and evolution. In Proceedings of the Forum and Doctoral Consortium Papers Presented at the 29th International Conference on Advanced Information Systems Engineering. CAiSE, 1–8.
[2]
Ziyad Alsaeed and Michal Young. 2018. Extending existing inference tools to mine dynamic APIs. In Proceedings of the 2nd International Workshop on API Usage and Evolution. ACM Press, New York, NY, 23–26.
[3]
Sven Amann, Sarah Nadi, Hoan A. Nguyen, Tien N. Nguyen, and Mira Mezini. 2016. MUBench—A benchmark for API-misuse detectors. In Proceedings of the 13th International Workshop on Mining Software Repositories. ACM Press, New York, NY, 464–467.
[4]
Sven Amann, Hoan Anh Nguyen, Sarah Nadi, Tien N. Nguyen, and Mira Mezini. 2019. Investigating next steps in static API-misuse detection. In Proceedings of the IEEE/ACM 16th International Conference on Mining Software Repositories (MSR’19). IEEE, Piscataway, NJ, 265–275.
[5]
Sven Amann, Hoan Anh Nguyen, Sarah Nadi, Tien N. Nguyen, and Mira Mezini. 2019. A systematic evaluation of static API-misuse detectors. IEEE Trans. Softw. Eng. 45, 12 (2019), 1170–1188.
[6]
Taweesup Apiwattanapong, Alessandro Orso, and Mary Jean Harrold. 2007. JDiff: A differencing technique and tool for object-oriented programs. Autom. Softw. Eng. 14, 1 (Mar. 2007), 3–36.
[7]
Muhammad Asaduzzaman, Chanchal K. Roy, Samiul Monir, and Kevin A. Schneider. 2015. Exploring API method parameter recommendations. In Proceedings of the IEEE International Conference on Software Maintenance and Evolution (ICSME’15). IEEE, 271–280.
[8]
Vaggelis Atlidakis, Patrice Godefroid, and Marina Polishchuk. 2019. RESTler: Stateful REST API Fuzzing. In Proceedings of the IEEE/ACM 41st International Conference on Software Engineering (ICSE’19). IEEE, Piscataway, NJ, 748–758.
[9]
Joop Aué, Maurício Aniche, Maikel Lobbezoo, and Arie van Deursen. 2018. An exploratory study on faults in web API integration in a large-scale payment company. In Proceedings of the 40th International Conference on Software Engineering Software Engineering in Practice. ACM Press, New York, NY, 13–22.
[10]
Shams Azad, Peter C. Rigby, and Latifa Guerrouj. 2017. Generating API call rules from version history and stack overflow posts. ACM Trans. Softw. Eng. Methodol. 25, 4 (Jan. 2017), 1–22.
[11]
Mojtaba Bagherzadeh, Nafiseh Kahani, Cor-Paul Bezemer, Ahmed E. Hassan, Juergen Dingel, and James R. Cordy. 2018. Analyzing a decade of Linux system calls. Empir. Softw. Eng. 23, 3 (June 2018), 1519–1551.
[12]
Mehdi Bahrami, Junhee Park, Lei Liu, and Wei-Peng Chen. 2018. API learning. In Proceedings of the Web Conference (WWW’18). ACM Press, New York, NY, 151–154.
[13]
Ittai Balaban, Frank Tip, and Robert Fuhrer. 2005. Refactoring support for class library migration. ACM SIGPLAN Noti. 40, 10 (Oct. 2005), 265.
[14]
Thiago Tonelli Bartolomei, Krzysztof Czarnecki, Ralf Lämmel, and Tijs van der Storm. 2010. Study of an API migration for two XML APIs. In Proceedings of the Conference on Software Language Engineering. Springer, Berlin, 42–61.
[15]
Gabriele Bavota, Mario Linares-Vasquez, Carlos Eduardo Bernal-Cardenas, Massimiliano Di Penta, Rocco Oliveto, and Denys Poshyvanyk. 2015. The impact of API change- and fault-proneness on the user ratings of Android apps. IEEE Trans. Softw. Eng. 41, 4 (Apr. 2015), 384–407.
[16]
Boualem Benatallah and Fabio Casati. 2018. Panel on cognitive service engineering. In Proceedings of the Web Conference (WWW’18). ACM Press, New York, NY, 883–883.
[17]
Boualem Benatallah, Fabio Casati, Daniela Grigori, Hamid R. Motahari Nezhad, and Farouk Toumani. 2005. Developing adapters for web services integration. In Advanced Information Systems Engineering, Oscar Pastor and João e Cunha (Eds.). Springer Berlin, 415–429.
[18]
David Bermbach and Erik Wittern. 2016. Benchmarking web API quality. In Proceedings of the International Conference on Web Engineering.Springer, Berlin, 188–206.
[19]
Salah Bouktif, Houari Sahraoui, and Faheem Ahmed. 2014. Predicting stability of open-source software systems using combination of Bayesian classifiers. ACM Trans. Manag. Inf. Syst. 5, 1 (Apr. 2014), 1–26.
[20]
Aline Brito, Laerte Xavier, Andre Hora, and Marco Tulio Valente. 2018. APIDiff: Detecting API breaking changes. In Proceedings of the IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER’18). IEEE, 507–511.
[21]
Aline Brito, Laerte Xavier, Andre Hora, and Marco Tulio Valente. 2018. Why and how Java developers break APIs. In Proceedings of the IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER’18). IEEE, 255–265.
[22]
Gleison Brito, Andre Hora, Marco Tulio Valente, and Romain Robbes. 2016. Do developers deprecate APIs with replacement messages? A large-scale analysis on Java systems. In Proceedings of the IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER’16). IEEE, 360–369.
[23]
Gleison Brito, Andre Hora, Marco Tulio Valente, and Romain Robbes. 2018. On the use of replacement messages in API deprecation: An empirical study. J. Syst. Softw. 137 (Mar. 2018), 306–321.
[24]
Nghi D. Q. Bui, Yijun Yu, and Lingxiao Jiang. 2019. SAR: Learning cross-language API mappings with little knowledge. In Proceedings of the 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering. ACM Press, New York, NY, 796–806.
[25]
Nghi D. Q. Bui, Yijun Yu, and Lingxiao Jiang. 2019. SAR: Learning cross-language API mappings with little knowledge. In Proceedings of the 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE’19). ACM Press, New York, NY, 796–806.
[26]
Raymond P. L. Buse and Westley Weimer. 2012. Synthesizing API usage examples. In Proceedings of the 34th International Conference on Software Engineering (ICSE’12). IEEE, 782–792.
[27]
John Businge, Alexander Serebrenik, and M. van den Brand. 2013. Analyzing the Eclipse API usage: Putting the developer in the loop. In Proceedings of the 17th European Conference on Software Maintenance and Reengineering. IEEE, 37–46.
[28]
Paolo Calciati, Konstantin Kuznetsov, Xue Bai, and Alessandra Gorla. 2018. What did really change with the new release of the app? In Proceedings of the 15th International Conference on Mining Software Repositories. ACM Press, New York, NY, 142–152.
[29]
Joao Campinhos, Joao Costa Seco, and Jacome Cunha. 2017. Type-safe evolution of web services. In Proceedings of the IEEE/ACM 2nd International Workshop on Variability and Complexity in Software Design (VACE’17). IEEE, 20–26.
[30]
Wing-Kwan Chan, Hong Cheng, and David Lo. 2012. Searching connected API subgraph via text phrases. In Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering (FSE’12). Association for Computing Machinery, New York, NY.
[31]
Bradley E. Cossette and Robert J. Walker. 2012. Seeking the ground truth. In Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering (FSE’12). ACM Press, 1.
[32]
Ira W. Cotton and Frank S. Greatorex, Jr. 1968. Data structures and techniques for remote computer graphics. In Proceedings of the December 9–11, 1968, Fall Joint Computer Conference, Part I (AFIPS’68 (Fall, part I)). ACM, New York, NY.
[33]
Barthélémy Dagenais and Harold Ossher. 2008. Automatically locating framework extension examples. In Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of Software Engineering (SIGSOFT’08/FSE’16). ACM Press, New York, NY, 203.
[34]
Barthelemy Dagenais and Martin P. Robillard. 2009. SemDiff: Analysis and recommendation support for API evolution. In Proceedings of the IEEE 31st International Conference on Software Engineering. IEEE, 599–602.
[35]
Barthélémy Dagenais and Martin P. Robillard. 2010. Creating and evolving developer documentation. In Proceedings of the 18th ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE’10). ACM Press, New York, NY, 127.
[36]
Marco D’Ambros, Michele Lanza, Mircea Lungu, and Romain Robbes. 2009. Promises and perils of porting software visualization tools to the web. In Proceedings of the 11th IEEE International Symposium on Web Systems Evolution. IEEE, 109–118.
[37]
Fernando López de la Mora and Sarah Nadi. 2018. Which library should I use? A metric-based comparison of software libraries. In Proceedings of the 40th International Conference on Software Engineering: New Ideas and Emerging Results (ICSE-NIER’18). Association for Computing Machinery, New York, NY, 37–40.
[38]
Uri Dekel and James D. Herbsleb. 2009. Improving API documentation usability with knowledge pushing. In Proceedings of the 31st International Conference on Software Engineering. IEEE Computer Society, 320–330.
[39]
Jens Dietrich, Kamil Jezek, and Premek Brada. 2014. Broken promises: An empirical study into evolution problems in Java programs caused by library upgrades, In Proceedings of the IEEE Conference on Software Maintenance, Reengineering, and Reverse Engineering (CSMR-WCRE’14).
[40]
Danny Dig. 2005. Using refactorings to automatically update component-based applications. In Proceedings of the ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications. ACM Press, New York, NY, 234.
[41]
Danny Dig and Ralph Johnson. 2005. The role of refactorings in API evolution. In Proceedings of the 21st IEEE International Conference on Software Maintenance (ICSM’05). 389–398.
[42]
Danny Dig and Ralph Johnson. 2006. Automated upgrading of component-based applications. In Proceedings of the 21st ACM SIGPLAN Conference on Object-oriented Programming Systems, Languages, and Applications. ACM Press, New York, NY, 675.
[43]
Danny Dig and Ralph Johnson. 2006. How do APIs evolve? A story of refactoring. J. Softw. Maint. Evol.: Res. Pract. 18, 2 (Mar. 2006), 83–107.
[44]
Danny Dig, Kashif Manzoor, Ralph Johnson, and Tien N. Nguyen. 2007. Refactoring-aware configuration management for object-oriented programs. In Proceedings of the 29th International Conference on Software Engineering (ICSE’07). IEEE Computer Society, 427–436.
[45]
Ekwa Duala-Ekoko and Martin P. Robillard. 2012. Asking and answering questions about unfamiliar APIs: An exploratory study. In Proceedings of the 34th International Conference on Software Engineering (ICSE’12). IEEE, 266–276.
[46]
Anna Maria Eilertsen and Anya Helene Bagge. 2018. Exploring API. In Proceedings of the 2nd International Workshop on API Usage and Evolution. ACM Press, New York, NY, 10–13.
[47]
Daniel S. Eisenberg, Jeffrey Stylos, and Brad A. Myers. 2010. Apatite. In Proceedings of the 28th International Conference on Human Factors in Computing Systems. ACM Press, New York, NY, 1331.
[48]
Brian Ellis, Jeffrey Stylos, and Brad Myers. 2007. The factory pattern in API design: A usability evaluation. In Proceedings of the 29th International Conference on Software Engineering. IEEE Computer Society, 302–312.
[49]
Stefan Endrikat, Stefan Hanenberg, Romain Robbes, and Andreas Stefik. 2014. How do API documentation and static typing affect API usability? In Proceedings of the 36th International Conference on Software Engineering. ACM Press, New York, NY, 632–642.
[50]
M. D. Ernst, Jake Cockrell, W. G. Griswold, and David Notkin. 2001. Dynamically discovering likely program invariants to support program evolution. IEEE Trans. Softw. Eng. 27, 2 (2001), 99–123.
[51]
Tiago Espinha, Andy Zaidman, and Hans-Gerhard Gross. 2014. Web API growing pains: Stories from client developers and their code. In Proceedings of the IEEE Conference on Software Maintenance, Reengineering, and Reverse Engineering (CSMR-WCRE’14). IEEE, 84–93.
[52]
Tiago Espinha, Andy Zaidman, and Hans-Gerhard Gross. 2015. Web API Fragility: How robust is your mobile application? In Proceedings of the 2nd ACM International Conference on Mobile Software Engineering and Systems (MOBILESoft’15). IEEE Press, 12–21.
[53]
Tiago Espinha, Andy Zaidman, and Hans-Gerhard Gross. 2015. Web API growing pains: Loosely coupled yet strongly tied. J. Syst. Softw. 100 (Feb. 2015), 27–43.
[54]
Darius Foo, Hendy Chua, Jason Yeo, Ming Yi Ang, and Asankhaya Sharma. 2018. Efficient static checking of library updates. In Proceedings of the 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering. ACM Press, New York, NY, 791–796.
[55]
Davide Fucci, Alireza Mollaalizadehbahnemiri, and Walid Maalej. 2019. On using machine learning to identify knowledge in API reference documentation. In Proceedings of the 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering. ACM Press, New York, NY, 109–119.
[56]
Jun Gao, Pingfan Kong, Li Li, Tegawende F. Bissyande, and Jacques Klein. 2019. Negative results on mining crypto—API Usage rules in Android apps. In Proceedings of the IEEE/ACM 16th International Conference on Mining Software Repositories (MSR’19). IEEE, 388–398.
[57]
Simos Gerasimou, Maria Kechagia, Dimitris Kolovos, Richard Paige, and Georgios Gousios. 2018. On software modernisation due to library obsolescence. In Proceedings of the 2nd International Workshop on API Usage and Evolution. ACM Press, New York, NY, 6–9.
[58]
Elena L. Glassman, Tianyi Zhang, Björn Hartmann, and Miryung Kim. 2018. Visualizing API usage examples at scale. In Proceedings of the CHI Conference on Human Factors in Computing Systems. ACM Press, 1–12.
[59]
M. W. Godfrey and Lijie Zou. 2005. Using origin analysis to detect merging and splitting of source code entities. IEEE Trans. Softw. Eng. 31, 2 (Feb. 2005), 166–181.
[60]
William Granli, John Burchell, Imed Hammouda, and Eric Knauss. 2015. The driving forces of API evolution. In Proceedings of the 14th International Workshop on Principles of Software Evolution. ACM Press, New York, NY, 28–37.
[61]
Giovanni Grano, Andrea Di Sorbo, Francesco Mercaldo, Corrado A. Visaggio, Gerardo Canfora, and Sebastiano Panichella. 2017. Android apps and user feedback: A dataset for software evolution and quality improvement. In Proceedings of the 2nd ACM SIGSOFT International Workshop on App Market Analytics. ACM Press, New York, NY, 8–11.
[62]
Xiaodong Gu, Hongyu Zhang, Dongmei Zhang, and Sunghun Kim. 2017. DeepAM: Migrate APIs with multi-modal sequence to sequence learning. In Proceedings of the 26th International Joint Conference on Artificial Intelligence (IJCAI’17). AAAI Press, 3675–3681.
[63]
Dongjie He, Lian Li, Lei Wang, Hengjie Zheng, Guangwei Li, and Jingling Xue. 2018. Understanding and detecting evolution-induced compatibility issues in Android apps. In Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering. ACM Press, New York, NY, 167–177.
[64]
J. Henkel and A. Diwan. 2005. Catchup! Capturing and replaying refactorings to support API evolution. In Proceedings of the 27th International Conference on Software Engineering.IEEE, 274–283.
[65]
Robert Heumüller, Sebastian Nielebock, and Frank Ortmeier. 2018. Who plays with whom? … and how? Mining API interaction patterns from source code. In Proceedings of the 7th International Workshop on Software Mining. ACM Press, New York, NY, 8–11.
[66]
Reid Holmes and Robert J. Walker. 2008. A newbie’s guide to eclipse APIs. In Proceedings of the International Workshop on Mining Software Repositories. ACM Press, New York, NY, 149.
[67]
André Hora, Romain Robbes, Marco Tulio Valente, Nicolas Anquetil, Anne Etien, and Stéphane Ducasse. 2018. How do developers react to API evolution? A large-scale empirical study. Softw. Qual. J. 26, 1 (Mar. 2018), 161–191.
[68]
Andre Hora and Marco Tulio Valente. 2015. Apiwave: Keeping track of API popularity and migration. In Proceedings of the IEEE International Conference on Software Maintenance and Evolution (ICSME’15). IEEE, 321–323.
[69]
André Hora, Marco Tulio Valente, Romain Robbes, and Nicolas Anquetil. 2016. When should internal interfaces be promoted to public? In Proceedings of the 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering. ACM Press, New York, NY, 278–289.
[70]
Daqing Hou and Xiaojia Yao. 2011. Exploring the intent behind API evolution: A case study. In Proceedings of the 18th Working Conference on Reverse Engineering. IEEE, 131–140.
[71]
Qiao Huang, Xin Xia, Zhenchang Xing, David Lo, and Xinyu Wang. 2018. API method recommendation without worrying about the task-API knowledge gap. In Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering. ACM Press, New York, NY, 293–304.
[72]
R. Huang, W. Sun, Y. Xu, H. Chen, D. Towey, and X. Xia. 2019. A survey on adaptive random testing. IEEE Trans. Softw. Eng. 1, 1 (2019), 1–1.
[73]
Shiyou Huang, Jianmei Guo, Sanhong Li, Xiang Li, Yumin Qi, Kingsum Chow, and Jeff Huang. 2019. SafeCheck: Safety enhancement of Java unsafe API. In Proceedings of the IEEE/ACM 41st International Conference on Software Engineering (ICSE’19). IEEE, 889–899.
[74]
Andrew J. Ko, B. A. Myers, and H. H. Aung. 2004. Six learning barriers in end-user programming systems. In Proceedings of the IEEE Symposium on Visual Languages—Human Centric Computing. IEEE, 199–206.
[75]
Z. M. Jiang and A. E. Hassan. 2015. A survey on load testing of large-scale software systems. IEEE Trans. Softw. Eng. 41, 11 (2015), 1091–1118.
[76]
Johnson. 1994. Substring matching for clone detection and change tracking. In Proceedings of the International Conference on Software Maintenance. IEEE Computer Society Press, 120–126.
[77]
Sukrit Kalra, Ayush Goel, Dhriti Khanna, Mohan Dhawan, Subodh Sharma, and Rahul Purandare. 2016. POLLUX: Safely upgrading dependent application libraries. In Proceedings of the 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering. ACM Press, New York, NY, 290–300.
[78]
R. H. Katz. 2000. The post-PC era. In Proceedings of the 4th International Workshop on Discrete Algorithms and Methods for Mobile Computing and Communications. ACM Press, New York, NY, 64.
[79]
David Kawrykow and Martin P. Robillard. 2009. Improving API usage through automatic detection of redundant code. In Proceedings of the IEEE/ACM International Conference on Automated Software Engineering. IEEE, 111–122.
[80]
Miryung Kim, Dongxiang Cai, and Sunghun Kim. 2011. An empirical investigation into the role of API-level refactorings during software evolution. In Proceedings of the 33rd International Conference on Software Engineering (ICSE’11). Association for Computing Machinery, New York, NY, 151–160.
[81]
B. Kitchenham and S. Charters. 2007. Guidelines for performing Systematic Literature Reviews in Software Engineering. Technical Report. Tech. Rep. EBSE-2007-01, 2007. Keele University, Keele, U.K.
[82]
Deokyoon Ko, Kyeongwook Ma, Sooyong Park, Suntae Kim, Dongsun Kim, and Yves Le Traon. 2014. API document quality for resolving deprecated APIs. In Proceedings of the 21st Asia-Pacific Software Engineering Conference. IEEE, 27–30.
[83]
Raula Gaikovina Kula, Ali Ouni, Daniel M. German, and Katsuro Inoue. 2018. An empirical study on the impact of refactoring activities on evolving client-used APIs. Inf. Softw. Technol. 93, July 2016 (Jan. 2018), 186–199.
[84]
Hobum Kwon, Juwon Ahn, Sunggyu Choi, Jakub Siewierski, Piotr Kosko, and Piotr Szydelko. 2018. An experience report of the API evolution and maintenance for software platforms. In Proceedings of the IEEE International Conference on Software Maintenance and Evolution (ICSME’18). IEEE, 587–590.
[85]
Maxime Lamothe and Weiyi Shang. 2018. Exploring the use of automated API migrating techniques in practice. In Proceedings of the 15th International Conference on Mining Software Repositories. 503–514.
[86]
Maxime Lamothe and Weiyi Shang. 2020. When APIs are intentionally bypassed: An exploratory study of API workarounds. In Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering (ICSE’20). Association for Computing Machinery, New York, NY, 912–924.
[87]
M. Lamothe, W. Shang, and T. P. Chen. 2020. A3: Assisting Android API migrations using code examples. IEEE Trans. Softw. Eng. (2020).
[88]
Craig Larman. 2001. Protected variation: The importance of being closed. IEEE Softw. 18, 3 (2001), 89–91.
[89]
M. M. Lehman. 1980. Programs, life cycles, and laws of software evolution. Proc. IEEE 68, 9 (1980), 1060–1076.
[90]
M. M. Lehman. 1996. Laws of software evolution revisited. In Proceedings of the 5th European Workshop on Software Process Technology (EWSPT’96). Springer-Verlag, Berlin, 108–124.
[91]
Grace A. Lewis and Dennis B. Smith. 2008. Service-oriented architecture and its implications for software maintenance and evolution. In Proceedings of the Conference on Frontiers of Software Maintenance. IEEE, 1–10.
[92]
Jing Li, Aixin Sun, Zhenchang Xing, and Lei Han. 2018. API caveat explorer—Surfacing negative usages from practice. In Proceedings of the 41st International ACM SIGIR Conference on Research & Development in Information Retrieval. ACM Press, New York, NY, 1293–1296.
[93]
Jun Li, Yingfei Xiong, Xuanzhe Liu, and Lu Zhang. 2013. How does web service API evolution affect clients? In Proceedings of the IEEE 20th International Conference on Web Services. 300–307.
[94]
Li Li and Wu Chou. 2015. Designing large scale REST APIs based on REST chart. In Proceedings of the IEEE International Conference on Web Services (ICWS’15). IEEE, Washington, DC, 631–638.
[95]
Li Li, Jun Gao, Tegawendé F. Bissyandé, Lei Ma, Xin Xia, and Jacques Klein. 2018. Characterising deprecated Android APIs. In Proceedings of the 15th International Conference on Mining Software Repositories. ACM Press, New York, NY, 254–264.
[96]
Mario Linares-Vásquez, Gabriele Bavota, Carlos Bernal-Cárdenas, Rocco Oliveto, Massimiliano Di Penta, and Denys Poshyvanyk. 2014. Mining energy-greedy API usage patterns in Android apps: An empirical study. In Proceedings of the 11th Working Conference on Mining Software Repositories. 2–11.
[97]
Mario Linares-Vásquez, Gabriele Bavota, Massimiliano Di Penta, Rocco Oliveto, and Denys Poshyvanyk. 2014. How do API changes trigger stack overflow discussions? A study on the Android SDK. In Proceedings of the 22nd International Conference on Program Comprehension. ACM Press, New York, NY, 83–94.
[98]
Mingwei Liu, Xin Peng, Andrian Marcus, Zhenchang Xing, Wenkai Xie, Shuangshuang Xing, and Yang Liu. 2019. Generating query-specific class API summaries. In Proceedings of the 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE’19). ACM Press, New York, NY, 120–130.
[99]
Xiaoyu Liu, LiGuo Huang, and Vincent Ng. 2018. Effective API recommendation without historical software repositories. In Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering. ACM Press, New York, NY, 282–292.
[100]
Maria Maleshkova, Carlos Pedrinaci, and John Domingue. 2010. Investigating web APIs on the world wide web. In Proceedings of the 8th IEEE European Conference on Web Services. IEEE, 107–114.
[101]
David Mandelin, Lin Xu, Rastislav Bodík, and Doug Kimelman. 2005. Jungloid mining: Helping to navigate the API jungle. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI’05). Association for Computing Machinery, New York, NY, 48–61.
[102]
Konstantinos Manikas. 2016. Revisiting software ecosystems research: A longitudinal literature study. J. Syst. Softw. 117 (July 2016), 84–103.
[103]
Anderson S. Matos, Joao B. Ferreira Filho, and Lincoln S. Rocha. 2019. Splitting APIs: An exploratory study of software unbundling. In Proceedings of the IEEE/ACM 16th International Conference on Mining Software Repositories. IEEE, 360–370.
[104]
Tyler McDonnell, Baishakhi Ray, and Miryung Kim. 2013. An empirical study of API stability and adoption in the Android ecosystem. In Proceedings of the IEEE International Conference on Software Maintenance. IEEE, 70–79.
[105]
Collin McMillan, Denys Poshyvanyk, and Mark Grechanik. 2010. Recommending source code examples via API call usages and documentation. In Proceedings of the 2nd International Workshop on Recommendation Systems for Software Engineering (RSSE’10). Association for Computing Machinery, New York, NY, 21–25.
[106]
Na Meng, Miryung Kim, and Kathryn S. McKinley. 2013. LASE: Locating and applying systematic edits by learning from examples. In Proceedings of the International Conference on Software Engineering. IEEE Press, 502–511.
[107]
Sichen Meng, Xiaoyin Wang, Lu Zhang, and Hong Mei. 2012. A history-based matching approach to identification of framework evolution. In Proceedings of the 34th International Conference on Software Engineering (ICSE’12). IEEE, 353–363.
[108]
Kim Mens and Angela Lozano. 2014. Source code-based recommendation systems. In Recommendation Systems in Software Engineering. Springer Berlin, 93–130.
[109]
Tom Mens. 2002. A state-of-the-art survey on software merging. IEEE Trans. Softw. Eng. 28, 5 (May 2002), 449–462.
[110]
A. Michail. 2003. Data mining library reuse patterns in user-selected applications. In Proceedings of the 14th IEEE International Conference on Automated Software Engineering. IEEE Computer Society, 24–33.
[111]
Microsoft. 2019. interface c# reference 2019. Docs.microsoft.com. Retrieved on June 3rd, 2020 from https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/interface.
[112]
Yana Momchilova Mileva, Valentin Dallmeier, and Andreas Zeller. 2010. Mining API popularity. In Testing – Practice and Research Techniques. TAIC PART 2010. Springer, Berlin, 173–180.
[113]
Laura Moreno, Gabriele Bavota, Massimiliano Di Penta, Rocco Oliveto, and Andrian Marcus. 2015. How can I use this method? In Proceedings of the IEEE/ACM 37th IEEE International Conference on Software Engineering. IEEE, 880–890.
[114]
Eduardo Mosqueira-Rey, David Alonso-Ríos, Vicente Moret-Bonillo, Isaac Fernández-Varela, and Diego Álvarez-Estévez. 2018. A systematic approach to API usability: Taxonomy-derived criteria and a case study. Inf. Softw. Technol. 97, Dec. 2017 (May 2018), 46–63.
[115]
Shaikh Mostafa, Rodney Rodriguez, and Xiaoyin Wang. 2017. Experience paper: A study on behavioral backward incompatibilities of Java software libraries. In Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis. ACM Press, New York, NY, 215–225.
[116]
Emerson Murphy-Hill, Caitlin Sadowski, Andrew Head, John Daughtry, Andrew Macvean, Ciera Jaspan, and Collin Winter. 2018. Discovering API usability problems at scale. In Proceedings of the 2nd International Workshop on API Usage and Evolution. ACM Press, New York, NY, 14–17.
[117]
Varvana Myllärniemi, Sari Kujala, Mikko Raatikainen, and Piia Sevonn. 2018. Development as a journey: Factors supporting the adoption and use of software frameworks. J. Softw. Eng. Res. Dev. 6, 1 (Dec. 2018), 6.
[118]
Anh Tuan Nguyen, Michael Hilton, Mihai Codoban, Hoan Anh Nguyen, Lily Mast, Eli Rademacher, Tien N. Nguyen, and Danny Dig. 2016. API code recommendation using statistical learning from fine-grained changes. In Proceedings of the 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering. ACM Press, 511–522.
[119]
Anh Tuan Nguyen, Peter C. Rigby, Thanh Van Nguyen, Mark Karanfil, and Tien N. Nguyen. 2017. Statistical translation of English texts to API code templates. In Proceedings of the IEEE/ACM 39th International Conference on Software Engineering Companion (ICSE-C’17). IEEE, 331–333.
[120]
Hoan Anh Nguyen, Tien N. Nguyen, Hridesh Rajan, and Robert Dyer. 2018. Towards combining usage mining and implementation analysis to infer API preconditions. In Proceedings of the 1st ACM SIGSOFT International Workshop on Automated Specification Inference. ACM Press, New York, NY, 15–16.
[121]
Phuong T. Nguyen, Juri Di Rocco, Davide Di Ruscio, Lina Ochoa, Thomas Degueule, and Massimiliano Di Penta. 2019. FOCUS: A recommender system for mining API function calls and usage patterns. In Proceedings of the IEEE/ACM 41st International Conference on Software Engineering (ICSE’19). IEEE, 1050–1060.
[122]
Thanh Nguyen, Peter C. Rigby, Anh Tuan Nguyen, Mark Karanfil, and Tien N. Nguyen. 2016. T2API: Synthesizing API code usage templates from English texts with statistical translation. In Proceedings of the 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering. ACM Press, 1013–1017.
[123]
Thanh Nguyen, Ngoc Tran, Hung Phan, Trong Nguyen, Linh Truong, Anh Tuan Nguyen, Hoan Anh Nguyen, and Tien N. Nguyen. 2018. Complementing global and local contexts in representing API descriptions to improve API retrieval tasks. In Proceedings of the 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering. ACM Press, 551–562.
[124]
Trong Duc Nguyen, Anh Tuan Nguyen, Hung Dang Phan, and Tien N. Nguyen. 2017. Exploring API embedding for API usages and Applications. In Proceedings of the IEEE/ACM 39th International Conference on Software Engineering (ICSE’17). IEEE, 438–449.
[125]
Thanh V. Nguyen and Tien N. Nguyen. 2018. Inferring API elements relevant to an english query. In Proceedings of the 40th International Conference on Software Engineering Companion Proceeedings. ACM Press, New York, NY, 167–168.
[126]
Oracle. 2019. What is an interface? (Java—Learning the Java language object-oriented programming concepts. Retrieved on June 3rd, 2020 from https://docs.oracle.com/javase/tutorial/java/concepts/interface.html.
[127]
D. L. Parnas. 1972. On the criteria to be used in decomposing systems into modules. Commun. ACM 15, 12 (Dec. 1972), 1053–1058.
[128]
Chris Parnin and Christoph Treude. 2011. Measuring API documentation on the web. In Proceeding of the 2nd International Workshop on Web 2.0 for Software Engineering. ACM Press, New York, NY, 25–30.
[129]
Chris Parnin, Christoph Treude, Lars Grammel, and Margaret-Anne Storey. 2012. Crowd Documentation: Exploring the Coverage and the Dynamics of API Discussions on Stack Overflow. Technical Report. 1 (2012), 1–11. Georgia Tech.
[130]
K. Petersen, S. Vakkalanka, and L. Kuzniarz. 2015. Guidelines for conducting systematic mapping studies in software engineering: An update. Inf. Softw. Technol. 64, C (Aug. 2015), 1–18.
[131]
Pujan Petersen, Stefan Hanenberg, and Romain Robbes. 2014. An empirical comparison of static and dynamic type systems on API usage in the presence of an IDE: Java vs. Groovy with Eclipse. In Proceedings of the 22nd International Conference on Program Comprehension. ACM Press, New York, NY, 212–222.
[132]
Hung Phan, Hoan Anh Nguyen, Ngoc M. Tran, Linh H. Truong, Anh Tuan Nguyen, and Tien N. Nguyen. 2018. Statistical learning of API fully qualified names in code snippets of online forums. In Proceedings of the 40th International Conference on Software Engineering. ACM Press, New York, NY, 632–642.
[133]
H. D. Phan, A. T. Nguyen, T. D. Nguyen, and T. N. Nguyen. 2017. Statistical migration of API usages. In Proceedings of the IEEE/ACM 39th International Conference on Software Engineering Companion (ICSE-C’17). 47–50.
[134]
Marco Piccioni, Carlo A. Furia, and Bertrand Meyer. 2013. An empirical study of API usability. In Proceedings of the ACM/IEEE International Symposium on Empirical Software Engineering and Measurement. IEEE, 5–14.
[135]
David M. Pletcher and Daqing Hou. 2009. BCC: Enhancing code completion for better API usability. In Proceedings of the IEEE International Conference on Software Maintenance 1 (Sep. 2009), 393–394.
[136]
Felipe Pontes, Rohit Gheyi, Sabrina Souto, Alessandro Garcia, and Márcio Ribeiro. 2019. Java reflection API: Revealing the dark side of the mirror. In Proceedings of the 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering. ACM Press, New York, NY, 636–646.
[137]
Ivan Porres and Irum Rauf. 2011. Modeling behavioral RESTful web service interfaces in UML. In Proceedings of the ACM Symposium on Applied Computing (SAC’11). ACM Press, New York, NY, 1598.
[138]
Michael Pradel, Ciera Jaspan, Jonathan Aldrich, and Thomas R. Gross. 2012. Statically checking API protocol conformance with mined multi-object specifications. In Proceedings of the 34th International Conference on Software Engineering (ICSE’12). IEEE, 925–935.
[139]
Lutz Prechelt and D. J. Hutzel. 2003. The co-evolution of a hype and a software architecture: Experience of component-producing large-scale EJB early adopters. In Proceedings of the 25th International Conference on Software Engineering. IEEE, 553–556.
[140]
Qi Xi, Tianyang Zhou, Qingxian Wang, and Yongjun Zeng. 2013. An API deobfuscation method combining dynamic and static techniques. In Proceedings International Conference on Mechatronic Sciences, Electric Engineering and Computer (MEC’13). 2133–2138.
[141]
Mohammad Masudur Rahman, Chanchal K. Roy, and David Lo. 2016. RACK: Automatic API recommendation using crowdsourced knowledge. In Proceedings of the IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER’16). IEEE, 349–359.
[142]
Anastasia Reinhardt, Tianyi Zhang, Mihir Mathur, and Miryung Kim. 2018. Augmenting stack overflow with API usage patterns mined from GitHub. In Proceedings of the 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering. ACM Press, 880–883.
[143]
Romain Robbes and Mircea Lungu. 2011. A study of ripple effects in software ecosystems. In Proceeding of the 33rd International Conference on Software Engineering (ICSE’11). ACM Press, New York, NY, 904.
[144]
Martin P. Robillard. 2009. What makes APIs hard to learn? Answers from developers. IEEE Softw. 26 (2009), 27–34.
[145]
Martin P. Robillard, Eric Bodden, David Kawrykow, Mira Mezini, and Tristan Ratchford. 2013. Automated API property inference techniques. IEEE Trans. Softw. Eng. 39, 5 (May 2013), 613–637.
[146]
Martin P. Robillard and Yam B. Chhetri. 2015. Recommending reference API documentation. Empir. Softw. Eng. 20, 6 (Dec. 2015), 1558–1586.
[147]
Martin P. Robillard and Robert DeLine. 2011. A field study of API learning obstacles. Empir. Softw. Eng. 16, 6 (Dec. 2011), 703–732.
[148]
Martin P. Robillard, Walid Maalej, Robert J. Walker, and Thomas Zimmermann. 2014. Recommendation Systems in Software Engineering. Springer Berlin.
[149]
Martin P. Robillard, Andrian Marcus, Christoph Treude, Gabriele Bavota, Oscar Chaparro, Neil Ernst, Marco Aurelio Gerosa, Michael Godfrey, Michele Lanza, Mario Linares-Vasquez, Gail C. Murphy, Laura Moreno, David Shepherd, and Edmund Wong. 2017. On-demand developer documentation. In Proceedings of the IEEE International Conference on Software Maintenance and Evolution (ICSME’17). 479–483.
[150]
Thomas Ruhroth and Heike Wehrheim. 2009. Refinement-preserving co-evolution. In Proceedings of the International Conference on Formal Methods and Software Engineering.Springer, Berlin, 620–638.
[151]
Chandan R. Rupakheti and Daqing Hou. 2012. Evaluating forum discussions to inform the design of an API critic. In Proceedings of the 20th IEEE International Conference on Program Comprehension (ICPC’12). IEEE, 53–62.
[152]
Mohamed Aymen Saied, Houari Sahraoui, and Bruno Dufour. 2015. An observational study on API usage constraints and their documentation. In Proceedings of the IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER’15). 33–42.
[153]
Pasquale Salza, Fabio Palomba, Dario Di Nucci, Cosmo D’Uva, Andrea De Lucia, and Filomena Ferrucci. 2018. Do developers update third-party libraries in mobile apps? In Proceedings of the 26th Conference on Program Comprehension. ACM Press, New York, NY, 255–265.
[154]
Anand Ashok Sawant, Maurício Aniche, Arie van Deursen, and Alberto Bacchelli. 2018. Understanding developers’ needs on deprecation as a language feature. In Proceedings of the 40th International Conference on Software Engineering. ACM Press, New York, NY, 561–571.
[155]
Anand Ashok Sawant and Alberto Bacchelli. 2015. A dataset for API usage. In Proceedings of the IEEE/ACM 12th Working Conference on Mining Software Repositories. IEEE, 506–509.
[156]
Anand Ashok Sawant and Alberto Bacchelli. 2017. fine-GRAPE: Fine-grained APi usage extractor—An approach and dataset to investigate API usage. Empir. Softw. Eng. 22, 3 (June 2017), 1348–1371.
[157]
Anand Ashok Sawant, Romain Robbes, and Alberto Bacchelli. 2018. On the reaction to deprecation of clients of 4 + 1 popular Java APIs and the JDK. Empir. Softw. Eng. 23, 4 (Aug. 2018), 2158–2197.
[158]
Simone Scalabrino, Gabriele Bavota, Mario Linares-Vasquez, Michele Lanza, and Rocco Oliveto. 2019. Data-driven solutions to detect API compatibility issues in Android: An empirical study. In Proceedings of the IEEE/ACM 16th International Conference on Mining Software Repositories (MSR’19). IEEE, 288–298.
[159]
Thorsten Schäfer, Jan Jonas, and Mira Mezini. 2008. Mining framework usage changes from instantiation code. In Proceedings of the 13th International Conference on Software Engineering (ICSE’08). ACM Press, 471.
[160]
S. M. Sohan, Craig Anslow, and Frank Maurer. 2015. A case study of web API evolution. In Proceedings of the IEEE World Congress on Services. IEEE, 245–252.
[161]
S. M. Sohan, Craig Anslow, and Frank Maurer. 2015. SpyREST: Automated RESTful API documentation using an HTTP proxy server. In Proceedings of the 30th IEEE/ACM International Conference on Automated Software Engineering. IEEE, 271–276.
[162]
Brett Spell. 2015. Pro Java 8 Programming. Apress.
[163]
Jeffrey Stylos and B. A. Myers. 2006. Mica: A web-search tool for finding API components and examples. In Proceedings of the Conference on Visual Languages and Human-Centric Computing (VL/HCC’06). IEEE, 195–202.
[164]
Jingyi Su, Mohd Arafat, and Robert Dyer. 2018. Using consensus to automatically infer post-conditions. In Proceedings of the 40th International Conference on Software Engineering. ACM Press, 202–203.
[165]
Siddharth Subramanian, Laura Inozemtseva, and Reid Holmes. 2014. Live API documentation. In Proceedings of the 36th International Conference on Software Engineering. ACM Press, New York, NY, 643–652.
[166]
Philippe Suter and Erik Wittern. 2015. Inferring web API descriptions from usage data. In Proceedings of the 3rd IEEE Workshop on Hot Topics in Web Systems and Technologies (HotWeb’15). IEEE, 7–12.
[167]
Christoph Treude and Maurício Aniche. 2018. Where does Google find API documentation? InProceedings of the 2nd International Workshop on API Usage and Evolution. 19–22.
[168]
Nikolaos Tsantalis, Matin Mansouri, Laleh M. Eshkevari, Davood Mazinanian, and Danny Dig. 2018. Accurate and efficient refactoring detection in commit history. In Proceedings of the 40th International Conference on Software Engineering. ACM Press, New York, NY, 483–494.
[169]
Gias Uddin and Martin P. Robillard. 2015. How API documentation fails. IEEE Softw. 32, 4 (July 2015), 68–75.
[170]
Muhammad Usman, Ricardo Britto, Jürgen Börstler, and Emilia Mendes. 2017. Taxonomies in software engineering: A systematic mapping study and a revised taxonomy development method. Inf. Softw. Technol. 85 (2017), 43–59. Retrieved from https://www.sciencedirect.com/science/article/pii/S0950584917300472.
[171]
Thanh Van Nguyen, Anh Tuan Nguyen, and Tien N. Nguyen. 2016. Characterizing API elements in software documentation with vector representation. In Proceedings of the 38th International Conference on Software Engineering Companion. ACM Press, New York, NY, 749–751.
[172]
Pradeep K. Venkatesh, Shaohua Wang, Feng Zhang, Ying Zou, and Ahmed E. Hassan. 2016. What do client developers concern when using web APIs? An empirical study on developer forums and stack overflow. In Proceedings of the IEEE International Conference on Web Services (ICWS’16). IEEE, 131–138.
[173]
Gemma Vilagut. 2014. Test-Retest Reliability. Springer Netherlands, Dordrecht, 6622–6625.
[174]
Jue Wang, Yingnong Dang, Hongyu Zhang, Kai Chen, Tao Xie, and Dongmei Zhang. 2013. Mining succinct and high-coverage API usage patterns from source code. In Proceedings of the 10th Working Conference on Mining Software Repositories (MSR’13). IEEE, 319–328.
[175]
Shaohua Wang, Nhathai Phan, Yan Wang, and Yong Zhao. 2019. Extracting API tips from developer question and answer websites. In Proceedings of the IEEE/ACM 16th International Conference on Mining Software Repositories. IEEE, 321–332.
[176]
Lili Wei, Yepang Liu, and Shing-Chi Cheung. 2019. PIVOT: Learning API-device correlations to facilitate Android compatibility issue detection. In Proceedings of the IEEE/ACM 41st International Conference on Software Engineering. IEEE, 878–888.
[177]
Ming Wen, Yepang Liu, Rongxin Wu, Xuan Xie, Shing-Chi Cheung, and Zhendong Su. 2019. Exposing library API misuses via mutation analysis. In Proceedings of the IEEE/ACM 41st International Conference on Software Engineering. IEEE, 866–877.
[178]
Erik Wilde. 2018. Surfing the API Web. In Proceedings of the Web Conference (WWW’18). ACM Press, New York, NY, 797–803.
[179]
Titus Winters. 2018. Non-atomic refactoring and software sustainability. In Proceedings of the 2nd International Workshop on API Usage and Evolution. ACM Press, New York, NY, 2–5.
[180]
Erik Wittern. 2018. Web APIs—Challenges, design points, and research opportunities. In Proceedings of the 2nd International Workshop on API Usage and Evolution. ACM Press, New York, NY, 18–18.
[181]
Erik Wittern, Annie T. T. Ying, Yunhui Zheng, Julian Dolby, and Jim A. Laredo. 2017. Statically checking web API requests in JavaScript. In Proceedings of the IEEE/ACM 39th International Conference on Software Engineering. IEEE, 244–254.
[182]
Erik Wittern, Annie T. T. Ying, Yunhui Zheng, Jim A. Laredo, Julian Dolby, Christopher C. Young, and Aleksander A. Slominski. 2017. Opportunities in software engineering research for Web API consumption. In Proceedings of the IEEE/ACM 1st International Workshop on API Usage and Evolution.
[183]
Wei Wu, Bram Adams, Yann-Gael Gueheneuc, and Giuliano Antoniol. 2014. ACUA: API change and usage auditor. In Proceedings of the IEEE 14th International Working Conference on Source Code Analysis and Manipulation. IEEE, 89–94.
[184]
Wei Wu, Yann-Gaël Guéhéneuc, Giuliano Antoniol, and Miryung Kim. 2010. AURA. In Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering. ACM Press, New York, NY, 325.
[185]
Laerte Xavier, Aline Brito, Andre Hora, and Marco Tulio Valente. 2017. Historical and impact analysis of API breaking changes: A large-scale study. In Proceedings of the IEEE 24th International Conference on Software Analysis, Evolution and Reengineering (SANER’17). IEEE, 138–147.
[186]
Tao Xie and Jian Pei. 2006. MAPO. In Proceedings of the International Workshop on Mining Software Repositories. ACM Press, New York, NY, 54.
[187]
Deheng Ye, Zhenchang Xing, Chee Yong Foo, Jing Li, and Nachiket Kapre. 2016. Learning to extract API mentions from informal natural language discussions. In Proceedings of the IEEE International Conference on Software Maintenance and Evolution (ICSME’16). 389–399.
[188]
Reishi Yokomori, Harvey Siy, Masami Noro, and Katsuro Inoue. 2009. Assessing the impact of framework changes using component ranking. In Proceedings of the IEEE International Conference on Software Maintenance. IEEE, 189–198.
[189]
Ping Yu, Fei Yang, Chun Cao, Hao Hu, and Xiaoxing Ma. 2017. API usage change rules mining based on fine-grained call dependency analysis. In Proceedings of the 9th Asia-Pacific Symposium on Internetware. ACM Press, New York, NY, 1–9.
[190]
Weizhao Yuan, Hoang H. Nguyen, Lingxiao Jiang, and Yuting Chen. 2018. LibraryGuru. In Proceedings of the 40th International Conference on Software Engineering. ACM Press, 364–365.
[191]
Apostolos V. Zarras, Panos Vassiliadis, and Ioannis Dinos. 2016. Keep calm and wait for the spike! Insights on the evolution of Amazon services. In CAiSE, Selmin Nurcan, Pnina Soffer, Marko Bajec, and Johann Eder (Eds.). (Lecture Notes in Computer Science, Vol.  9694.) Springer International Publishing, Cham, 444–458.
[192]
Amir Zghidi, Imed Hammouda, Brahim Hnich, and Eric Knauss. 2017. On the role of fitness dimensions in API design assessment—An empirical investigation. In Proceedings of the IEEE/ACM 1st International Workshop on API Usage and Evolution (WAPI’17). IEEE, 19–22.
[193]
Tianyi Zhang, Ganesha Upadhyaya, Anastasia Reinhardt, Hridesh Rajan, and Miryung Kim. 2018. Are code examples on an online Q&A forum reliable? In Proceedings of the 40th International Conference on Software Engineering. ACM Press, New York, NY, 886–896.
[194]
Zhenchang Xing and Eleni Stroulia. 2007. API-Evolution support with Diff-CatchUp. IEEE Trans. Softw. Eng. 33, 12 (Dec. 2007), 818–836.
[195]
Wujie Zheng, Qirun Zhang, and Michael Lyu. 2011. Cross-library API recommendation using web search engines. In Proceedings of the 19th ACM SIGSOFT Symposium and the 13th European Conference on Foundations of Software Engineering. ACM Press, New York, NY, 480.
[196]
Hao Zhong, Suresh Thummalapenta, and Tao Xie. 2013. Exposing Behavioral differences in cross-language API mapping relations. In Fundamental Approaches to Software Engineering, Vittorio Cortellessa and Dániel Varró (Eds.). Springer Berlin, 130–145.
[197]
Hao Zhong, Suresh Thummalapenta, and Tao Xie. 2013. Exposing behavioral differences in cross-language API mapping relations. In Fundamental Approaches to Software Engineering. Springer, Berlin, 130–145.
[198]
Hao Zhong, Suresh Thummalapenta, Tao Xie, Lu Zhang, and Qing Wang. 2010. Mining API mapping for language migration. In Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering. ACM Press, 195.
[199]
Hao Zhong, Tao Xie, Lu Zhang, Jian Pei, and Hong Mei. 2009. MAPO: Mining and recommending API usage patterns. In Proceedings of the 23rd European Conference onObject-Oriented Programming. Springer-Verlag, Berlin, 318–343.
[200]
Yibing Zhongyang, Zhi Xin, Bing Mao, and Li Xie. 2013. DroidAlarm. In Proceedings of the 8th ACM SIGSAC Symposium on Information, Computer and Communications Security. ACM Press, New York, NY, 353.
[201]
Jing Zhou and Robert J. Walker. 2016. API deprecation: A retrospective analysis and detection method for code examples on the web. In Proceedings of the 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering. ACM Press, New York, NY, 266–277.
[202]
Minhaz F. Zibran, Farjana Z. Eishita, and Chanchal K. Roy. 2011. Useful, but usable? Factors affecting the usability of APIs. In Proceedings of the 18th Working Conference on Reverse Engineering. IEEE, 151–155.

Cited By

View all
  • (2025)Detecting Android malware: A multimodal fusion method with fine-grained featureInformation Fusion10.1016/j.inffus.2024.102662114(102662)Online publication date: Mar-2025
  • (2024)A Comparison of 4G LTE and 5G Network Cybersecurity Performance2024 35th Conference of Open Innovations Association (FRUCT)10.23919/FRUCT61870.2024.10516378(452-464)Online publication date: 24-Apr-2024
  • (2024)Automatic Library Migration Using Large Language Models: First ResultsProceedings of the 18th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement10.1145/3674805.3690746(427-433)Online publication date: 24-Oct-2024
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Computing Surveys
ACM Computing Surveys  Volume 54, Issue 8
November 2022
754 pages
ISSN:0360-0300
EISSN:1557-7341
DOI:10.1145/3481697
Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 04 October 2021
Accepted: 01 June 2021
Revised: 01 April 2021
Received: 01 October 2020
Published in CSUR Volume 54, Issue 8

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. SLR
  2. APIs
  3. API evolution

Qualifiers

  • Survey
  • Refereed

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)548
  • Downloads (Last 6 weeks)87
Reflects downloads up to 26 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2025)Detecting Android malware: A multimodal fusion method with fine-grained featureInformation Fusion10.1016/j.inffus.2024.102662114(102662)Online publication date: Mar-2025
  • (2024)A Comparison of 4G LTE and 5G Network Cybersecurity Performance2024 35th Conference of Open Innovations Association (FRUCT)10.23919/FRUCT61870.2024.10516378(452-464)Online publication date: 24-Apr-2024
  • (2024)Automatic Library Migration Using Large Language Models: First ResultsProceedings of the 18th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement10.1145/3674805.3690746(427-433)Online publication date: 24-Oct-2024
  • (2024)Mapping APIs in Dynamic-typed Programs by Leveraging Transfer LearningACM Transactions on Software Engineering and Methodology10.1145/364184833:4(1-29)Online publication date: 18-Apr-2024
  • (2024)SE Factual Knowledge in Frozen Giant Code Model: A Study on FQN and Its RetrievalIEEE Transactions on Knowledge and Data Engineering10.1109/TKDE.2024.343688336:12(9220-9234)Online publication date: Dec-2024
  • (2024)Web API Change-Proneness Prediction2024 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER)10.1109/SANER60148.2024.00050(429-434)Online publication date: 12-Mar-2024
  • (2024)Detecting Usage of Deprecated Web APIs via Tracing2024 IEEE 21st International Conference on Software Architecture (ICSA)10.1109/ICSA59870.2024.00011(23-33)Online publication date: 4-Jun-2024
  • (2024)Cybersecurity Threats using Application Programming Interface (API)2024 International Conference on Computing, Internet of Things and Microwave Systems (ICCIMS)10.1109/ICCIMS61672.2024.10690413(1-6)Online publication date: 29-Jul-2024
  • (2024)Exploring and evaluating the development of an open application programming interface (Open API) architecture for the fintech services ecosystemBusiness Process Management Journal10.1108/BPMJ-09-2023-068830:5(1564-1591)Online publication date: 10-Jun-2024
  • (2024)Microservice API Evolution in Practice: A Study on Strategies and ChallengesJournal of Systems and Software10.1016/j.jss.2024.112110215(112110)Online publication date: Sep-2024
  • Show More Cited By

View Options

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

HTML Format

View this article in HTML Format.

HTML Format

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media