Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3387940.3392203acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

On the Variations and Evolutions of API Usage Patterns: Case Study on Android Applications

Published: 25 September 2020 Publication History
  • Get Citation Alerts
  • Abstract

    Software developers can reduce the implementation cost by calling already provided functions through accessing library Application Programming Interface (API). APIs are often used in combination but how to combine them are not well-documented. Existing researches focused on how to extract API usage patterns or how to detect API misuse from existing software. This kind of research might be affected by dataset to analyze, so to improve mining results and to understand how the difference of API usage patterns affect the software health are important tasks. We conducted an analysis on variations of API usage pattern among software projects and their version history with Android SDK APIs and Android applications. Based on our analysis results, we made some suggestions for further API analysis. For example, there are many project-specific API usage patterns and long-life uncommon API usage patterns so that they might affect the mining result or checking software health status.

    References

    [1]
    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 16th International Conference on Mining Software Repositories (MSR '19). 265--275. https://doi.org/10.1109/MSR.2019.00053
    [2]
    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, Article Article 29 (Jan. 2017), 22 pages. https://doi.org/10.1145/2990497
    [3]
    John Businge, Moses Openja, David Kavaler, Engineer Bainomugisha, Foutse Khomh, and Vladimir Filkov. 2019. Studying Android App Popularity by Cross-Linking GitHub and Google Play Store. In 2019 IEEE 26th International Conference on Software Analysis, Evolution and Reengineering (SANER 2019). 287--297. https://doi.org/10.1109/SANER.2019.8667998
    [4]
    Google Developers. [n.d.]. Android API Reference. Retrieved February 5, 2020 from https://developer.android.com/reference
    [5]
    Manuel Egele, David Brumley, Yanick Fratantonio, and Christopher Kruegel. 2013. An Empirical Study of Cryptographic Misuse in Android Applications. In Proceedings of the 2013 ACM SIGSAC Conference on Computer & Communications Security (CCS '13). 73--84. https://doi.org/10.1145/2508859.2516693
    [6]
    Jaroslav Fowkes and Charles Sutton. 2016. Parameter-Free Probabilistic API Mining across GitHub. In Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE 2016). 254--265. https://doi.org/10.1145/2950290.2950319
    [7]
    Google. [n.d.]. Android. Retrieved February 5, 2020 from https://www.android.com/
    [8]
    Daqing Hou and Lin Li. 2011. Obstacles in Using Frameworks and APIs: An Exploratory Study of Programmers' Newsgroup Discussions. In 2011 IEEE 19th International Conference on Program Comprehension. 91--100. https://doi.org/10.1109/ICPC.2011.21
    [9]
    Dino Konstantopoulos, John Marien, Mike Pinkerton, and Eric Braude. 2009. Best Principles in the Design of Shared Software. In 2009 33rd Annual IEEE International Computer Software and Applications Conference, Vol. 2. 287--292. https://doi.org/10.1109/COMPSAC.2009.151
    [10]
    Zhenmin Li and Yuanyuan Zhou. 2005. PR-Miner: Automatically Extracting Implicit Programming Rules and Detecting Violations in Large Software Code. SIGSOFT Softw. Eng. Notes 30, 5 (Sept. 2005), 306--315. https://doi.org/10.1145/1095430.1081755
    [11]
    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 (ICPC 2014). 83--94. https://doi.org/10.1145/2597008.2597155
    [12]
    Tyler McDonnell, Baishakhi Ray, and Miryung Kim. 2013. An Empirical Study of API Stability and Adoption in the Android Ecosystem. In 2013 IEEE International Conference on Software Maintenance. 70--79. https://doi.org/10.1109/ICSM.2013.18
    [13]
    Martin Monperrus and Mira Mezini. 2013. Detecting Missing Method Calls as Violations of the Majority Rule. ACM Trans. Softw. Eng. Methodol. 22, 1, Article Article 7 (March 2013), 25 pages. https://doi.org/10.1145/2430536.2430541
    [14]
    Simon Moser and Oscar Nierstrasz. 1996. The effect of object-oriented frameworks on developer productivity. Computer 29, 9 (Sep. 1996), 45--51. https://doi.org/10.1109/2.536783
    [15]
    Tung Thanh Nguyen, Hoan Anh Nguyen, Nam H. Pham, Jafar M. Al-Kofahi, and Tien N. Nguyen. 2009. Graph-Based Mining of Multiple Object Usage Patterns. In Proceedings of the 7th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on The Foundations of Software Engineering (ESEC/FSE '09). 383--392. https://doi.org/10.1145/1595696.1595767
    [16]
    Martin P. Robillard. 2009. What Makes APIs Hard to Learn? Answers from Developers. IEEE Software 26, 6 (Nov 2009), 27--34. https://doi.org/10.1109/MS.2009.193
    [17]
    Martin P. Robillard and Robert DeLine. 2011. A field study of API learning obstacles. Empirical Software Engineering 16, 6 (01 Dec 2011), 703--732. https://doi.org/10.1007/s10664-010-9150-8
    [18]
    Caitlin Sadowski, Kathryn T. Stolee, and Sebastian Elbaum. 2015. How Developers Search for Code: A Case Study. In Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering (ESEC/FSE 2015). 191--201. https://doi.org/10.1145/2786805.2786855
    [19]
    Mohamed Aymen Saied, Omar Benomar, Hani Abdeen, and Houari Sahraoui. 2015. Mining Multi-level API Usage Patterns. In 2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER). 23--32. https://doi.org/10.1109/SANER.2015.7081812
    [20]
    Mohamed Aymen Saied, Ali Ouni, Houari Sahraoui, Raula Gaikovina Kula, Katsuro Inoue, and David Lo. 2018. Improving reusability of software libraries through usage pattern mining. Journal of Systems and Software 145 (2018), 164--179. https://doi.org/10.1016/j.jss.2018.08.032
    [21]
    Ferdian Thung, David Lo, and Julia Lawall. 2013. Automated library recommendation. In 2013 20th Working Conference on Reverse Engineering. 182--191. https://doi.org/10.1109/WCRE.2013.6671293
    [22]
    Miryung Kim Tyler McDonnell, Baishakhi Ray. 2013. An Empirical Study of API Stability and Adoption in the Android Ecosystem. In Proceedings of the 2013 IEEE International Conference on Software Maintenance (ICSM 2013). 70--79. https://doi.org/10.1109/ICSM.2013.18
    [23]
    Medha Umarji, Susan Elliott Sim, and Crista Lopes. 2008. Archetypal Internet-Scale Source Code Searching. In Open Source Development, Communities and Quality. Springer US, Boston, MA, 257--263.
    [24]
    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 2013 10th Working Conference on Mining Software Repositories (MSR). 319--328. https://doi.org/10.1109/MSR.2013.6624045
    [25]
    Wang Wei and Michael W. Godfrey. 2013. Detecting API usage obstacles: A study of iOS and Android developer questions. In 2013 10th Working Conference on Mining Software Repositories (MSR). 61--64. https://doi.org/10.1109/MSR.2013.6624006
    [26]
    Ming Wen, Yepang Liu, Rongxin Wu, Xuan Xie, Shing-Chi Cheung, and Zhendong Su.2019. Exposing Library API Misuses Via Mutation Analysis. In 2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE) (ICSE2019). 866--877. https://doi.org/10.1109/ICSE.2019.00093
    [27]
    Tao Xie and Jian Pei. 2006. MAPO: Mining API Usages from Open Source Repositories. In Proceedings of the 2006 International Workshop on Mining Software Repositories (MSR 2006). 54--57. https://doi.org/10.1145/1137983.1137997
    [28]
    Tianyi Zhang, Ganesha Upadhyaya, Anastasia Reinhardt, Hridesh Rajan, and Miryung Kim. 2018. Are Code Examples on an Online Q&A Forum Reliable? A Study of API Misuse on Stack Overflow. In Proceedings of the 40th International Conference on Software Engineering (ICSE 2018). 886--896. https://doi.org/10.1145/3180155.3180260

    Cited By

    View all
    • (2024)Mapping APIs in Dynamic-typed Programs by Leveraging Transfer LearningACM Transactions on Software Engineering and Methodology10.1145/3641848Online publication date: 22-Jan-2024
    • (2021)ReDroidDet: Android Malware Detection Based on Recurrent Neural NetworkProcedia Computer Science10.1016/j.procs.2021.03.105184(841-846)Online publication date: 2021
    • (2021)Application programming interface recommendation according to the knowledge indexed by app feature mined from app storesJournal of Software: Evolution and Process10.1002/smr.238033:11Online publication date: 1-Nov-2021
    • Show More Cited By

    Index Terms

    1. On the Variations and Evolutions of API Usage Patterns: Case Study on Android Applications

        Recommendations

        Comments

        Information & Contributors

        Information

        Published In

        cover image ACM Conferences
        ICSEW'20: Proceedings of the IEEE/ACM 42nd International Conference on Software Engineering Workshops
        June 2020
        831 pages
        ISBN:9781450379632
        DOI:10.1145/3387940
        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]

        Sponsors

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        Published: 25 September 2020

        Permissions

        Request permissions for this article.

        Check for updates

        Author Tags

        1. API patterns
        2. APIs
        3. Android

        Qualifiers

        • Research-article
        • Research
        • Refereed limited

        Funding Sources

        Conference

        ICSE '20
        Sponsor:
        ICSE '20: 42nd International Conference on Software Engineering
        June 27 - July 19, 2020
        Seoul, Republic of Korea

        Upcoming Conference

        ICSE 2025

        Contributors

        Other Metrics

        Bibliometrics & Citations

        Bibliometrics

        Article Metrics

        • Downloads (Last 12 months)9
        • Downloads (Last 6 weeks)1

        Other Metrics

        Citations

        Cited By

        View all
        • (2024)Mapping APIs in Dynamic-typed Programs by Leveraging Transfer LearningACM Transactions on Software Engineering and Methodology10.1145/3641848Online publication date: 22-Jan-2024
        • (2021)ReDroidDet: Android Malware Detection Based on Recurrent Neural NetworkProcedia Computer Science10.1016/j.procs.2021.03.105184(841-846)Online publication date: 2021
        • (2021)Application programming interface recommendation according to the knowledge indexed by app feature mined from app storesJournal of Software: Evolution and Process10.1002/smr.238033:11Online publication date: 1-Nov-2021
        • (2020)Mining Hidden and Fragmented API Usages in Android ApplicationsApplied Sciences10.3390/app1024904810:24(9048)Online publication date: 17-Dec-2020

        View Options

        Get Access

        Login options

        View options

        PDF

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader

        Media

        Figures

        Other

        Tables

        Share

        Share

        Share this Publication link

        Share on social media