25.3. BuffTrans

25.3.1. Overview

The Buffer Transitions (BuffTrans) sensor data type is designed to represent each occurrence of a developer switching from one file to another while editing.

BuffTrans SDT data contrasts with "basic" editor sensing, which consists of Activity SDT data (see Section 25.2, “Activity”). Activity SDT data is typically abstracted into the "Most Active File" analysis, which aggregates low-level developer behavior into a single file that is intended to represent the focus of developer effort during a five minute interval. BuffTrans SDT data, on the other hand, is intended to capture more low-level information at a smaller grain size (five seconds by default).

Table 25.2, “BuffTrans SDT attributes” documents its attributes.

Table 25.2. BuffTrans SDT attributes

AttributeDescription
tstampThe UTC time at which this data was collected.
toolA string indicating the tool that collected this data, such as "Eclipse".
fromFileThe file associated with the buffer that the developer was just visiting.
toFileThe file associated with the buffer that the developer is now visiting.
modIf true, mod indicates that the fromFile was modified before the transition.

25.3.2. Applications of the BuffTrans SDT

We have created a sensor for Emacs and Eclipse that records buffer transition data.

One possible application of buffer transition data is to investigate "Cognitive Coupling": the hypothess that if a developer is looking at many different files simultaneously (i.e. the files are "coupled" from a behavioral point of view), then this behavior reveals interdependencies that may be useful in assessing defect proneness, expected productivity, and so forth.

[Note]Note

While sensors for buffer transitions have been implemented for Emacs and Eclipse, and extensive data has been collected from a few developers, no research has been done yet to investigate Cognitive Coupling and its predictive power. Furthermore, no research has been done to investigate the relationship of Cognitive Coupling to more "standard" forms of structural coupling, as collected by the DependencyFinder sensor. This is low hanging fruit from a research perspective. :-)