Facilitating Information Management in Integrated Development Environments through Visual Interface Enhancements

In the past decades, integrated development environments (IDEs) have been largely advanced to facilitate software engineering tasks and improve developer productivity. Yet, with growing information needs driven by increasing complexity in developing modern software with demands for high quality and reliability, developers often need to switch among multiple user interfaces, even across different applications, in their development process, which breaks their mental workflow thus tends to adversely affect their work efficiency and productivity. This paper discusses challenges faced by the current IDE design mainly due to working context transitions imposed on developers during their search for multiple information sources for their development needs. It remarks the primary blockades behind and initially explores some high-level design considerations for overcoming such challenges in the next-generation IDEs. Specifically, a few design enhancements on top of modern IDEs are proposed, attempting to reduce the overheads of frequent context switching commonly seen in the multitasking practice of developers.

[1]  Thomas D. LaToza,et al.  Maintaining mental models: a study of developer work habits , 2006, ICSE.

[2]  Jose Munoz,et al.  Multiple representation for understanding data structures , 1997, Comput. Educ..

[3]  Andreas Zeller The Future of Programming Environments: Integration, Synergy, and Assistance , 2007, Future of Software Engineering (FOSE '07).

[4]  Mary Czerwinski,et al.  Understanding the verbal language and structure of end-user descriptions of data visualizations , 2012, CHI.

[5]  Marian Petre,et al.  Usability Analysis of Visual Programming Environments: A 'Cognitive Dimensions' Framework , 1996, J. Vis. Lang. Comput..

[6]  Amy J. Ko,et al.  Eliciting design requirements for maintenance-oriented IDEs: a detailed study of corrective and perfective maintenance tasks , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[7]  David H. Laidlaw,et al.  Composing DTI Visualizations with End-user Programming , 2013, ArXiv.

[8]  Raúl A. Santelices,et al.  Abstracting Program Dependencies Using the Method Dependence Graph , 2015, 2015 IEEE International Conference on Software Quality, Reliability and Security.

[9]  Charles N. Fischer,et al.  Interactive, scalable, declarative program analysis: from prototype to implementation , 2007, PPDP '07.

[10]  Mary Czerwinski,et al.  A diary study of task switching and interruptions , 2004, CHI.

[11]  Scott P. Robertson,et al.  Proceedings of the SIGCHI Conference on Human Factors in Computing Systems , 1991 .

[12]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1987, TOPL.

[13]  Thomas D. LaToza,et al.  Active code completion , 2011, 2012 34th International Conference on Software Engineering (ICSE).

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

[15]  Laurie Hendren,et al.  Soot: a Java bytecode optimization framework , 2010, CASCON.

[16]  Stanley M. Sutton,et al.  Accelerating the creation of customized, language-Specific IDEs in Eclipse , 2009, OOPSLA.

[17]  Thomas D. LaToza,et al.  Developers ask reachability questions , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[18]  Lei Huang,et al.  Dragon: an Open64-based interactive program analysis tool for large applications , 2003, Proceedings of the Fourth International Conference on Parallel and Distributed Computing, Applications and Technologies.

[19]  Thomas D. LaToza,et al.  Hard-to-answer questions about code , 2010, PLATEAU '10.

[20]  Rachel K. E. Bellamy,et al.  How Programmers Debug, Revisited: An Information Foraging Theory Perspective , 2013, IEEE Transactions on Software Engineering.