Improving Readability of Scratch Programs with Search-based Refactoring
Autor: | Simon Labrenz, Nina Körber, Gordon Fraser, Stephan Lukasczyk, Eva Gründinger, Sebastian Schweikl, Felix Adler, Jonas Lerchenberger |
---|---|
Jazyk: | angličtina |
Rok vydání: | 2021 |
Předmět: |
FOS: Computer and information sciences
68N99 Programming language Computer science D.2.5 computer.software_genre Readability Software quality Software Engineering (cs.SE) Computer Science - Software Engineering Code refactoring Block (programming) Scratch Scripting language Code (cryptography) Rewriting computer computer.programming_language |
Zdroj: | SCAM |
Popis: | Block-based programming languages like Scratch have become increasingly popular as introductory languages for novices. These languages are intended to be used with a "tinkering" approach which allows learners and teachers to quickly assemble working programs and games, but this often leads to low code quality. Such code can be hard to comprehend, changing it is error-prone, and learners may struggle and lose interest. The general solution to improve code quality is to refactor the code. However, Scratch lacks many of the common abstraction mechanisms used when refactoring programs written in higher programming languages. In order to improve Scratch code, we therefore propose a set of atomic code transformations to optimise readability by (1) rewriting control structures and (2) simplifying scripts using the inherently concurrent nature of Scratch programs. By automating these transformations it is possible to explore the space of possible variations of Scratch programs. In this paper, we describe a multi-objective search-based approach that determines sequences of code transformations which improve the readability of a given Scratch program and therefore form refactorings. Evaluation on a random sample of 1000 Scratch programs demonstrates that the generated refactorings reduce complexity and entropy in 70.4% of the cases, and 354 projects are improved in at least one metric without making any other metric worse. The refactored programs can help both novices and their teachers to improve their code. To be published in the Proceedings of the 21st IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM'21). This version includes an extended appendix with transformation examples |
Databáze: | OpenAIRE |
Externí odkaz: |