Improving Integrated Development Environment Commands Knowledge With Recommender Systems

Development tools have an impact on software engineers' productivity and quality of software construction. We believe that it is crucial to teach future software engineers how to exploit integrated development environment functionality, if we want to encourage the effective application of software development principles and practices. Our research shows that recommender systems can be deployed to improve integrated development environment knowledge of computer science students by automatically suggesting new and useful commands, such as buttons and shortcuts that execute different functions. While previous work focused on optimizing the algorithmic predictive capability of a recommender to identify the commands that the users will eventually use, we have addressed a set of research questions related to the overall acceptance of a complete recommender system in a real-life setting. The evaluation results show that a command recommender system can be well accepted by computer science students. In particular, when students are supported by such a system, they use a considerably larger set of commands available in their development environment. Moreover, the results show that the highest acceptance rate and the usefulness score were achieved by a non-personalized, popularity-based algorithm, while the most novel commands were suggested by a context-aware algorithm.

[1]  Jennifer Anderson-Meger Why Do I Need Research and Theory?: A Guide for Social Workers , 2016 .

[2]  Walt Scacchi Understanding Software Productivity: towards a Knowledge-Based Approach , 1991, Int. J. Softw. Eng. Knowl. Eng..

[3]  Ashfaque Ahmed Software Project Management: A Process-Driven Approach , 2011 .

[4]  Tural Gurbanov,et al.  Context-aware integrated development environment command recommender systems , 2017, 2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE).

[5]  Gail C. Murphy,et al.  Improving program navigation with an active help system , 2010, CASCON.

[6]  Mik Kersten,et al.  Using task context to improve programmer productivity , 2006, SIGSOFT '06/FSE-14.

[7]  Francesco Ricci,et al.  GUI Design for IDE Command Recommendations , 2017, IUI.

[8]  Martin P. Robillard,et al.  An Introduction to Recommendation Systems in Software Engineering , 2014, Recommendation Systems in Software Engineering.

[9]  Paul Resnick,et al.  Recommender systems , 1997, CACM.

[10]  Bruce McMillin,et al.  Software engineering: What is it? , 2018, 2018 IEEE Aerospace Conference.

[11]  Dustin Campbell,et al.  Designing refactoring tools for developers , 2008, WRT '08.

[12]  Tural Gurbanov,et al.  A graphical user interface for presenting integrated development environment command recommendations: Design, evaluation, and implementation , 2017, Inf. Softw. Technol..

[13]  Watts S. Humphrey,et al.  A discipline for software engineering , 2012, Series in software engineering.

[14]  Emerson R. Murphy-Hill,et al.  How Do Users Discover New Tools in Software Development and Beyond? , 2015, Computer Supported Cooperative Work (CSCW).

[15]  Francesco Ricci,et al.  Recommender Systems , 2007, 2007 40th Annual Hawaii International Conference on System Sciences (HICSS'07).

[16]  Sven Apel,et al.  Views on Internal and External Validity in Empirical Software Engineering , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[17]  Gerhard Fischer,et al.  User Modeling in Human–Computer Interaction , 2001, User Modeling and User-Adapted Interaction.

[18]  Sean M. McNee,et al.  Being accurate is not enough: how accuracy metrics have hurt recommender systems , 2006, CHI Extended Abstracts.

[19]  Emerson R. Murphy-Hill Continuous social screencasting to facilitate software tool discovery , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[20]  Emerson Murphy-Hill,et al.  Improving software developers' fluency by recommending development environment commands , 2012, SIGSOFT FSE.

[21]  Tovi Grossman,et al.  A survey of software learnability: metrics, methodologies and guidelines , 2009, CHI.

[22]  Tovi Grossman,et al.  CommunityCommands: command recommendations for software applications , 2009, UIST '09.

[23]  Alain Abran,et al.  The Guide to the Software Engineering Body of Knowledge , 1999, IEEE Softw..

[24]  Andrea Janes,et al.  What recommendation systems for software engineering recommend: A systematic literature review , 2016, J. Syst. Softw..

[25]  Francesco Ricci,et al.  A context model for IDE-based recommendation systems , 2017, J. Syst. Softw..

[26]  Lior Rokach,et al.  Recommender Systems: Introduction and Challenges , 2015, Recommender Systems Handbook.

[27]  Richard E. Fairley,et al.  Guide to the Software Engineering Body of Knowledge (SWEBOK(R)): Version 3.0 , 2014 .

[28]  Arjan Durresi,et al.  A survey: Control plane scalability issues and approaches in Software-Defined Networking (SDN) , 2017, Comput. Networks.

[29]  Tovi Grossman,et al.  Design and evaluation of a command recommendation system for software applications , 2011, TCHI.

[30]  Gail C. Murphy,et al.  What to Learn Next: Recommending Commands in a Feature-Rich Environment , 2015, 2015 IEEE 14th International Conference on Machine Learning and Applications (ICMLA).

[31]  Bart P. Knijnenburg,et al.  Explaining the user experience of recommender systems , 2012, User Modeling and User-Adapted Interaction.