A conceptual framework and city metaphor for investigating the interaction of developers with software artifacts
摘要
Developers’ interactions with software artifacts during software development activities (e.g., coding, code review) affect their mental states (e.g., cognitive load), which are reflected in biosignals derived from modalities such as eye tracking, electroencephalography, and galvanic skin response. However, existing research lacks an integrated conceptual framework that systematically models the relationship between biosignals and software artifacts in a way that supports both empirical analysis and interpretable visualization of developers’ cognitive aspects when interacting with these artifacts. In this article, to address this gap, we first introduce such a conceptual framework that models the relationship between developers’ biosignals and software artifacts through a systematic linking process. The framework also includes a methodology to seamlessly query and retrieve data across this link. Second, we present a tool prototype that builds upon the framework. Designed for visualizing and navigating large-scale artifacts, its novelty lies in integrating adapted metaphors to generate software city maps that leverage the link to project biomeasures (from biosignals) onto representations of artifacts. Additionally, the tool demonstrates the framework’s applicability to empirical research by bridging conceptualization with practical analysis. This work has key implications for researchers and practitioners in Software Engineering. For researchers, our conceptual framework provides a foundation for studying developers’ interactions with large-scale software artifacts, enabling the investigation of hypotheses on factors influencing complexity, readability, and cognitive load. It also supports visualizing these interactions by projecting biomeasures onto software artifact properties through intuitive city maps. Practitioners can leverage our framework and visualizations to interpret analysis results, identify areas of high cognitive load, and guide task allocation based on the perceived difficulty associated with different artifacts of a software system (e.g., model elements or parts of the code) as reflected in software cities.