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
| Attribute | Description |
|---|---|
| tstamp | The UTC time at which this data was collected. |
| tool | A string indicating the tool that collected this data, such as "Eclipse". |
| fromFile | The file associated with the buffer that the developer was just visiting. |
| toFile | The file associated with the buffer that the developer is now visiting. |
| mod | If true, mod indicates that the fromFile was modified before the transition. |
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 |
|---|---|
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. :-) | |