Simple ways to improve legacy code - http://www.onjava.com/lpt/a/4805 One approach to work with legacy code, instead of phrase by phrase or part by part, identify and improve the domain part first - http://gojko.net/2009/06/19/eric-evans-why-do-efforts-to-replace-legacy-systems-fail/ http://arne-mertz.de/2016/09/legacy-applications-tests-modularization/ Note of common point for refactoring with legacy application - http://marxsoftware.blogspot.hk/2016/10/unintentionally-obfuscated.html