The document discusses algorithms for recommending refactoring operations in large software systems. It describes two main algorithms - a clustering-based algorithm and a graph-based algorithm. The clustering-based algorithm identifies groups of similar methods and entities that could be extracted into separate classes. The graph-based algorithm builds a matrix of relationships between methods and identifies strongly related chains of methods that could form candidate classes. Both algorithms were evaluated on open source systems and shown to effectively recommend extract class refactoring opportunities.