Automatically identifying valid API versions for software development tutorials on the Web

Online tutorials are a valuable source of community‐created information used by numerous developers to learn new APIs and techniques. Once written, tutorials are rarely actively curated and can become dated over time. Tutorials often reference APIs that change rapidly, and deprecated classes, methods, and fields can render tutorials inapplicable to newer releases of the API. Newer tutorials may not be compatible with older APIs that are still in use.

[1]  Jing Zhou,et al.  API deprecation: a retrospective analysis and detection method for code examples on the web , 2016, SIGSOFT FSE.

[2]  Martin P. Robillard,et al.  Discovering essential code elements in informal documentation , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[3]  Daqing Hou,et al.  Exploring the Intent behind API Evolution: A Case Study , 2011, 2011 18th Working Conference on Reverse Engineering.

[4]  Zhenchang Xing,et al.  APIReal: an API recognition and linking approach for online developer forums , 2018, Empirical Software Engineering.

[5]  Jing Li,et al.  Learning to Extract API Mentions from Informal Natural Language Discussions , 2016, 2016 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[6]  Marco Tulio Valente,et al.  APIDiff: Detecting API breaking changes , 2018, 2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER).

[7]  Alberto Bacchelli,et al.  On the Reaction to Deprecation of 25, 357 Clients of 4+1 Popular Java APIs , 2016, ICSME.

[8]  Nicholas A. Kraft,et al.  What information about code snippets is available in different software-related documents? An exploratory study , 2017, 2017 IEEE 24th International Conference on Software Analysis, Evolution and Reengineering (SANER).

[9]  Janice Singer,et al.  An examination of software engineering work practices , 2010, CASCON.

[10]  Zhenchang Xing,et al.  Tracking and Analyzing Cross-Cutting Activities in Developers' Daily Work (N) , 2015, 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[11]  Wenyu Liu,et al.  Multiple Instance Detection Network with Online Instance Classifier Refinement , 2017, 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR).

[12]  Martin P. Robillard,et al.  Discovering Information Explaining API Types Using Text Classification , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[13]  Sooyong Park,et al.  API Document Quality for Resolving Deprecated APIs , 2014, 2014 21st Asia-Pacific Software Engineering Conference.

[14]  Marco Tulio Valente,et al.  How do developers react to API evolution? The Pharo ecosystem case , 2015, 2015 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[15]  Yongji Wang,et al.  MAD-API: Detection, Correction and Explanation of API Misuses in Distributed Android Applications , 2018, AIMS.

[16]  Zhenchang Xing,et al.  What do developers search for on the web? , 2017, Empirical Software Engineering.

[17]  Martin P. Robillard,et al.  Recovering traceability links between an API and its learning resources , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[18]  Andy Zaidman,et al.  Web API growing pains: Stories from client developers and their code , 2014, 2014 Software Evolution Week - IEEE Conference on Software Maintenance, Reengineering, and Reverse Engineering (CSMR-WCRE).

[19]  Chanchal Kumar Roy,et al.  RACK: Automatic API Recommendation Using Crowdsourced Knowledge , 2016, 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER).

[20]  Xin Chen,et al.  Recommending APIs for API Related Questions in Stack Overflow , 2018, IEEE Access.

[21]  Martin P. Robillard,et al.  Resolving API Mentions in Informal Documents , 2017, ArXiv.

[22]  David Lo,et al.  A More Accurate Model for Finding Tutorial Segments Explaining APIs , 2016, 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER).

[23]  Frank Maurer,et al.  What makes a good code example?: A study of programming Q&A in StackOverflow , 2012, 2012 28th IEEE International Conference on Software Maintenance (ICSM).

[24]  David Kavaler,et al.  Determinants of quality, latency, and amount of Stack Overflow answers about recent Android APIs , 2018, PloS one.

[25]  Rebecca Tiarks,et al.  How does a typical tutorial for mobile development look like? , 2014, MSR 2014.

[26]  Miryung Kim,et al.  An Empirical Study of API Stability and Adoption in the Android Ecosystem , 2013, 2013 IEEE International Conference on Software Maintenance.

[27]  Tao Zhang,et al.  An Unsupervised Approach for Discovering Relevant Tutorial Fragments for APIs , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE).

[28]  Robert DeLine,et al.  Information Needs in Collocated Software Development Teams , 2007, 29th International Conference on Software Engineering (ICSE'07).

[29]  Thomas Hofmann,et al.  Multiple instance learning with generalized support vector machines , 2002, AAAI/IAAI.

[30]  Gabriele Bavota,et al.  Too Long; Didn't Watch! Extracting Relevant Fragments from Software Development Video Tutorials , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[31]  Shaohua Wang,et al.  What Do Client Developers Concern When Using Web APIs? An Empirical Study on Developer Forums and Stack Overflow , 2016, 2016 IEEE International Conference on Web Services (ICWS).

[32]  Gabriele Bavota,et al.  How do API changes trigger stack overflow discussions? a study on the Android SDK , 2014, ICPC 2014.

[33]  Philip J. Guo,et al.  Two studies of opportunistic programming: interleaving web foraging, learning, and writing code , 2009, CHI.