An Interactive Tutoring System for Training Software Refactoring

Thorsten Haendler, Gustaf Neumann, Fiodor Smirnov

Abstract

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.

Download


Paper Citation


in Harvard Style

Haendler T., Neumann G. and Smirnov F. (2019). An Interactive Tutoring System for Training Software Refactoring.In Proceedings of the 11th International Conference on Computer Supported Education - Volume 2: CSEDU, ISBN 978-989-758-367-4, pages 177-188. DOI: 10.5220/0007801101770188


in Bibtex Style

@conference{csedu19,
author={Thorsten Haendler and Gustaf Neumann and Fiodor Smirnov},
title={An Interactive Tutoring System for Training Software Refactoring},
booktitle={Proceedings of the 11th International Conference on Computer Supported Education - Volume 2: CSEDU,},
year={2019},
pages={177-188},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0007801101770188},
isbn={978-989-758-367-4},
}


in EndNote Style

TY - CONF

JO - Proceedings of the 11th International Conference on Computer Supported Education - Volume 2: CSEDU,
TI - An Interactive Tutoring System for Training Software Refactoring
SN - 978-989-758-367-4
AU - Haendler T.
AU - Neumann G.
AU - Smirnov F.
PY - 2019
SP - 177
EP - 188
DO - 10.5220/0007801101770188