How Do Developers Solve Software-engineering Tasks on Model-based Code Generators? An Empirical Study Design.
Victor Guana, Eleni Stroulia · 2015
Model-based code-generators are complex in nature; they are built using a variety of tools such as language workbenches, and model-to-model and model-to-text transformation languages. Due to the highly heterogeneous technology ecosystem in which code generators are built, understanding and maintaining their architecture pose numerous cognitive challenges to both novice and expert developers. Most of these challenges are associated with tasks that require to trace and pinpoint generation artifacts given a life-cycle requirement. We argue that such tasks can be classified in three general categories: (a) information discovery, (b) information summarization, and (c) information filtering and isolation. Furthermore, we hypothesize that visualizations that enable the interactive exploration of model-to-model and model-to-text transformation compositions can significantly improve developers’ performance when reflecting on a code-generation architecture, and its corresponding execution mechanics. In this paper we describe an empirical study conceived (a) to understand the performance of developers (in terms of time and precision) when asked to discover, filter, and summarize information about a model-based code generator, using classic integrated development environments and editors, and (b) to measure and compare the developers’ effectiveness on the same tasks using state-of-the-art traceability visualizations for model-transformation compositions.