An Interactive Tutoring System for Training Software Refactoring

Thorsten Händler, Gustaf Neumann, Fiodor Smirnov

Publication: Chapter in book/Conference proceedingContribution to conference proceedings


Although considered useful and important, software refactoring is often neglected in practice because of the perceived risks and difficulties of performing it. A way to address these challenges can be seen in promoting developers’ practical competences. In this paper, we propose an approach for an interactive training environment for addressing practical competences in software refactoring. In particular, we present a tutoring system that provides interactive feedback to the users (e.g., university students or software developers) regarding the software-design quality and the functional correctness of the (modified) source code. After each code modification (refactoring step), the user can review the results of run-time regression tests and compare the actual software design (as-is) with the targeted design (to-be) in order to check quality improvement. For this purpose, structural and behavioral diagrams of the Unified Modeling Language (UML2) representing the as-is software design are automatically reverse-engineered from source code. The to-be design diagrams (also in UML) can be pre-specified by the instructor. We illustrate the usability of the approach for training competences in refactoring via short application scenarios and describe exemplary learning paths. Moreover, we provide a web-based software-technical implementation in Java (called refacTutor) to demonstrate the technical feasibility of the approach. Finally, limitations and further potential of the approach are discussed.
Original languageEnglish
Title of host publicationProc. of the 11th International Conference on Computer Supported Education (CSEDU) - Volume 2
Place of PublicationHeraklion (Crete), Greece
Pages177 - 188
Publication statusPublished - 2019

Austrian Classification of Fields of Science and Technology (ÖFOS)

  • 102022 Software development
  • 102
  • 102015 Information systems

Cite this