A Framework for the Assessment and Training of Software Refactoring Competences

Thorsten Haendler, Gustaf Neumann


Long-living software systems are becoming increasingly complex and difficult to maintain. Software refactoring is considered important to achieve maintainability and extensibility of a software system over time. In practice, it is still often neglected, partly because of costs, the perceived risks of collateral damage and difficulties of individuals working on certain components of complex software. It is therefore important for software projects that software developers have the appropriate skills and competences to efficiently perform software refactoring. However, so far there is no systematization of competences in software refactoring to guide in the assessment or training of competences, e.g., for planning or evaluating training activities and paths. In this paper, we address this need by presenting a competence framework for software refactoring by applying Bloom’s revised taxonomy for educational objectives. In particular, we specify competence levels by combining knowledge and cognitive-process dimensions. Via a case study with two existing training environments (i.e. a tutoring system and a serious game), we demonstrate by example that the framework can support (1) in analyzing the competence levels addressed by the training environments and (2) in reflecting training paths for software refactoring. Finally, we discuss the limitations and the further potential of the framework.


Paper Citation