RefacTutor: An Interactive Tutoring System for Software Refactoring

Thorsten Händler, Gustaf Neumann, Fiodor Smirnov

Publikation: Beitrag in Buch/KonferenzbandBeitrag in Sammelwerk


While software refactoring is considered important to manage software complexity, it is often perceived as difficult and risky by software developers and thus neglected in practice. In this article, we present RefacTutor, an interactive tutoring system for promoting software developers’ practical competences in software refactoring. The tutoring system provides immediate feedback to the users regarding the quality of the software design and the functional correctness of the (modified) source code. In particular, 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 UML design diagrams can be pre-specified by the instructor. To demonstrate the technical feasibility of the approach, we provide a browser-based software prototype in Java accompanied by a collection of exercise examples. Moreover, we specify a viewpoint model for software refactoring, allocate exercises to competence levels and describe an exemplary path for teaching and training.
Titel des SammelwerksComputer Supported Education, Revised Selected Papers of CSEDU 2019. Communications in Computer and Information Science (CCIS)
Herausgeber*innen Lane H.C., Zvacek S., Uhomoibhi J.
Seiten236 - 260
PublikationsstatusVeröffentlicht - 2020

Österreichische Systematik der Wissenschaftszweige (ÖFOS)

  • 102022 Softwareentwicklung
  • 102
  • 102015 Informationssysteme
  • 102013 Human-Computer Interaction
  • 502050 Wirtschaftsinformatik