Enriched Event Stream

The events that we have recorded with our FeedBaG++ tool are publicly available. CARET is the tooling we built around it that can be used to read and process the dataset. Our data contains a very fine-grained event history of process events/developer interactions, that are enriched with extensive context information, e.g., source-code events contain a snapshot of the editor in the SST format.

Our conceptual design can be divided into two layers that are illustrated in the following Figure:

The first layer represents the process in a hierarchy of IDEEvents that denote the different kinds of interactions. Each event has a second layer, in which additional context information about a captured interaction is stored. The basic information (e.g., timing) that is universally used is stored as generic context information in the base class. In addition, each derived event class can capture specialized context (e.g., test results or code snapshots). A third layer that is not depicted is a naming scheme for both IDE components (e.g., identifiers of windows or file names) and code elements (e.g., fully-qualified references to types or methods) that allows to unambiguously refer to locations, targets, or code elements.