: Cyrus Omar, YeoungSeok Yoon, Thomas D. LaToza, Brad A. MyersVenue
: 34th International Conference on Software EngineeringDate
: 2012Type of Experiement
: Controlled ExperimentSample Size
: 473Class/Experience Level
: Graduate Student, OtherParticipant Selection
: Programming-related discussion forum hosted on reddit.comData Collection Method
This paper discusses an architecture that allows library developers to introduce interactive and highly-specialized code generation interfaces directly into an IDE. Many software developers today are heavily reliant on code completion support found in many IDEs. This support is generally offered in the form of a floating menu containing contextually-relevant variables, fields, methods, types and other code snippets, allowing developers to avoid many common spelling and logic errors, eliminate unnecessary keystrokes and explore unfamiliar APIs.
The study was performed using a survey. Participants were asked about their familiarity with specific object-oriented programming languages and IDEs. They were also asked about what types of active code completion tools they would use and to give simple ratings for different mockups.
The usefulness of active code completion as a generalization of conventional code completion was validated by a number of use cases and developing gernal design constraints for such tools. These findings were used to develop Graphite, an active code completion architecture that makes several novel design decisions which ease development, deployment and discovery of user-defined active code completion tools.