🤖 AI Summary
This paper addresses persistent software engineering (SE) challenges in Jupyter Notebooks—including low code reusability, poor readability, unreliable execution environments, and weak long-term accessibility—through a systematic literature review (SLR) of 146 studies published through December 2024. The analysis reveals that human-computer interaction (HCI) researchers dominate publication, with only 64 studies providing reusable links—and most notebooks absent from permanent repositories. Core SE concerns such as testing, refactoring, and documentation lack notebook-specific solutions. This work constitutes the first comprehensive identification of notebook-native SE challenges and proposes three novel research directions: (1) automated cell-level unit testing, (2) cross-notebook refactoring and clone detection, and (3) cell-granularity collaborative documentation generation. The findings establish an empirical foundation and technical roadmap for developing notebook-native SE methodologies.
📝 Abstract
Context: Jupyter Notebook has emerged as a versatile tool that transforms how researchers, developers, and data scientists conduct and communicate their work. As the adoption of Jupyter notebooks continues to rise, so does the interest from the software engineering research community in improving the software engineering practices for Jupyter notebooks. Objective: The purpose of this study is to analyze trends, gaps, and methodologies used in software engineering research on Jupyter notebooks. Method: We selected 146 relevant publications from the DBLP Computer Science Bibliography up to the end of 2024, following established systematic literature review guidelines. We explored publication trends, categorized them based on software engineering topics, and reported findings based on those topics. Results: The most popular venues for publishing software engineering research on Jupyter notebooks are related to human-computer interaction instead of traditional software engineering venues. Researchers have addressed a wide range of software engineering topics on notebooks, such as code reuse, readability, and execution environment. Although reusability is one of the research topics for Jupyter notebooks, only 64 of the 146 studies can be reused based on their provided URLs. Additionally, most replication packages are not hosted on permanent repositories for long-term availability and adherence to open science principles. Conclusion: Solutions specific to notebooks for software engineering issues, including testing, refactoring, and documentation, are underexplored. Future research opportunities exist in automatic testing frameworks, refactoring clones between notebooks, and generating group documentation for coherent code cells.