  Cohesion is a core design quality that has a great impact on posterior
development and maintenance. By the nature of software, the cohesion of a
system is diminished as the system evolves. God classes are code defects
resulting from software evolution, having heterogeneous responsibilities highly
coupled with other classes and often large in size, which makes it difficult to
maintain the system. The existing work on identifying and decomposing God
classes heavily relies on internal class information to identify God classes
and responsibilities. However, in object-oriented systems, responsibilities
should be analyzed with respect to not only internal class information, but
also method interactions. In this paper, we present a novel approach for
detecting God classes and decomposing their responsibilities based on the
semantics of methods and method interactions. We evaluate the approach using
JMeter v2.5.1 and the results are promising.
