Integrated Development Environments (IDEs) provide developers with tools and facilities to support development activities. Developers use IDEs to read, understand, and write source code. To read and comprehend code, they intensively interact with the IDE and generate a large amount of events that we call IDE interaction data. Examples include opening a code browser on a method, inspecting an object at run-time, editing a line of a method, popping up a refactoring menu, etc.
Current IDEs neglect this information, but researchers have pointed up its importance, for example to evolve the development environment according to user needs [ Murpy, 2006] or to support different software engineering activities [ Frey, 2011].
We envision self-adaptive IDEs that collect, process, and leverage the interactions of developers to better support their workflow.