Interaction-Aware Development Environments

Staff - Faculty of Informatics

Date: / -

You are cordially invited to attend the PhD Dissertation Defense of Roberto MINELLI on Monday, November 13th, 2017 at 16h30 in room A32 (Red building)



Nowadays, software development is largely carried out using Integrated Development Environments, or IDEs. An IDE is a collection of tools and facilities to support the most diverse software engineering activities, such as writing code, debugging, and program comprehension. The fact that they are integrated enables developers to find all the tools needed for the development in the same place. Each activity is composed of many basic events, such as clicking on a menu item in the IDE, opening a new user interface to browse the source code of a method, or adding a new statement in the body of a method. While working, developers generate thousands of these interactions, that we call fine-grained IDE interaction data. In essence, this data captures the behavior of developers inside the IDE, but it is largely neglected by modern development environments. We believe that this data is a valuable source of information that can be leveraged to enable retrospective analyses and to offer novel support to developers. 

In this dissertation we propose the concept of "Interaction-Aware Development Environments": IDEs that collect, mine, and leverage the interactions of developers to support and simplify their workflow. We formulate our thesis as follows: Interaction-Aware Development Environments enable novel and in-depth analyses of the behavior of software developers and set the ground to provide developers with effective and actionable support for their activities inside the IDE. For example, by monitoring how developers navigate source code, the IDE could suggest the program entities that are potentially relevant for a particular task.

Our research focuses on three main directions:

  1. Modeling and Persisting Interaction Data. The first step to make IDEs aware of interaction data is to overcome the ephemeral nature of this data. To do so we have to model this new source of data and to persist it, making it available for further use.
  2. Interpreting Interaction Data. Making sense of the thousands interactions generated daily by developers represents one of the biggest challenge of our research. We devised a number of models to reconstruct, for example, high-level programming activities from interaction histories or measure the navigation efficiency of developers.
  3. Supporting Developers with Interaction Data. Novel IDEs can use the potential of interaction data to support software development. For example, they can identify the UI components that are potentially unnecessary for the future and suggest developers to close them, reducing the visual cluttering of the IDE.

Interaction data captures how developers behave inside the IDE more precisely than any other source of information. For this reason, IDEs should harness it to better support the workflow of developers and researchers should target this source of information to thoroughly understand the behavior of software developers inside the IDE.

Dissertation Committee:

  • Prof. Michele Lanza, Università della Svizzera italiana, Switzerland (Research Advisor)
  • Prof. Matthias Hauswirth, Università della Svizzera italiana, Switzerland (Internal Member)
  • Prof. Cesare Pautasso, Università della Svizzera italiana, Switzerland (Internal Member)
  • Prof. Serge Demeyer, University of Antwerp, Belgium (External Member)
  • Prof. Radu Marinescu, University of Timisoara, Romania (External Member)