Self-Reported Activities of Android Developers

To gain a deeper empirical understanding of how developers work on Android apps, we investigate self-reported activities of Android developers and to what extent these activities can be classified with machine learning techniques. To this aim, we firstly create a taxonomy of self-reported activities coming from the manual analysis of 5,000 commit messages from 8,280 Android apps. Then, we study the frequency of each category of self-reported activities identified in the taxonomy, and investigate the feasibility of an automated classification approach. Our findings can inform be used by both practitioners and researchers to take informed decisions or support other software engineering activities.

[1]  Ratul Mahajan,et al.  AppInsight: Mobile App Performance Monitoring in the Wild , 2022 .

[2]  R. O’Brien,et al.  A Caution Regarding Rules of Thumb for Variance Inflation Factors , 2007 .

[3]  Barbara J. Grosz,et al.  Natural-Language Processing , 1982, Artificial Intelligence.

[4]  M. Stone Cross‐Validatory Choice and Assessment of Statistical Predictions , 1976 .

[5]  Andrea De Lucia,et al.  Dynamic Selection of Classifiers in Bug Prediction: An Adaptive Method , 2017, IEEE Transactions on Emerging Topics in Computational Intelligence.

[6]  Premkumar T. Devanbu,et al.  A large scale study of programming languages and code quality in github , 2014, SIGSOFT FSE.

[7]  Aniello Cimitile,et al.  Mobile Malware Detection in the Real World , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering Companion (ICSE-C).

[8]  Yuanyuan Zhang,et al.  A Survey of App Store Analysis for Software Engineering , 2017, IEEE Transactions on Software Engineering.

[9]  Alberto Bacchelli,et al.  On the reaction to deprecation of clients of 4 + 1 popular Java APIs and the JDK , 2018, Empirical Software Engineering.

[10]  Yuanyuan Zhang,et al.  App store mining and analysis: MSR for app stores , 2012, 2012 9th IEEE Working Conference on Mining Software Repositories (MSR).

[11]  Walid Maalej,et al.  Can development work describe itself? , 2010, 2010 7th IEEE Working Conference on Mining Software Repositories (MSR 2010).

[12]  Yoshua Bengio,et al.  Random Search for Hyper-Parameter Optimization , 2012, J. Mach. Learn. Res..

[13]  Ahmed E. Hassan,et al.  The Impact of Classifier Configuration and Classifier Combination on Bug Localization , 2013, IEEE Transactions on Software Engineering.

[14]  William Lidwell,et al.  Universal principles of design : 100 ways to enhance usability,influence perception, increase appeal, make better, designdecisions, and teach through design , 2003 .

[15]  Anthony I. Wasserman,et al.  Software engineering issues for mobile application development , 2010, FoSER '10.

[16]  Jacques Klein,et al.  An Investigation into the Use of Common Libraries in Android Apps , 2015, 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER).

[17]  Nasser M. Nasrabadi,et al.  Pattern Recognition and Machine Learning , 2006, Technometrics.

[18]  Andrea De Lucia,et al.  Cross-project defect prediction models: L'Union fait la force , 2014, 2014 Software Evolution Week - IEEE Conference on Software Maintenance, Reengineering, and Reverse Engineering (CSMR-WCRE).

[19]  David Lo,et al.  How Android App Developers Manage Power Consumption? - An Empirical Study by Mining Power Management Commits , 2016, 2016 IEEE/ACM 13th Working Conference on Mining Software Repositories (MSR).

[20]  Michael W. Godfrey,et al.  Automatic classication of large changes into maintenance categories , 2009, 2009 IEEE 17th International Conference on Program Comprehension.

[21]  Tom Mens,et al.  A survey of software refactoring , 2004, IEEE Transactions on Software Engineering.

[22]  Claes Wohlin,et al.  Experimentation in software engineering: an introduction , 2000 .

[23]  Harald C. Gall,et al.  Exploring the integration of user feedback in automated testing of Android applications , 2018, 2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER).

[24]  Ying Fu,et al.  Automated classification of software change messages by semi-supervised Latent Dirichlet Allocation , 2015, Inf. Softw. Technol..

[25]  Jonathan I. Maletic,et al.  What's a Typical Commit? A Characterization of Open Source Software Repositories , 2008, 2008 16th IEEE International Conference on Program Comprehension.

[26]  Gabriele Bavota,et al.  Crowdsourcing user reviews to support the evolution of mobile apps , 2018, J. Syst. Softw..

[27]  Mario Linares Vásquez,et al.  On Automatically Generating Commit Messages via Summarization of Source Code Changes , 2014, 2014 IEEE 14th International Working Conference on Source Code Analysis and Manipulation.

[28]  Manuela Herman,et al.  Rethinking Context Language As An Interactive Phenomenon , 2016 .

[29]  Emad Shihab,et al.  What are mobile developers asking about? A large scale study using stack overflow , 2016, Empirical Software Engineering.

[30]  Filomena Ferrucci,et al.  A Genetic Algorithm to Configure Support Vector Machines for Predicting Fault-Prone Components , 2011, PROFES.

[31]  David Lo,et al.  Identifying Linux bug fixing patches , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[32]  Collin McMillan,et al.  Categorizing software applications for maintenance , 2011, 2011 27th IEEE International Conference on Software Maintenance (ICSM).

[33]  Alberto Bacchelli,et al.  Content classification of development emails , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[34]  Michele Lanza,et al.  On the nature of commits , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering - Workshops.

[35]  Jonathan I. Maletic,et al.  Using stereotypes to help characterize commits , 2011, 2011 27th IEEE International Conference on Software Maintenance (ICSM).

[36]  Geoff Holmes,et al.  Classifier chains for multi-label classification , 2009, Machine Learning.

[37]  Meiyappan Nagappan,et al.  Future Trends in Software Engineering Research for Mobile Apps , 2016, 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER).

[38]  Alberto Bacchelli,et al.  Classifying Code Comments in Java Open-Source Software Systems , 2017, 2017 IEEE/ACM 14th International Conference on Mining Software Repositories (MSR).

[39]  Radford M. Neal Pattern Recognition and Machine Learning , 2007, Technometrics.

[40]  Andy Zaidman,et al.  Using association rules to study the co-evolution of production & test code , 2009, 2009 6th IEEE International Working Conference on Mining Software Repositories.

[41]  SaltonGerard,et al.  Term-weighting approaches in automatic text retrieval , 1988 .

[42]  Janice Singer,et al.  Guide to Advanced Empirical Software Engineering , 2007 .

[43]  Andrea De Lucia,et al.  Software-based energy profiling of Android apps: Simple, efficient and reliable? , 2017, 2017 IEEE 24th International Conference on Software Analysis, Evolution and Reengineering (SANER).

[44]  Andrea De Lucia,et al.  A textual-based technique for Smell Detection , 2016, 2016 IEEE 24th International Conference on Program Comprehension (ICPC).

[45]  Gabriele Bavota,et al.  Listening to the Crowd for the Release Planning of Mobile Apps , 2019, IEEE Transactions on Software Engineering.

[46]  Michael K. Buckland,et al.  Annual Review of Information Science and Technology , 2006, J. Documentation.

[47]  Cor-Paul Bezemer,et al.  Studying the urgent updates of popular games on the Steam platform , 2017, Empirical Software Engineering.

[48]  Walid Maalej,et al.  From work to word: How do software developers describe their work? , 2009, 2009 6th IEEE International Working Conference on Mining Software Repositories.

[49]  Arie van Deursen,et al.  Understanding Developers' Needs on Deprecation as a Language Feature , 2018, 2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE).

[50]  Eirini Kalliamvakou,et al.  An in-depth study of the promises and perils of mining GitHub , 2016, Empirical Software Engineering.

[51]  Grigorios Tsoumakas,et al.  Multi-Label Classification: An Overview , 2007, Int. J. Data Warehous. Min..

[52]  Ahmed E. Hassan,et al.  A Large-Scale Empirical Study on Software Reuse in Mobile Apps , 2014, IEEE Software.

[53]  Xindong Wu,et al.  Learning Label Specific Features for Multi-label Classification , 2015, 2015 IEEE International Conference on Data Mining.

[54]  Harald C. Gall,et al.  Recommending and Localizing Change Requests for Mobile Apps Based on User Reviews , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE).

[55]  Gerard Salton,et al.  Term-Weighting Approaches in Automatic Text Retrieval , 1988, Inf. Process. Manag..

[56]  Juan Julián Merelo Guervós,et al.  Beyond source code: The importance of other artifacts in software development (a case study) , 2006, J. Syst. Softw..

[57]  Ahmed E. Hassan,et al.  Fresh apps: an empirical study of frequently-updated mobile apps in the Google play store , 2015, Empirical Software Engineering.

[58]  Rainer Koschke,et al.  On the Comprehension of Program Comprehension , 2014, TSEM.

[59]  Philippe Kruchten,et al.  Real Challenges in Mobile App Development , 2013, 2013 ACM / IEEE International Symposium on Empirical Software Engineering and Measurement.

[60]  Yingjun Lyu,et al.  An Empirical Study of Local Database Usage in Android Applications , 2017, 2017 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[61]  Felipe Ebert,et al.  Mining Energy-Aware Commits , 2015, 2015 IEEE/ACM 12th Working Conference on Mining Software Repositories.

[62]  Liudmila Ulanova,et al.  An Empirical Analysis of Bug Reports and Bug Fixing in Open Source Android Apps , 2013, 2013 17th European Conference on Software Maintenance and Reengineering.

[63]  Alex Pentland,et al.  Human computing and machine understanding of human behavior: a survey , 2006, ICMI '06.

[64]  Massimiliano Di Penta,et al.  A Quantitative and Qualitative Investigation of Performance-Related Commits in Android Apps , 2016, 2016 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[65]  Fabio Palomba,et al.  A Graph-Based Dataset of Commit History of Real-World Android apps , 2018, 2018 IEEE/ACM 15th International Conference on Mining Software Repositories (MSR).