Abstract
Software evolves with modifications which lead to a deviation from the single responsibility principle. Continuous changes deteriorate the quality of software, thereby decreasing cohesion and increasing coupling. There has been much work on improving class cohesion by decomposing a large class of multiple responsibilities into smaller classes with a single responsibility. The decomposition process is iterative until it reaches to the point where classes have a single-responsibility. However, it is hard to determine when to terminate the process. Early termination results in premature decomposition, while late termination leads to over decomposition. In this work, we present a threshold-driven approach to determine a termination point in the decomposition process developed in our previous work. We demonstrate the approach using a case example.