Metrics based techniques for detection and correction of ripple related design defects in object-oriented programs