Teaching Simulation as a Research Method in Empirical Software Engineering
Breno Bernard Nicolau de França, Dietmar Pfahl, Valdemar Vicente Graciano Neto, Nauman bin Ali
TL;DR
This chapter addresses the challenge of teaching simulation as a research method in empirical software engineering. It defines simulation, reviews its role, and distinguishes process versus product simulation, including digital twins. It presents learning objectives for full courses and for integration into existing curricula, and describes a lifecycle-based framework and practical teaching experiences using DEVS and System Dynamics. The authors provide concrete teaching materials, model examples, and recommended readings, along with lessons learned to guide educators. The work highlights the pedagogical value of simulation for risk-free what-if analysis, knowledge generation, and improved decision-making in SE contexts.
Abstract
The chapter supports educators and postgraduate students in understanding the role of simulation in software engineering research based on the authors' experience. This way, it includes a background positioning simulation-based studies in software engineering research, the proposition of learning objectives for teaching simulation as a research method, and presents our experience when teaching simulation concepts and practice. For educators, it further provides learning objectives when teaching simulation, considering the current state of the art in software engineering research and the necessary guidance and recommended learning activities to achieve these objectives. For students, it drives the learning path for those interested in learning this method but had no opportunity to engage in an entire course on simulation in the context of empirical research.
