Using Docker Containers to Improve Reproducibility in PL/SE Research
The ability to replicate and reproduce scientific results has become an increasingly important topic for many academic disciplines. In computer science and, more specifically, programming languages (PL) and software engineering (SE) research, contributions of scientific work rely on developed algorithms, tools and prototypes, quantitative evaluations, and other computational analyses. Published code and data come with many undocumented assumptions, dependencies, and configurations that are internal knowledge and make reproducibility hard to achieve. This tutorial presents how Docker containers can overcome these issues and aid the reproducibility of research artifacts in PL and SE and discusses their applications in the field. It discusses challenges of reproducibility and provides a walk-through of how to make a use case research artifact available in a Docker container. The tutorial concludes with challenges of reproducibility in general and limitations of container technology.
PhD student at the University of Zurich, Research intern at IBM T.J. Watson Research Center interested in how we can make the software development process more data-driven by giving structure to runtime data and providing guidance to developers on how to use it