A patterns based reverse engineering approach for java source code - Couto, Rui (2012)