Java Quality Assurance by Detecting Code Smells