  Object oriented software with low cohesive classes can increase maintenance
cost. Low cohesive classes are likely to be introduced into the software during
initial design due to deviation from design principles and during evolution due
to software deterioration. Low cohesive class performs operations that should
be done by two or more classes. The low cohesive classes need to be identified
and refactored using extract class refactoring to improve the cohesion. In this
regard, two aspects are involved; the first one is to identify the low cohesive
classes and the second one is to identify the clusters of concepts in the low
cohesive classes for extract class refactoring. In this paper, we propose
metrics supplemented agglomerative clustering technique for covering the above
two aspects. The proposed metrics are validated using Weyuker's properties. The
approach is applied successfully on two examples and on a case study.
