AbstractsComputer Science

Towards multi-dimensional integrated development environments for improved productivity

by Yun Young Lee




Institution: University of Illinois – Urbana-Champaign
Department: 0112
Degree: PhD
Year: 2015
Keywords: IDE
Record ID: 2060490
Full text PDF: http://hdl.handle.net/2142/72932


Abstract

Integrated development environments (IDEs) are software applications designed to facilitate writing, building, debugging, and deploying software. IDEs come in many different forms, but they are an integral part of software engineering for many developers; studies reported that 97\% of developers use IDEs for they daily development tasks, and 91\% of them prefer the modern GUI-based IDEs with a plug-in architecture such as Eclipse and NetBeans. The plug-in architecture offers extensibility for IDEs to support multiple programming languages and allows tool providers and developers to write custom tools as separate plug-ins. Although plug-ins provide an effective means of extending and customizing IDEs, we believe the very plug-in nature can lead to an IDEs overloaded with plug-ins. A quick search on the Eclipse Marketplace websites lists about 2,000 plug-ins available. In addition, most of these plug-ins provide a distinct functionality that operates separately from other plug-ins or even from the main programming activities, and they also make heavy use of graphical user interfaces because the IDEs themselves are GUI-based. This means that developers not only still have to switch context within an IDE when using these plug-ins, but also have to learn how to use these plug-ins in order to accomplish their tasks. We conjecture that these issues result in counterproductive tools. We believe, however, that it is possible to build tools that are more intuitive and seamlessly integrated by leveraging developers' inherent understandings of their code and learned skills in software development processes. This dissertation presents our research effort in creating a new class of plug-ins that addresses these shortcomings without hampering developers' productivity. Our approach achieves this goal by extending an IDE with new dimensions that allow developers to accomplish their tasks with familiar actions taken in different settings. More specifically, we present two Eclipse plug-ins, called Drag-and-Drop Refactoring and Tempura, that are designed to address the main problems of plug-in overload for different features; Drag-and-Drop Refactoring adds a new tactile dimension to an IDE's refactoring tools, and allows developers to bypass complex GUI-based invocation and configuration steps and perform refactorings by moving program elements directly, and Tempura adds a new temporal dimension to code completion and navigation functions in an IDE to allow developers to search for deleted classes, methods, and fields, therefore more intimately integrating version control support into the IDE platform. Our evaluations demonstrate that, compared to widely used substitutes, our tools allow developers to achieve their goals more efficiently and accurately.