CodeArena: Inspecting and Improving Code Quality Metrics in Java Using Minecraft
There are several factors that increase or decrease the amount of technical debt present in a codebase, such as code duplication or high code complexity, which decrease the maintainability of code. There are different tools available that help to deal with those factors. These tools vary from pure visualisation to tools that help with the actual refactoring of code. However, most of these tools do not assist the developer in understanding the causes of factors that influence maintainability. The field of software maintenance and code quality is therefore difficult to make tangible for programmers.
To make programmers aware of harmful coding practises and how they can improve their code, we propose CodeArena. CodeArena is an extension to the popular 3D sandbox game called Minecraft. It allows developers to experience incremental changes in the quality of their code and gain progressive insight in the causes of hard to maintain code. This tool translates features of a codebase that are considered harmful to monsters in Minecraft, which can then be “fought” to improve the codebase. Fighting the monsters will trace the user back to the source code. If the developer succeeds in solving the issue, the monster will die and the developer will be rewarded in-game. This way, the developer can gradually improve the quality of the code, while learning about code quality in an engaging way.
The developer can advance between different levels and gain experience points for each metric that has been improved. Each level represents a component in the codebase. The metrics to be improved consist of code duplication, unit complexity, unit size and interface size. Points are also awarded for a decrease in code volume. Points will be subtracted if the code quality is decreased by a certain change.
We believe that this tool is most suitable for novice programmers and educational purposes. It provides a way to get familiar to the field of technical debt and related concepts, and increases understanding by creating a metaphor to a familiar concept.
Mon 27 May
|10:00 - 10:06|
|10:06 - 10:12|
|10:12 - 10:18|
|Pre-print Media Attached File Attached|
|10:18 - 10:24|
|10:24 - 10:30|
Paul AndersonGrammaTech, Inc