Table of Contents
Fetching ...

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.

Teaching Simulation as a Research Method in Empirical Software Engineering

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.
Paper Structure (16 sections, 5 figures, 1 table)

This paper contains 16 sections, 5 figures, 1 table.

Figures (5)

  • Figure 1: Role of simulation when studying a system (inspired by Law law_simulation_2013).
  • Figure 2: Simulation-Based Studies Life Cycle (adapted from de2020role).
  • Figure 3: A Flood Monitoring System as part of a Smart City System WDES2016.
  • Figure 4: An System Dynamics Model of the Brook's Law (based on chernoguz2011system).
  • Figure 5: Output of the production rate variable for eight trials.