RefactoringGames

Games for Training Software Refactoring

Over time software systems can become increasingly complex due to ongoing changes and extensions, which often makes them difficult to maintain. In particular, issues (such as bad smells) in source code or software design and architecture can negatively impact a system’s maintainability and extensibility, which can lead to a massive cost increase of software projects (by accumulating a system’s technical debt). According to several studies, software maintenance and evolution often account for 80% or more than 90% of total software-project costs. A way commonly considered useful for repaying technical debt is software refactoring. It aims to improve the internal software quality by restructuring the system's source code while preserving the observable software behavior. However, due to several barriers such as the perceived difficulties and risks, software refactoring is often neglected in practice.

This website presents training environments and other content for refactoring. These (game-based) tools and techniques aim at assisting developers in the refactoring process and in acquiring refactoring-related skills. The content provided here includes results from academic research, mostly performed in the framework of a PhD project at the Institute for Information Systems at WU Vienna, and is subject to ongoing improvement and extension.

In the following, the designed and developed training environments, analysis tools, models and frameworks, as well as related scientific publications are presented.

Tools and Frameworks

Copyright Terms: This material is presented to ensure timely dissemination of scholarly and technical work. Copyright and all rights therein are retained by authors or by other copyright holders. All persons copying this information are expected to adhere to the terms and constraints invoked by each author's copyright. These works may not be reposted without the explicit permission of the copyright holder.

  • Serious Game
    A serious game addressing strategic aspects of software refactoring built on tools for technical-debt analysis and regression testing
  • RefacTutor
    A browser-based tutoring system for software refactoring (Java) based on interactive code visualization in UML
  • Card Game
    Refactory, a non-digital card game for learning basic concepts of software refactoring
  • KaleidoScope
    A developer tool for test-driven and scenario-based software design analysis. KaleidoScope provides the automatic interactive derivation of tailorable UML diagrams and call matrices from runtime tests (currently only available for NX programming language).
  • Refactoring-Game Ontology
    An ontology-based framework for analyzing and designing games for software refactoring
  • Process Model for Refactoring
    A procedural model for decision-making in software refactoring and technical debt management
  • SE-Games: Scientific Workshop
    1st International Workshop on Games for Software Engineering Education and Training (SE-Games 2020) colocated with CSEE&T 2020

Related Publications

Copyright Terms: This material is presented to ensure timely dissemination of scholarly and technical work. Copyright and all rights therein are retained by authors or by other copyright holders. All persons copying this information are expected to adhere to the terms and constraints invoked by each author's copyright. These works may not be reposted without the explicit permission of the copyright holder.

Contact

For comments, feedback, or questions, please contact:

Disclaimer

The content of this website has been compiled with great care. However, we cannot guarantee the accuracy, completeness, or validity of the provided information. Therefore, we cannot assume any liability for it. Our website contains links to external websites which have been carefully chosen. However, as the content of these websites is not under our control, we cannot assume any liability for it. At the point in time when the links were placed, no infringements of the law were recognizable to us. As soon as an infringement of the law becomes known to us, we will immediately remove the corresponding link.