A Framework for the Assessment and Training of Software Refactoring Competences

  title={A Framework for the Assessment and Training of Software Refactoring Competences},
  author={Thorsten Haendler and 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… 

Figures, Tables, and Topics from this paper

A Card Game for Learning Software-Refactoring Principles
REFACTORY is presented, a nondigital multi-player card game for learning principles of software refactoring without the development-related complexities and experiences and lessons learned from a first game-play study are presented.


An Interactive Tutoring System for Training Software Refactoring
A tutoring system that provides interactive feedback to the users regarding the software-design quality and the functional correctness of the (modified) source code and a web-based software-technical implementation in Java is provided to demonstrate the technical feasibility of the approach.
Design of e-activities for the learning of code refactoring tasks
A number of online e-activities are presented for the process of teaching and learning of code refactoring tasks, related to those the student may find during their professional career, if oriented towards software development.
Ontology-based Analysis of Game Designs for Software Refactoring
A structured process is applied for creating a unifying domain ontology bridging core concepts from three related fields, i.e. game design, software refactoring, and competence management, which is represented as a meta-model in terms of a UML class diagram and reflects concepts important forRefactoring-game designs.
Serious Refactoring Games
A game design is proposed, where students can compete either against a predefined benchmark (technical debt) or against each other, and a lightweight architecture is described as the technical foundation for the game design that integrates pre-existing analysis tools such as test frameworks and software-quality analyzers.
Deconstructing the Refactoring Process from a Problem-solving and Decision-making Perspective
A process model is presented, which integrates primary decision problems and corresponding decisionmaking sub-processes in refactoring and can help software companies gain a better understanding of decision-making in therefactoring process.
An innovative approach to teaching refactoring
Through this hands-on approach, refactoring can become an integral component in the computer science curriculum and an innovative means of reinforcing software engineering principles and good development practices.
Software engineering body of skills (SWEBOS)
A body of skills (SWEBOS) for software engineering is proposed that guarantees that skills are not just characterized in a broad and general manner, but rather they are specifically adapted to the domain of software engineering.
What Can Students Get from a Software Engineering Capstone Course?
It is found that the relative value of soft skills grows while that of the technical challenge drops, and that the students find that planning and teamwork are harder than they expected.
A game of refactoring: Studying the impact of gamification in software refactoring
Although the gamification had less effect than expected, the findings can be useful to practitioners interested in promoting refactoring tools via gamification.
Bloom's taxonomy in software engineering education: A systematic mapping study
The state of the art on the usage of Bloom's taxonomy in SE education is reported, identified by conducted a systematic mapping study, and the results clearly point out the usefulness of Bloom’sTaxonomy in the SE education context.